In earlier versions of Minecraft (pre 1.8) dropped items on fast graphics would be 2D. Is there a way to make items In 1.16 render 2D. Help would be appreciated!
Note: The setting on optifine (video settings<details<dropped items) will not make items 2D.
You can no longer do this, because of the item model system. in pre-1.8, all items had an assigned "icon", and any custom models were handled by a special renderer. In 1.8, this entire system was replaced with the unified block and item model system, so there is no longer an "icon" to use for 2D rendering anyway.
I'm a little late to this but 2D Item rendering Is possible In post 1.8 because I know a mod that brings It back to 1.8 - 1.12. (Old Animations Mod) However, I was looking for a way to add this to 1.16.
You can no longer do this, because of the item model system. in pre-1.8, all items had an assigned "icon", and any custom models were handled by a special renderer. In 1.8, this entire system was replaced with the unified block and item model system, so there is no longer an "icon" to use for 2D rendering anyway.
How does 1.8 render 2D items in the inventory? 1.6.4 simply renders a 2D sprite in either case, where a "3D" item that is not rendered as a block is rendered as two 2D sprites with a separation of 1 pixel (for 16x textures) and a crosshatch of 1 pixel wide "strips" so they all fit together to make a lattice of 256 pixel-sized cubes (without actually rendering 256 cubes, which would be quite expensive). Whether items render as 2D or 3D depends on the "render type" and whether it is a "block" or "item" (for example, the default render type for a block is a full cube, like stone, and when adding such a block I don't need to specify how it renders; simple cuboid blocks like half-slabs change the block bounds while blocks like fences may either add their own item model or simply rely on the default "icon"/"2D item" renderer which is used for blocks without a 3D model specified, including blocks without "proper" items, like water, which will cause an error in 1.8+ (1.8 will even be upset if you specify an invalid data value, as seen in this thread, where 1.6.4 has no problems handling leaf items with data values other than 0-3).
How does 1.8 render 2D items in the inventory? 1.6.4 simply renders a 2D sprite in either case, where a "3D" item that is not rendered as a block is rendered as two 2D sprites with a separation of 1 pixel (for 16x textures) and a crosshatch of 1 pixel wide "strips" so they all fit together to make a lattice of 256 pixel-sized cubes (without actually rendering 256 cubes, which would be quite expensive). Whether items render as 2D or 3D depends on the "render type" and whether it is a "block" or "item" (for example, the default render type for a block is a full cube, like stone, and when adding such a block I don't need to specify how it renders; simple cuboid blocks like half-slabs change the block bounds while blocks like fences may either add their own item model or simply rely on the default "icon"/"2D item" renderer which is used for blocks without a 3D model specified, including blocks without "proper" items, like water, which will cause an error in 1.8+ (1.8 will even be upset if you specify an invalid data value, as seen in this thread, where 1.6.4 has no problems handling leaf items with data values other than 0-3).
1.8 doesn't render 2D items in the inventory, actually. it's still rendering the full model, just at an angle that makes it look 2D. same way blocks are rendered into inventory.
1.8 doesn't render 2D items in the inventory, actually. it's still rendering the full model, just at an angle that makes it look 2D. same way blocks are rendered into inventory.
This seems incredibly inefficient since the "2D with thickness" method used by dropped items requires rendering a total of 66 faces (front and back, then a total of 64 strips between them, 32 for each axis since face culling hides faces that are facing away from the camera, and they are also shaded differently depending on their orientation), compared to just one in the inventory (blocks with a proper 3D model are rendered in 3D but a basic cube only has 6 faces, stairs have 12, and fences have 18; from my own experience the number of faces/vertices being rendered is by far and away the biggest limiting factor on performance*. This would also explain why 1.8 removed the "Fast" 2D item rendering since it is now utterly useless):
// Used to render 2D items and blocks with "thickness" by rendering two faces with a separation of 1 pixel,
// then rendering a crosshatch of strips between them, one per pixel and orientation
private void render2DItem(float maxU, float minV, float minU, float maxV, int width, int height)
{
itemTessellator.startDrawingQuads();
itemTessellator.setNormal(0.0F, 0.0F, 1.0F);
itemTessellator.addVertexWithUV_N(0.0F, 0.0F, 0.0F, maxU, maxV);
itemTessellator.addVertexWithUV_N(1.0F, 0.0F, 0.0F, minU, maxV);
itemTessellator.addVertexWithUV_N(1.0F, 1.0F, 0.0F, minU, minV);
itemTessellator.addVertexWithUV_N(0.0F, 1.0F, 0.0F, maxU, minV);
itemTessellator.setNormal(0.0F, 0.0F, -1.0F);
itemTessellator.addVertexWithUV_N(0.0F, 1.0F, -0.0625F, maxU, minV);
itemTessellator.addVertexWithUV_N(1.0F, 1.0F, -0.0625F, minU, minV);
itemTessellator.addVertexWithUV_N(1.0F, 0.0F, -0.0625F, minU, maxV);
itemTessellator.addVertexWithUV_N(0.0F, 0.0F, -0.0625F, maxU, maxV);
float offsetU = (maxU - minU) / (float)width;
float offsetV = (maxV - minV) / (float)height;
float maxU2 = maxU + offsetU * 0.5F;
float maxV2 = maxV + offsetV * 0.5F;
itemTessellator.setNormal(-1.0F, 0.0F, 0.0F);
float var11;
float var12 = maxU2;
for (int i = 0; i < width; ++i)
{
var11 = (float)i / (float)width;
var12 -= offsetU;
itemTessellator.addVertexWithUV_N(var11, 0.0F, -0.0625F, var12, maxV);
itemTessellator.addVertexWithUV_N(var11, 0.0F, 0.0F, var12, maxV);
itemTessellator.addVertexWithUV_N(var11, 1.0F, 0.0F, var12, minV);
itemTessellator.addVertexWithUV_N(var11, 1.0F, -0.0625F, var12, minV);
}
itemTessellator.setNormal(1.0F, 0.0F, 0.0F);
var12 = maxU2;
for (int i = 1; i <= width; ++i)
{
var11 = (float)i / (float)width;
var12 -= offsetU;
itemTessellator.addVertexWithUV_N(var11, 1.0F, -0.0625F, var12, minV);
itemTessellator.addVertexWithUV_N(var11, 1.0F, 0.0F, var12, minV);
itemTessellator.addVertexWithUV_N(var11, 0.0F, 0.0F, var12, maxV);
itemTessellator.addVertexWithUV_N(var11, 0.0F, -0.0625F, var12, maxV);
}
itemTessellator.setNormal(0.0F, 1.0F, 0.0F);
var12 = maxV2;
for (int i = 1; i <= height; ++i)
{
var11 = (float)i / (float)height;
var12 -= offsetV;
itemTessellator.addVertexWithUV_N(0.0F, var11, 0.0F, maxU, var12);
itemTessellator.addVertexWithUV_N(1.0F, var11, 0.0F, minU, var12);
itemTessellator.addVertexWithUV_N(1.0F, var11, -0.0625F, minU, var12);
itemTessellator.addVertexWithUV_N(0.0F, var11, -0.0625F, maxU, var12);
}
itemTessellator.setNormal(0.0F, -1.0F, 0.0F);
var12 = maxV2;
for (int i = 0; i < height; ++i)
{
var11 = (float)i / (float)height;
var12 -= offsetV;
itemTessellator.addVertexWithUV_N(1.0F, var11, 0.0F, minU, var12);
itemTessellator.addVertexWithUV_N(0.0F, var11, 0.0F, maxU, var12);
itemTessellator.addVertexWithUV_N(0.0F, var11, -0.0625F, maxU, var12);
itemTessellator.addVertexWithUV_N(1.0F, var11, -0.0625F, minU, var12);
}
itemTessellator.draw();
}
// Used to render "flat 2D" items in the inventory and such dropped items on Fast
private void renderIconWithColor(int par1, int par2, Icon par3Icon, int color)
{
itemTessellator.startDrawingQuads();
float z = this.renderItem.zLevel;
if (this.renderItem.renderWithColor) itemTessellator.setColorOpaque_I(color);
itemTessellator.addVertexWithUV_C((float)par1, (float)(par2 + 16), z, par3Icon.getMinU(), par3Icon.getMaxV());
itemTessellator.addVertexWithUV_C((float)(par1 + 16), (float)(par2 + 16), z, par3Icon.getMaxU(), par3Icon.getMaxV());
itemTessellator.addVertexWithUV_C((float)(par1 + 16), (float)par2, z, par3Icon.getMaxU(), par3Icon.getMinV());
itemTessellator.addVertexWithUV_C((float)par1, (float)par2, z, par3Icon.getMinU(), par3Icon.getMinV());
itemTessellator.draw();
}
*For example, the time spent on GL11.glDrawArrays(), which sends vertex data to the GPU driver, is about 100 times longer than average when rendering a chunk section filled with leaves on Fancy 100-fold when leaves are set to Fancy and a 16x16x16 cube is being rendered (a total of 24576 faces, compared to only 1536 for Fast leaves, stone, etc); overall chunk update time increases by about 24 times, nearly all due to the GPU driver bottlenecking (Java code, which is the first number for each render pass, only took about 3 times longer):
This is also still a major issue in the latest versions, despite using modern rendering, and if anything, their chunk update performance is much worse (I can maintain close to 1000 FPS even when riding in a minecart, despite 1.6.4/my version using 2+ decade old OpenGL with no threading at all; of course, my Java code is much faster due to not using blockstates or blockpos):
It's already mostly parallel. The only part that isn't is the part that directly talks to opengl and that's also the part that is no longer artificially capped on this pre-release. And it can't be reliably made parallel because opengl doesn't officially support multithreading. While it works on some GPU drivers, it breaks on others (like 1.7.10 optifine multi core chunk loading, it actually breaks on some hardware configurations)
Note that chunk updates are only limited by the number of updates required (at max FPS my rendering engine will only update 1 chunk per frame regardless of the "chunk update limit" slider which allows the user to control the frame time allotted to them). There is quite a lot of frame time variability but it isn't noticeable at such a rate (a base frame time of 1 ms and chunk update time of 1 ms will give a total frame time of 2 ms, a 50% reduction in FPS. However, if FPS is capped, as it normally is, then anything less than 500 FPS will give a stable frame rate):
Speaking of leaves, the current version doesn't even apply face culling on Fast, making it just as useless as "Fast" items (as mentioned above, this mainly affects chunk update performance, steady-state FPS is much less affected, I still get 1000 FPS unlimited in a "Mega Forest" biome on Fancy but chunk updates drop it a lot more on Fancy than Fast):
This seems incredibly inefficient since the "2D with thickness" method used by dropped items requires rendering a total of 66 faces (front and back, then a total of 64 strips between them, 32 for each axis since face culling hides faces that are facing away from the camera, and they are also shaded differently depending on their orientation), compared to just one in the inventory (blocks with a proper 3D model are rendered in 3D but a basic cube only has 6 faces, stairs have 12, and fences have 18; from my own experience the number of faces/vertices being rendered is by far and away the biggest limiting factor on performance*. This would also explain why 1.8 removed the "Fast" 2D item rendering since it is now utterly useless):
// Used to render 2D items and blocks with "thickness" by rendering two faces with a separation of 1 pixel,
// then rendering a crosshatch of strips between them, one per pixel and orientation
private void render2DItem(float maxU, float minV, float minU, float maxV, int width, int height)
{
itemTessellator.startDrawingQuads();
itemTessellator.setNormal(0.0F, 0.0F, 1.0F);
itemTessellator.addVertexWithUV_N(0.0F, 0.0F, 0.0F, maxU, maxV);
itemTessellator.addVertexWithUV_N(1.0F, 0.0F, 0.0F, minU, maxV);
itemTessellator.addVertexWithUV_N(1.0F, 1.0F, 0.0F, minU, minV);
itemTessellator.addVertexWithUV_N(0.0F, 1.0F, 0.0F, maxU, minV);
itemTessellator.setNormal(0.0F, 0.0F, -1.0F);
itemTessellator.addVertexWithUV_N(0.0F, 1.0F, -0.0625F, maxU, minV);
itemTessellator.addVertexWithUV_N(1.0F, 1.0F, -0.0625F, minU, minV);
itemTessellator.addVertexWithUV_N(1.0F, 0.0F, -0.0625F, minU, maxV);
itemTessellator.addVertexWithUV_N(0.0F, 0.0F, -0.0625F, maxU, maxV);
float offsetU = (maxU - minU) / (float)width;
float offsetV = (maxV - minV) / (float)height;
float maxU2 = maxU + offsetU * 0.5F;
float maxV2 = maxV + offsetV * 0.5F;
itemTessellator.setNormal(-1.0F, 0.0F, 0.0F);
float var11;
float var12 = maxU2;
for (int i = 0; i < width; ++i)
{
var11 = (float)i / (float)width;
var12 -= offsetU;
itemTessellator.addVertexWithUV_N(var11, 0.0F, -0.0625F, var12, maxV);
itemTessellator.addVertexWithUV_N(var11, 0.0F, 0.0F, var12, maxV);
itemTessellator.addVertexWithUV_N(var11, 1.0F, 0.0F, var12, minV);
itemTessellator.addVertexWithUV_N(var11, 1.0F, -0.0625F, var12, minV);
}
itemTessellator.setNormal(1.0F, 0.0F, 0.0F);
var12 = maxU2;
for (int i = 1; i <= width; ++i)
{
var11 = (float)i / (float)width;
var12 -= offsetU;
itemTessellator.addVertexWithUV_N(var11, 1.0F, -0.0625F, var12, minV);
itemTessellator.addVertexWithUV_N(var11, 1.0F, 0.0F, var12, minV);
itemTessellator.addVertexWithUV_N(var11, 0.0F, 0.0F, var12, maxV);
itemTessellator.addVertexWithUV_N(var11, 0.0F, -0.0625F, var12, maxV);
}
itemTessellator.setNormal(0.0F, 1.0F, 0.0F);
var12 = maxV2;
for (int i = 1; i <= height; ++i)
{
var11 = (float)i / (float)height;
var12 -= offsetV;
itemTessellator.addVertexWithUV_N(0.0F, var11, 0.0F, maxU, var12);
itemTessellator.addVertexWithUV_N(1.0F, var11, 0.0F, minU, var12);
itemTessellator.addVertexWithUV_N(1.0F, var11, -0.0625F, minU, var12);
itemTessellator.addVertexWithUV_N(0.0F, var11, -0.0625F, maxU, var12);
}
itemTessellator.setNormal(0.0F, -1.0F, 0.0F);
var12 = maxV2;
for (int i = 0; i < height; ++i)
{
var11 = (float)i / (float)height;
var12 -= offsetV;
itemTessellator.addVertexWithUV_N(1.0F, var11, 0.0F, minU, var12);
itemTessellator.addVertexWithUV_N(0.0F, var11, 0.0F, maxU, var12);
itemTessellator.addVertexWithUV_N(0.0F, var11, -0.0625F, maxU, var12);
itemTessellator.addVertexWithUV_N(1.0F, var11, -0.0625F, minU, var12);
}
itemTessellator.draw();
}
// Used to render "flat 2D" items in the inventory and such dropped items on Fast
private void renderIconWithColor(int par1, int par2, Icon par3Icon, int color)
{
itemTessellator.startDrawingQuads();
float z = this.renderItem.zLevel;
if (this.renderItem.renderWithColor) itemTessellator.setColorOpaque_I(color);
itemTessellator.addVertexWithUV_C((float)par1, (float)(par2 + 16), z, par3Icon.getMinU(), par3Icon.getMaxV());
itemTessellator.addVertexWithUV_C((float)(par1 + 16), (float)(par2 + 16), z, par3Icon.getMaxU(), par3Icon.getMaxV());
itemTessellator.addVertexWithUV_C((float)(par1 + 16), (float)par2, z, par3Icon.getMaxU(), par3Icon.getMinV());
itemTessellator.addVertexWithUV_C((float)par1, (float)par2, z, par3Icon.getMinU(), par3Icon.getMinV());
itemTessellator.draw();
}
*For example, the time spent on GL11.glDrawArrays(), which sends vertex data to the GPU driver, is about 100 times longer than average when rendering a chunk section filled with leaves on Fancy 100-fold when leaves are set to Fancy and a 16x16x16 cube is being rendered (a total of 24576 faces, compared to only 1536 for Fast leaves, stone, etc); overall chunk update time increases by about 24 times, nearly all due to the GPU driver bottlenecking (Java code, which is the first number for each render pass, only took about 3 times longer):
This is also still a major issue in the latest versions, despite using modern rendering, and if anything, their chunk update performance is much worse (I can maintain close to 1000 FPS even when riding in a minecart, despite 1.6.4/my version using 2+ decade old OpenGL with no threading at all; of course, my Java code is much faster due to not using blockstates or blockpos):
Note that chunk updates are only limited by the number of updates required (at max FPS my rendering engine will only update 1 chunk per frame regardless of the "chunk update limit" slider which allows the user to control the frame time allotted to them). There is quite a lot of frame time variability but it isn't noticeable at such a rate (a base frame time of 1 ms and chunk update time of 1 ms will give a total frame time of 2 ms, a 50% reduction in FPS. However, if FPS is capped, as it normally is, then anything less than 500 FPS will give a stable frame rate):
Speaking of leaves, the current version doesn't even apply face culling on Fast, making it just as useless as "Fast" items (as mentioned above, this mainly affects chunk update performance, steady-state FPS is much less affected, I still get 1000 FPS unlimited in a "Mega Forest" biome on Fancy but chunk updates drop it a lot more on Fancy than Fast):
uh, the built-in item renderer is at least optimized to draw in strips, hiding anything that wouldn't be visible anyways, so there's nowhere near 66 quads. it's still inefficient and one of the many reasons I consider vanilla code to be complete garbage.
I´ve been wondering if I could change the items back to their classic 2D icons, purely for nostalgia. It´s a shame there´s no way to do it.
As I often like to say, with mods anything is possible; there is no technical reason why 1.8+ can't be made to render actual 2D items; all you need to render any block or item texture is the icon object, which stores the location of the icon in the texture atlas ("U" and "V"), which 1.8+ surely still uses, then you simply draw a quad using that texture, no different from rendering any other texture (the texture also needs to be bound in OpenGL but that is done for you in the block/item rendering code). Of course, items with proper 3D models still need to be rendered as such (in 1.6.4 cube-type blocks always render in 3D, in some cases with a different model (e.g. fences), while e.g. glass panes render in 2D, either as a simple flat texture in the GUI/Fast dropped items or the "flat 3D" model when held/Fancy dropped items).
As I often like to say, with mods anything is possible; there is no technical reason why 1.8+ can't be made to render actual 2D items; all you need to render any block or item texture is the icon object, which stores the location of the icon in the texture atlas ("U" and "V"), which 1.8+ surely still uses, then you simply draw a quad using that texture, no different from rendering any other texture (the texture also needs to be bound in OpenGL but that is done for you in the block/item rendering code). Of course, items with proper 3D models still need to be rendered as such (in 1.6.4 cube-type blocks always render in 3D, in some cases with a different model (e.g. fences), while e.g. glass panes render in 2D, either as a simple flat texture in the GUI/Fast dropped items or the "flat 3D" model when held/Fancy dropped items).
1.8 no longer has a "texture" object associated with any item - instead, textures are associated to models which are associated to items and blocks. the only texture you can reliably grab from this is the particle texture, which may not even be correct, as some mods have invalid particle textures due to badly structured models.
I made an account to ask this question after reading this thread: Where do you find the 1.7/1.6 item models because I want to try to mod Minecraft to add 2D items.
I made an account to ask this question after reading this thread: Where do you find the 1.7/1.6 item models because I want to try to mod Minecraft to add 2D items.
you can add 2D items simply by using a model that has only a front and back - anything more than that (such as using a 2D icon on ground but 3D in hand) is beyond the capabilities of reasonable modding.
Did you ever figure out how to make that model? I've been making my own pack that adds back old Minecraft features and this Is one of my most wanted features.
1.8 doesn't render 2D items in the inventory, actually. it's still rendering the full model, just at an angle that makes it look 2D. same way blocks are rendered into inventory.
so even ifthere was a way to make items look like they were in 1.7 (like this video: ) i won't get any performance improvement? (i'm in 1.12 btw)
In earlier versions of Minecraft (pre 1.8) dropped items on fast graphics would be 2D. Is there a way to make items In 1.16 render 2D. Help would be appreciated!
Note: The setting on optifine (video settings<details<dropped items) will not make items 2D.
Example:
You can no longer do this, because of the item model system. in pre-1.8, all items had an assigned "icon", and any custom models were handled by a special renderer. In 1.8, this entire system was replaced with the unified block and item model system, so there is no longer an "icon" to use for 2D rendering anyway.
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
I'm a little late to this but 2D Item rendering Is possible In post 1.8 because I know a mod that brings It back to 1.8 - 1.12. (Old Animations Mod) However, I was looking for a way to add this to 1.16.
How does 1.8 render 2D items in the inventory? 1.6.4 simply renders a 2D sprite in either case, where a "3D" item that is not rendered as a block is rendered as two 2D sprites with a separation of 1 pixel (for 16x textures) and a crosshatch of 1 pixel wide "strips" so they all fit together to make a lattice of 256 pixel-sized cubes (without actually rendering 256 cubes, which would be quite expensive). Whether items render as 2D or 3D depends on the "render type" and whether it is a "block" or "item" (for example, the default render type for a block is a full cube, like stone, and when adding such a block I don't need to specify how it renders; simple cuboid blocks like half-slabs change the block bounds while blocks like fences may either add their own item model or simply rely on the default "icon"/"2D item" renderer which is used for blocks without a 3D model specified, including blocks without "proper" items, like water, which will cause an error in 1.8+ (1.8 will even be upset if you specify an invalid data value, as seen in this thread, where 1.6.4 has no problems handling leaf items with data values other than 0-3).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
Is there a way to add/mod the 1.7 way of item rendering Into 1.16 and if so how?
1.8 doesn't render 2D items in the inventory, actually. it's still rendering the full model, just at an angle that makes it look 2D. same way blocks are rendered into inventory.
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
This seems incredibly inefficient since the "2D with thickness" method used by dropped items requires rendering a total of 66 faces (front and back, then a total of 64 strips between them, 32 for each axis since face culling hides faces that are facing away from the camera, and they are also shaded differently depending on their orientation), compared to just one in the inventory (blocks with a proper 3D model are rendered in 3D but a basic cube only has 6 faces, stairs have 12, and fences have 18; from my own experience the number of faces/vertices being rendered is by far and away the biggest limiting factor on performance*. This would also explain why 1.8 removed the "Fast" 2D item rendering since it is now utterly useless):
*For example, the time spent on GL11.glDrawArrays(), which sends vertex data to the GPU driver, is about 100 times longer than average when rendering a chunk section filled with leaves on Fancy 100-fold when leaves are set to Fancy and a 16x16x16 cube is being rendered (a total of 24576 faces, compared to only 1536 for Fast leaves, stone, etc); overall chunk update time increases by about 24 times, nearly all due to the GPU driver bottlenecking (Java code, which is the first number for each render pass, only took about 3 times longer):
This is also still a major issue in the latest versions, despite using modern rendering, and if anything, their chunk update performance is much worse (I can maintain close to 1000 FPS even when riding in a minecart, despite 1.6.4/my version using 2+ decade old OpenGL with no threading at all; of course, my Java code is much faster due to not using blockstates or blockpos):
Speaking of leaves, the current version doesn't even apply face culling on Fast, making it just as useless as "Fast" items (as mentioned above, this mainly affects chunk update performance, steady-state FPS is much less affected, I still get 1000 FPS unlimited in a "Mega Forest" biome on Fancy but chunk updates drop it a lot more on Fancy than Fast):
MC-179383 Leaves not culled with graphics set to fast
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
uh, the built-in item renderer is at least optimized to draw in strips, hiding anything that wouldn't be visible anyways, so there's nowhere near 66 quads. it's still inefficient and one of the many reasons I consider vanilla code to be complete garbage.
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
technically there's still the particle texture but since there's no guarantee that it would even closely resemble the item it's not a good choice.
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
I´ve been wondering if I could change the items back to their classic 2D icons, purely for nostalgia. It´s a shame there´s no way to do it.
As I often like to say, with mods anything is possible; there is no technical reason why 1.8+ can't be made to render actual 2D items; all you need to render any block or item texture is the icon object, which stores the location of the icon in the texture atlas ("U" and "V"), which 1.8+ surely still uses, then you simply draw a quad using that texture, no different from rendering any other texture (the texture also needs to be bound in OpenGL but that is done for you in the block/item rendering code). Of course, items with proper 3D models still need to be rendered as such (in 1.6.4 cube-type blocks always render in 3D, in some cases with a different model (e.g. fences), while e.g. glass panes render in 2D, either as a simple flat texture in the GUI/Fast dropped items or the "flat 3D" model when held/Fancy dropped items).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
1.8 no longer has a "texture" object associated with any item - instead, textures are associated to models which are associated to items and blocks. the only texture you can reliably grab from this is the particle texture, which may not even be correct, as some mods have invalid particle textures due to badly structured models.
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
I made an account to ask this question after reading this thread: Where do you find the 1.7/1.6 item models because I want to try to mod Minecraft to add 2D items.
you can add 2D items simply by using a model that has only a front and back - anything more than that (such as using a 2D icon on ground but 3D in hand) is beyond the capabilities of reasonable modding.
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
I'm not very knowledgeable on Minecraft item models. If anyone knows how to make a model 2D, put the model text In the thread.
Did you ever figure out how to make that model? I've been making my own pack that adds back old Minecraft features and this Is one of my most wanted features.
so even ifthere was a way to make items look like they were in 1.7 (like this video: ) i won't get any performance improvement? (i'm in 1.12 btw)
well, you know, when you use LagGoggles, the entities are what more hits your TPS (TicksPerSecond, not FPS), you don't know any mod to increase that performance? this is my list of performance mods: https://cdn.discordapp.com/attachments/309218657798455298/814182836667940924/rendimientosos.PNG