Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-267864

Two-tall plant model/rendering not optimized

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • None
    • 1.20.4, 23w51b
    • Confirmed
    • Performance, Rendering
    • Normal
    • Gameplay

      The bug

      Two-block-tall plants such as tall grass and tall flowers can be optimized such that they take less of a toll on the game's rendering engine and increase game performance.

      Currently, the bottom half and top half are both separate block models, meaning that each full plant takes up eight texture planes. However, we can cut this in half and render the same plant using four texture planes, considerably increasing performance. This involves redoing textures such that each plant uses a single 16×32 texture rather than two 16×16 textures.

      While this results in a considerable performance increase, I don't like this nearly as much as the other model optimizations I've done due to it causing the particles of these blocks to become distorted, potentially affecting how the blocks look with respect to lighting, and also violating the paradigm that every block texture must be a 16×16 square by default, among other reasons. As such, the attached demo resource pack only applies this to five of seven potential target plants (leaving out pitcher plants and sunflowers). If Mojang is still interested in implementing this optimization, I can extend it to these two plants as well if desired.

      How to reproduce

      As MC-118624 remains unfixed for some reason, we will need to set up our test environment manually.

      1. Create a superflat world with the preset
        minecraft:bedrock,2*minecraft:dirt,minecraft:grass_block;minecraft:the_void
      2. Execute the command
        /tp @s 0 -60 0
      3. Execute the command
        /fill ~-90 ~ ~-90 ~90 ~ ~90 minecraft:tall_grass[half=lower]
      4. Execute the command
        /fill ~-90 ~1 ~-90 ~90 ~1 ~90 minecraft:tall_grass[half=upper]
      5. Execute the command
        /tp @s 0 0 0 0 90
      6. Set your render distance and simulation distance to five chunks
      7. Open the performance graphs with F3+2
      8. Observe with and without the attached resource pack

      Expected results

      Good framerates in vanilla.

      Actual results

      Not necessarily. The resource pack improves things considerably.

        1. 2024-01-13_14.17.59.png
          220 kB
          Connor Steppie
        2. 2024-01-13_14.18.05.png
          221 kB
          Connor Steppie
        3. 2024-01-13_14.21.15.png
          137 kB
          Connor Steppie
        4. 2024-01-13_14.21.28.png
          137 kB
          Connor Steppie
        5. 2024-01-13_14.34.56.png
          648 kB
          Connor Steppie
        6. 2024-01-13_14.35.15.png
          680 kB
          Connor Steppie

            Unassigned Unassigned
            Awesoman3000 Connor Steppie
            Votes:
            7 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              CHK: