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

differing states of bars/panes cause self culling

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Resolution: Awaiting Response
    • Affects Version/s: Minecraft 14w10c, Minecraft 14w11b, Minecraft 14w17a, Minecraft 14w18a, Minecraft 14w20a, Minecraft 14w20b, Minecraft 14w21a, Minecraft 14w21b, Minecraft 1.8-pre1, Minecraft 1.8-pre3, Minecraft 1.8, Minecraft 1.8.1, Minecraft 1.8.3, Minecraft 1.8.7, Minecraft 1.8.8, Minecraft 15w31a, Minecraft 15w31c, Minecraft 15w32a, Minecraft 15w32b, Minecraft 15w32c, Minecraft 15w33a, Minecraft 15w33b, Minecraft 15w36b, Minecraft 15w36c, Minecraft 15w36d, Minecraft 15w37a, Minecraft 15w38a, Minecraft 15w38b, Minecraft 15w39a, Minecraft 15w39b, Minecraft 15w39c, Minecraft 15w40a, Minecraft 15w40b, Minecraft 15w41b, Minecraft 15w42a, Minecraft 15w43a, Minecraft 15w43c, Minecraft 15w44a, Minecraft 15w44b, Minecraft 15w45a, Minecraft 15w46a, Minecraft 15w47a, Minecraft 15w47b, Minecraft 15w47c, Minecraft 15w49a, Minecraft 15w49b, Minecraft 1.8.9, Minecraft 15w50a, Minecraft 15w51a, Minecraft 15w51b, Minecraft 16w02a, Minecraft 16w03a, Minecraft 16w04a, Minecraft 16w05a, Minecraft 16w05b, Minecraft 16w06a, Minecraft 16w07a, Minecraft 16w07b, Minecraft 1.9 Pre-Release 1, Minecraft 1.9 Pre-Release 2, Minecraft 1.9 Pre-Release 3, Minecraft 1.9 Pre-Release 4, Minecraft 1.9, Minecraft 1.9.1, Minecraft 1.9.2, Minecraft 1.9.4, Minecraft 16w20a, Minecraft 16w21a, Minecraft 16w21b, Minecraft 1.10 Pre-Release 1, Minecraft 16w40a
    • Fix Version/s: None
    • Labels:
    • Confirmation Status:
      Community Consensus

      Description

      What: With 3D models and interblock culling enabled, certain configurations of iron bars/any sort of glass pane can cause the tops/bottoms of above/below matching blocks (different states) to have an exposed face culled (which is incorrect).

      Why it matters: By having issues such as this, it makes attempting to optimize models less appealing, a little bit more frustrating, and at the very least might make pack makers remove interblock culling from iron bars/glass panes to prevent this issue, causing more of a performance drain than needed, especially in maps/saves that use tons of those blocks.

      Note: bars/panes are the few "transparent" blocks that can cause interblock culling on itself. In reeds_not_culling.png you can see a 3D sugarcane model (with top/bottom interblock culling enabled) not culling the top/bottom of sugarcane when touching other sugarcane. Carl Nathans has noted (and I can confirm) that repeaters/comparators cull the top/bottom face if any cullface is specified (even if that case isn't true) and the sides (which do have culling arguments on the default models!) can't be culled at all.

      Simple fix: Make it so certain models of iron bars/panes (n, ne, nse) do not cull faces of their other states.

      Advanced fix: Remove all hardcoded cull restrictions/quirkiness and allow all blocks to have culled faces if they are specified by the model and are touching either 1)an opaque block or 2)the same state of themself. This is however, still a primitive fix, because there are cases where different states of blocks obscure faces. Examples possibly being the sides of rotated repeaters/comparators, corner+line panes/bars, or even something simple as a repeater being on and another being off.

      A full separate cull control system would be fairly useful. For instance, on bars/panes you could make the sides cull as they do now (no limitations on state, since it doesn't cause issues there), but then the tops/bottoms have the state restriction. You also could make them only culled by themself (not by opaque blocks) which would allow a border around all of themself, including over opaque blocks (like they do now, but culled in the middle).

      It would also help in the case, as I have done with farmland, where an artist switches a block to render as a full cube. Currently if you do this, the rendering is treated the same (in this case, farmland won't cause other blocks to be culled since it is still a transparent block) even though this could be taken advantage of for better performance. Similarly, in default the enchanting table (and repeaters/comparators, half slabs, and stairs) has a full bottom (or top/sides for the orientables) but isn't an opaque block... so it does obscure faces so it could cull those faces, but does not. These are (and should be) changeable, but optimizing these things should be a possibility.

        Attachments

        1. 2014-05-30_01.26.49.png
          2014-05-30_01.26.49.png
          81 kB
        2. example_1.png
          example_1.png
          159 kB
        3. example_2.png
          example_2.png
          309 kB
        4. example_3.png
          example_3.png
          166 kB
        5. example_4.png
          example_4.png
          118 kB
        6. example_5.png
          example_5.png
          108 kB
        7. example_6.png
          example_6.png
          122 kB
        8. example_7.png
          example_7.png
          194 kB
        9. jira_debug_insomniac_lemon_v3.zip
          28 kB
        10. not_fixed_14w21b.png
          not_fixed_14w21b.png
          179 kB
        11. reeds_not_culling.png
          reeds_not_culling.png
          169 kB

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                NoUser No User
              • Votes:
                12 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  CHK: