• 1

    posted a message on Hide Armor Option
    Quote from Madanex»

    We all have those awesome skins that we love to show off! Then comes a skeleton with a head shot from behind a tree, and your are almost dead! Why not have protection and show off your skin at the same time! Above your armor set or below next to your player picture there should be an eye with a slash through it for an option to hide armor to show off those skins we all love!


    yeah, because allowing a player with full enchanted netherite armor to make themselves look as if they had no armor is such a good idea...

    Posted in: Suggestions
  • 0

    posted a message on Need install advice for grandkids

    given how underpowered the system is, bedrock is probably the best option.

    • Safe for young girls.
    • any version of minecraft is "safe" in terms of base content.
    • Standalone (not multiplayer).
    • minecraft has multiplayer built-in. if you want to prevent them from using it you'll need to set up some firewall rules or something.
    • Reasonably fast (I know that is a contradiction with an Atom processor).
    • this is why bedrock is the best option. Java Edition is a massive resource hog due to extremely poor programming.
    • Can grow with them.
    • Not sure what you mean by this
    • Reasonable cost (ideally just pay up front)
    • Minecraft is not a subscription-based service. It's always pay-up-front.
    Posted in: Discussion
  • 0

    posted a message on 2D item rendering
    Quote from PolkaPickle»

    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.

    Posted in: Discussion
  • 1

    posted a message on 2D item rendering
    Quote from TheMasterCaver»

    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.

    Posted in: Discussion
  • 0

    posted a message on 2D item rendering
    Quote from fanniebyrns»

    Yep, item model system was changed, unfortunately and there is no longer an icon to use for 2d.


    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.

    Posted in: Discussion
  • 0

    posted a message on 2D item rendering
    Quote from TheMasterCaver»

    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):

    MC-179383 Leaves not culled with graphics set to 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.

    Posted in: Discussion
  • 0

    posted a message on 2D item rendering
    Quote from TheMasterCaver»

    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.

    Posted in: Discussion
  • 1

    posted a message on I can't install mods?

    **Edit*** I have figured out the forge issue, thanks! I'm still wondering if anyone knows why I cannot install the texture pack from Minecraft.com



    Then I attempted to download a texture pack and I'm not sure if this is related or not, but when I clicked on the download pack it brought me to a page that said,


    "The address wasn’t understood

    Firefox doesn’t know how to open this address, because one of the following protocols (minecraft) isn’t associated with any program or is not allowed in this context.

    You might need to install other software to open this address."


    You're trying to install a bedrock edition texture pack. you need a java edition texture pack.
    The difference structure-wise is that bedrock edition has slightly different resource locations and data formats, and generally uses the .mcpack extension (but is actually just a zip file) and can be installed on Windows 10 and Android if the corresponding Bedrock Edition version is installed (not sure of other versions) by "opening" the file. Java Edition resource packs, on the other hand, must be manually installed.

    Posted in: Java Edition Support
  • 0

    posted a message on 2D item rendering

    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.

    Posted in: Discussion
  • 0

    posted a message on CALLING MAC COMMUNITY!: Does Big Sur support MC Java?

    It's not worth trying to run Java Edition on a Mac, Apple dropped OpenGL support years ago in favor of proprietary technologies (like they always do). Install (dual-boot preferred! no VM, that won't work) Linux or Windows instead if you can, it's worth it.

    Posted in: Java Edition Support
  • 0

    posted a message on error when trying to use rat mod

    report this error to the mod authors, they're not using the forge registry properly.

    Posted in: Java Edition Support
  • 0

    posted a message on Java doesn't work

    you don't want to unzip it. jar files should either be ran using java or used as libraries (like mods) for other java executables. Any software that changes the default behavior of a .jar file is basically malware.

    Posted in: Java Edition Support
  • 0

    posted a message on Java doesn't work

    at this point I think WinRAR and WinZIP should be classed as bloatware.

    Posted in: Java Edition Support
  • 1

    posted a message on Control screen partially off screen?

    one of the key names is too long - easiest fix is to simply reduce the GUI scale. Honestly I cannot understand why some people use the default auto-scale at 1080p or higher, it makes the GUI way too "large" while making the effective GUI size so small.

    Posted in: Java Edition Support
  • 0

    posted a message on Strange icon on upper left corner of screen

    no problem, just make sure you use the correct subforum. you've posted in the java edition subforum when you should have posted in the bedrock edition subforum.

    Posted in: Discussion
  • To post a comment, please .