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

Camera is glitching through tall grass, sea grass, and kelp in F5 (third-person) mode

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Minecraft 19w11a
    • Minecraft 13w36b, Minecraft 13w37a, Minecraft 13w37b, Minecraft 13w38a, Minecraft 13w38b, Minecraft 13w38c, Minecraft 13w39a, Minecraft 13w39b, Minecraft 1.7.4, Minecraft 14w05b, Minecraft 14w06b, Minecraft 14w07a, Minecraft 14w08a, Minecraft 1.7.5, Minecraft 14w33c, Minecraft 14w34a, Minecraft 14w34b, Minecraft 14w34c, Minecraft 14w34d, Minecraft 1.8-pre1, Minecraft 1.8-pre2, Minecraft 1.8, Minecraft 1.8.6, Minecraft 1.8.8, Minecraft 15w36d, Minecraft 15w45a, Minecraft 15w47a, Minecraft 15w47c, Minecraft 15w50a, Minecraft 1.9.1, Minecraft 1.9.2, Minecraft 16w14a, Minecraft 1.9.4, Minecraft 16w21a, Minecraft 1.10.2, Minecraft 1.12, Minecraft 1.12.1 Pre-Release 1, Minecraft 1.12.1, Minecraft 1.12.2, Minecraft 18w07a, Minecraft 18w08b, Minecraft 18w11a, Minecraft 18w16a, Minecraft 1.13.1, Minecraft 1.13.2, Minecraft 18w43a, Minecraft 18w43b, Minecraft 19w03c
    • Confirmed

      The bug

      When a player walks through a block which is transparent or translucent in some way, the third-person camera forces the viewport to not exceed the internal boundary of the object, blocking the view until the player leaves the block which encases their head. This visibly affects all tall plants, the Nether portal block, and presumably anything else which is a non-opaque block but doesn't fully block the player's motion. This would make sense if the blocks were physically solid, but you can easily walk through sugar cane or grass.

      Steps to reproduce

      1. Switch view to third-person
      2. Walk into a certain block (such as tall grass)
        → Notice what happens to the camera
      3. Walk out of the block
        → Notice how the camera is now at the maximum viewing position again

      Video

      Fix proposal

      A simple fix for this would be to make F5 ignore blocks with no bounding box. Currently the method EntityRenderer.orientCamera(partialTicks) calls the method World.rayTraceBlocks(Vec3d, Vec3d) to find the surrounding blocks. World also has the method rayTraceBlocks(Vec3d, Vec3d, stopOnLiquid, ignoreBlocksWithoutBoundingBox, returnLastUncollidableBlocks) that could be used instead.

            dinnerbone [Mojang] Nathan Adams
            Patbott Patrick Koelewijn
            Votes:
            27 Vote for this issue
            Watchers:
            15 Start watching this issue

              Created:
              Updated:
              Resolved:
              CHK: