Blocks with custom geometry affect water rendering as if they were solid blocks
Steps to reproduce
- Create a custom block with a custom geometry and textures such that you can see through parts of it. Or use test.mcpack
, which contains a pack with a custom block named my_test:my_block. - Create a world with Holiday Creator experimental features enabled and enabled the behavior pack with the custom block.
- Make a flat 7 x 7 pool of water source blocks.
- Place a 5 x 5 platform of glass or leaves blocks over the center of the water.
- Replace the 5 x 5 glass platform with custom blocks.
Expected result
You can see the top of the water through the custom blocks.
Actual result
You see the top of the water in step (3), but in step (4) the center 3 x 3 section of water does not render.
Analysis
The water surface not rendering is the same behavior described in MCPE-76109, however, in vanilla this only occurs with full, solid, opaque blocks and mob spawners, not with glass or leaves as shown by step (3) above. The intuitively expected behavior for custom geometry is that water rendering would react the same way as it does to glass. In other words, the game should assume that blocks with custom geometry would not be opaque full cubes.
The behavior of water rendering here occurs regardless of render_method used within the material_instances component. My guess is that it may be partly based on the block's server-side properties derived from its materialType (e.g. glass, wood, stone, metal, etc.), which it seems cannot be changed for custom blocks.
Strangely, the custom block in the attached pack is also impacted by MCPE-124841, so from far away you can see neither the block nor the water under it. Aside from MCPE-76109 and MCPE-124841 being problems in their own right, it is definitely unexpected for the same block to trigger both behaviors.
Created Issue:
Blocks with custom geometry affect water rendering as if they were solid blocks
Steps to reproduce
- Create a custom block with a custom geometry and textures such that you can see through parts of it.
- Make a flat 7 x 7 pool of water source blocks.
- Place a 5 x 5 platform of glass or leaves blocks over the center of the water.
- Replace the 5 x 5 glass platform with custom blocks.
Expected result
You can see the top of the water through the custom blocks.
Actual result
You see the top of the water in step (3), but in step (4) the center 3 x 3 section of water does not render.
![]()
Analysis
The water surface not rendering is the same behavior described in MCPE-76109, however, in vanilla this only occurs with full, solid, opaque blocks and mob spawners, not with glass or leaves as shown by step (3) above. The intuitively expected behavior for custom geometry is that water rendering would react the same way as it does to glass. In other words, the game should assume that blocks with custom geometry would not be opaque full cubes.
The behavior of water rendering here occurs regardless of render_method used within the material_instances component. My guess is that it may be partly based on the block's server-side properties derived from its materialType (e.g. glass, wood, stone, metal, etc.), which it seems cannot be changed for custom blocks.
relates to
Steps to reproduce
- Create a custom block with a custom geometry and textures such that you can see through parts of it.
Make a flat 7 x 7 pool of water source blocks.Place a 5x5platform of glass or leaves blocks over the center of the water.Replacethe5 x 5glassplatformwith custom blocks.Expected result
You can see the top of the water through the custom blocks.
Actual result
You see the top of the water in step (3), but in step (4) the center 3 x 3 section of water does not render.
![]()
Analysis
The water surface not rendering is the same behavior described in MCPE-76109, however, in vanilla this only occurs with full, solid, opaque blocks and mob spawners, not with glass or leaves as shown by step (3) above. The intuitively expected behavior for custom geometry is that water rendering would react the same way as it does to glass. In other words, the game should assume that blocks with custom geometry would not be opaque full cubes.
The behavior of water rendering here occurs regardless of render_method used within the material_instances component. My guess is that it may be partly based on the block's server-side properties derived from its materialType (e.g. glass, wood, stone, metal, etc.), which it seems cannot be changed for custom blocks.
Steps to reproduce
- Create a custom block with a custom geometry and textures such that you can see through parts of it.
- Create a world with Holiday Creator experimental features enabled.
- Make a flat 7 x 7 pool of water source blocks.
- Place a 5 x 5 platform of glass or leaves blocks over the center of the water.
- Replace the 5 x 5 glass platform with custom blocks.
Expected result
You can see the top of the water through the custom blocks.
Actual result
You see the top of the water in step (3), but in step (4) the center 3 x 3 section of water does not render.
![]()
Analysis
The water surface not rendering is the same behavior described in MCPE-76109, however, in vanilla this only occurs with full, solid, opaque blocks and mob spawners, not with glass or leaves as shown by step (3) above. The intuitively expected behavior for custom geometry is that water rendering would react the same way as it does to glass. In other words, the game should assume that blocks with custom geometry would not be opaque full cubes.
The behavior of water rendering here occurs regardless of render_method used within the material_instances component. My guess is that it may be partly based on the block's server-side properties derived from its materialType (e.g. glass, wood, stone, metal, etc.), which it seems cannot be changed for custom blocks.
Steps to reproduce
- Create a custom block with a custom geometry and textures such that you can see through parts of it.
- Create a world with Holiday Creator experimental features enabled.
- Make a flat 7 x 7 pool of water source blocks.
- Place a 5 x 5 platform of glass or leaves blocks over the center of the water.
- Replace the 5 x 5 glass platform with custom blocks.
Expected result
You can see the top of the water through the custom blocks.
Actual result
You see the top of the water in step (3), but in step (4) the center 3 x 3 section of water does not render.
![]()
Analysis
The water surface not rendering is the same behavior described in MCPE-76109, however, in vanilla this only occurs with full, solid, opaque blocks and mob spawners, not with glass or leaves as shown by step (3) above. The intuitively expected behavior for custom geometry is that water rendering would react the same way as it does to glass. In other words, the game should assume that blocks with custom geometry would not be opaque full cubes.
The behavior of water rendering here occurs regardless of render_method used within the material_instances component. My guess is that it may be partly based on the block's server-side properties derived from its materialType (e.g. glass, wood, stone, metal, etc.), which it seems cannot be changed for custom blocks.
Steps to reproduce
- Create a custom block with a custom geometry and textures such that you can see through parts of it. Or use test.mcpack
- Create a world with Holiday Creator experimental features enabled.
- Make a flat 7 x 7 pool of water source blocks.
- Place a 5 x 5 platform of glass or leaves blocks over the center of the water.
- Replace the 5 x 5 glass platform with custom blocks.
Expected result
You can see the top of the water through the custom blocks.
Actual result
You see the top of the water in step (3), but in step (4) the center 3 x 3 section of water does not render.
![]()
Analysis
The water surface not rendering is the same behavior described in MCPE-76109, however, in vanilla this only occurs with full, solid, opaque blocks and mob spawners, not with glass or leaves as shown by step (3) above. The intuitively expected behavior for custom geometry is that water rendering would react the same way as it does to glass. In other words, the game should assume that blocks with custom geometry would not be opaque full cubes.
The behavior of water rendering here occurs regardless of render_method used within the material_instances component. My guess is that it may be partly based on the block's server-side properties derived from its materialType (e.g. glass, wood, stone, metal, etc.), which it seems cannot be changed for custom blocks.
Steps to reproduce
- Create a custom block with a custom geometry and textures such that you can see through parts of it. Or use test.mcpack
, which contains a pack with a custom block named my_test:my_block.
- Create a world with Holiday Creator experimental features enabled.
- Make a flat 7 x 7 pool of water source blocks.
- Place a 5 x 5 platform of glass or leaves blocks over the center of the water.
- Replace the 5 x 5 glass platform with custom blocks.
Expected result
You can see the top of the water through the custom blocks.
Actual result
You see the top of the water in step (3), but in step (4) the center 3 x 3 section of water does not render.
![]()
Analysis
The water surface not rendering is the same behavior described in MCPE-76109, however, in vanilla this only occurs with full, solid, opaque blocks and mob spawners, not with glass or leaves as shown by step (3) above. The intuitively expected behavior for custom geometry is that water rendering would react the same way as it does to glass. In other words, the game should assume that blocks with custom geometry would not be opaque full cubes.
The behavior of water rendering here occurs regardless of render_method used within the material_instances component. My guess is that it may be partly based on the block's server-side properties derived from its materialType (e.g. glass, wood, stone, metal, etc.), which it seems cannot be changed for custom blocks.
Steps to reproduce
- Create a custom block with a custom geometry and textures such that you can see through parts of it. Or use test.mcpack
, which contains a pack with a custom block named my_test:my_block.
- Create a world with Holiday Creator experimental features enabled.
- Make a flat 7 x 7 pool of water source blocks.
- Place a 5 x 5 platform of glass or leaves blocks over the center of the water.
- Replace the 5 x 5 glass platform with custom blocks.
Expected result
You can see the top of the water through the custom blocks.
Actual result
You see the top of the water in step (3), but in step (4) the center 3 x 3 section of water does not render.
![]()
Analysis
The water surface not rendering is the same behavior described in MCPE-76109, however, in vanilla this only occurs with full, solid, opaque blocks and mob spawners, not with glass or leaves as shown by step (3) above. The intuitively expected behavior for custom geometry is that water rendering would react the same way as it does to glass. In other words, the game should assume that blocks with custom geometry would not be opaque full cubes.
The behavior of water rendering here occurs regardless of render_method used within the material_instances component. My guess is that it may be partly based on the block's server-side properties derived from its materialType (e.g. glass, wood, stone, metal, etc.), which it seems cannot be changed for custom blocks.
Strangely, the custom block in the attached pack is also impacted by MCPE-124841, so from far away you can see neither the block nor the water under it. Aside from MCPE-76109 and MCPE-124841 being problems in their own right, it is definitely unexpected for the same block to trigger both behaviors.
Steps to reproduce
- Create a custom block with a custom geometry and textures such that you can see through parts of it. Or use test.mcpack
, which contains a pack with a custom block named my_test:my_block.
- Create a world with Holiday Creator experimental features enabled and enabled the behavior pack with the custom block.
- Make a flat 7 x 7 pool of water source blocks.
- Place a 5 x 5 platform of glass or leaves blocks over the center of the water.
- Replace the 5 x 5 glass platform with custom blocks.
Expected result
You can see the top of the water through the custom blocks.
Actual result
You see the top of the water in step (3), but in step (4) the center 3 x 3 section of water does not render.
![]()
Analysis
The water surface not rendering is the same behavior described in MCPE-76109, however, in vanilla this only occurs with full, solid, opaque blocks and mob spawners, not with glass or leaves as shown by step (3) above. The intuitively expected behavior for custom geometry is that water rendering would react the same way as it does to glass. In other words, the game should assume that blocks with custom geometry would not be opaque full cubes.
The behavior of water rendering here occurs regardless of render_method used within the material_instances component. My guess is that it may be partly based on the block's server-side properties derived from its materialType (e.g. glass, wood, stone, metal, etc.), which it seems cannot be changed for custom blocks.
Strangely, the custom block in the attached pack is also impacted by MCPE-124841, so from far away you can see neither the block nor the water under it. Aside from MCPE-76109 and MCPE-124841 being problems in their own right, it is definitely unexpected for the same block to trigger both behaviors.
relates to
This issue also applies to custom blocks (see e.g. MCPE-140364), which suggests to me it may actually be triggered by the "render_method": "alpha_test" inside "material_instances".
I agree the feature itself makes sense for optimization for some blocks like grass and flowers, but I think it does not make sense for it to be based on simplistic criteria (render distance + render method). It ought to have a minimum threshold (like entities do) so things don't disappear too close on low-end devices or for users using low render distance to get better performance. For example, on my iPhone I can set render distance as low as 6 chunks, and that makes affected blocks disappear when > 48 blocks away. It might be even better to have it be adjustable separate to some extent from render distance.
It also does not make much sense for light-emitting blocks like fire and glow lichen, because you can see the light from far away but not the source. And for a block like lily pads, not being able to see it from high up in the air before you jump could mean you die from falling instead of landing safely in the water.
The same issue affects vanilla dead corals and amethyst clusters. It is likely related to a block property that cannot be set for custom blocks (or for which there is no documentation), which makes pathfinding treat the block as if it were solid and full. It seems that this default "solid" property or a related one also causes MCPE-140364.