mojira.dev
MC-88176

Entities standing on Y=63 will become invisible when looking up

The bug

Entities standing on Y=63 will become invisible when looking up.

Video: https://www.youtube.com/watch?v=6qZi6p5UI-8

How to reproduce

  1. Stand on level 63 (standing on level 64 works too but the effect is kicking in later)

  2. Spawn some mobs on level 63

  3. Slowly move up the mouse
    → ❌ At some point the entities will be come invisible

Note: other coordinates also have this problem, but Y = 63 is the most obvious.

Code analysis

Code analysis by @unknown in this comment.

Related issues

Attachments

Comments

migrated
[media][media][media][media][media][media][media][media][media][media][media][media][media][media][media][media][media]
kumasasa

What's your screen resolution ?

[Mod]Les3awe

1920 x 1080

kumasasa

Related to MC-1058

[Mod]Les3awe

The problem seems to occur only the Y = 63.

kumasasa

Confirmed.

[Mod]Les3awe
  • Confirmed :
    Of other coordinates also have this problem, but Y = 63 the most obvious.

[Mod]Les3awe

Someone can confirm it?

migrated

Hello, I'm coming from bugpost MC-1058
("Some Entities cannot be seen when on the edge of the screen")

Attached 4 screenies: 2x Zombie (looked at edge of screen), 2x Mooshroom, (looking upwards);
both times me/player at Y=73, NOT 63! Entity at Y=75.

I also quickly tested so far Blaze, Skeleton, Villager, all of which didn't have that issue, as far as I can tell in the rush.

It seems it depends on the mob, MAYBE their hitboxes, whether or not this occurrs, when looking either from edge of screen or looking upwards (Edit: The Y=63 problem seems to be another/additional issue).

Don't have the time at the moment, but this needs testing with all entities, sideways+upwards-looking, and seeing if there's maybe a correlation to MC-50367.
Edit: I suggest to conduct a test series with entities on Y=63 as well as above or below, and test both sideways as well as upwards; that'd cover both bugposts and would probably give a clearer picture.

I'll link my comment here into MC-1058.

Regards, Meri

migrated

Little note: It's fixed for mobs if Y is not 63.
I can confirm though that the bug still there if the mob is at Y = 63.
Tested with a Zombie

/summon Zombie ~ 63 ~ {NoAI:1}

Skeleton and Villager.

migrated

Confirmed for 1.9 pre-2 happens with Irongolem (idk with other mobs)

migrated

I activated hitboxes with F3+b, and e.g. in the case of the Creeper the hitbox is taller than the mob skin, but the Creeper still "vanishes" when you look up above it, but really (nearly) only when Creeper and you are on Y=63, it's best to see on this specific altitude, the former (Beta 1.8?) sea level (I doubt it has anything to do with it, but I find it puzzling it's exactly that altitude)..

The "vanishing point" of an e.g. Creeper varies, depending also on your distance from it.
The very same "angle" you look above its head at different distances can make it either disappear, or it is still visible.

The farther you are away, the higher your angle can be until it disappears; the closer you are to the mob, the lower the angle is when it disappears.

After quick testing, there also seems to be a difference when it disappears, depending if you look at it from front (at its face), or at its backside or at its side, even if it's the very same distance you are away from it, but I'd have to do thorough testing to be very sure about it, and that it also applies to other mobs than Creepers.

marcono1234

Please link to this comment in the description

The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.

I am not sure what exactly that happens but it looks like the method net.minecraft.client.renderer.culling.Frustum.isBoundingBoxInFrustum(AxisAlignedBB) returns that the chunk is not in the view frustum.

Stack trace

Thread [Client thread] (Suspended)    
    ClippingHelperImpl(ClippingHelper).isBoxInFrustum(double, double, double, double, double, double) line: 26    
    Frustum.isBoxInFrustum(double, double, double, double, double, double) line: 34    
    Frustum.isBoundingBoxInFrustum(AxisAlignedBB) line: 42    
    RenderGlobal.setupTerrain(Entity, double, ICamera, int, boolean) line: 931    
    EntityRenderer.renderWorldPass(int, float, long) line: 1370    
    EntityRenderer.renderWorld(float, long) line: 1313    
    EntityRenderer.updateCameraAndRender(float, long) line: 1122    
    Minecraft.runGameLoop() line: 1158    
    Minecraft.run() line: 448    
    Main.main(String[]) line: 131    
    Start.main(String[]) line: 13
migrated

This is most likely caused by the chunk section the entity is in (as determined by the entity's position, at the bottom-centre of it's AABB) moving out of the view frustum, while part of the entity's body remains within.

While the entity would be considered visible according to its own render bounding box, the game only considers entities in the chunk sections that aren't culled, so the entity isn't rendered.

This is why it mostly affects entities standing at a position just under the top of a chunk section (y-level just under a multiple of 16).

One possible solution is to add an entity-sized margin to the render chunk bounding box checks (in RenderGlobal#setupTerrain).

[Mod]Les3awe

(Unassigned)

Confirmed

(Unassigned)

invisible, mob, rendering

Minecraft 1.8.8, Minecraft 15w36b, Minecraft 15w36c, Minecraft 15w36d, Minecraft 15w37a, ..., Minecraft 18w44a, Minecraft 18w48a, Minecraft 18w48b, Minecraft 18w49a, Minecraft 18w50a

Minecraft 19w14a

Retrieved