mojira.dev
MC-236285

Model UV is not limited to 0-16, bleeding texture atlas

See title.

Model UV mappings aren't limited to 0-16 values, allowing them to bleed the texture sheet.

Steps to reproduce:

  1. Create a resource pack with the file assets/minecraft/models/block/cube.json with

    {
        "parent": "block/block",
        "elements": [
            {   "from": [ 0, 0, 0 ],
                "to": [ 16, 16, 16 ],
                "faces": {
                    "down":  { "uv": [-16, -16, 32, 32], "texture": "#down", "cullface": "down" },
                    "up":    { "uv": [-16, -16, 32, 32], "texture": "#up", "cullface": "up" },
                    "north": { "uv": [-16, -16, 32, 32], "texture": "#north", "cullface": "north" },
                    "south": { "uv": [-16, -16, 32, 32], "texture": "#south", "cullface": "south" },
                    "west":  { "uv": [-16, -16, 32, 32], "texture": "#west", "cullface": "west" },
                    "east":  { "uv": [-16, -16, 32, 32], "texture": "#east", "cullface": "east" }
                }
            }
        ]
    }
  2. Enable the resource pack

  3. Observe how each block now consists of 9 different textures

Expected behavior:

Either one of the following:

  • The model fails to process, and will instead show a missing texture for the entire element face.

  • The texture applied will repeat itself (eg showing stone textures 9 times, rather than once + 8 others). (This is the preferred solution, as that allows creating a repeating texture without having to duplicate elements or make the texture include itself multiple times.) This solution will also fix MC-246230 instantly, rather than make it dump missing textures, requiring a sepate fix.

Linked issues

Attachments

Comments 6

user-39d6c

I don't think negative values have any usage, but for greater than 16 I believe you can use them if a texture is specified in the model to be higher resolution

muzikbike

That is incorrect, as all models deal with UV in 1/16s of each texture.

user-39d6c

yep right, just checked it. I was wrong

user-f2760

Just saying, if "you can use them if a texture is specified in the model to be higher resolution" was the case, all resource pack that have a higher than 16x16 resolution, would've needed to replace all model files.

user-39d6c

not necessarily, since Minecraft recognizes 1x1 proportion automatically. It is meant to be used when you want the model to use only a part of a texture. But nonetheless, it turns out it's not relevant to this report

Dhranios

Still in 1.21.4.

user-f2760

(Unassigned)

Confirmed

Textures and models

1.17.1, 1.18.1, 1.19, 1.19.1 Pre-release 3, 1.19.2, ..., 23w12a, 1.20.1, 1.20.2, 23w43b, 1.21.4

Retrieved