Skip to content

📦 Oclusión de entidades de bloque (Minecraft 26.3) ​

Las entidades de bloque (cofres, cofres de ender, carteles, estandartes, calaveras, macetas decoradas, campanas y faros) son elementos de renderizado dinámico. Debido a que eluden la compilación de mallas de chunk vanilla, generan llamadas de dibujo individuales en cada fotograma. En salas de almacenamiento con cientos de cofres, esto produce cuellos de botella significativos en la GPU.


📋 Información de oclusión de entidades de bloque ​

PropiedadValor
Canal de destinoBlockEntityRenderDispatcher.tryExtractRenderState(...)
Detección de cerramientoComprueba las 6 caras adyacentes: up, down, north, south, east, west
Modo conservadorSolo comprueba el cerramiento completo en el perfil LOW
Modo agresivoComprobación completa de línea de visión por raycasting en MEDIUM, HIGH, SUPER

🧱 Comprobación de cerramiento y línea de visión ​

text
Camera
  │
  ├── [1] 6-Sided Solid Enclosure Check ──► CULL (Skip Draw Call)
  │
  └── [2] Line-of-Sight Raycast ──────────► RENDER or CULL

1. Descarte rápido por cerramiento sólido en 6 caras ​

Antes de ejecutar cualquier cálculo de trazado de rayos, Camera Culling consulta los estados de los bloques vecinos:

java
BlockState up = level.getBlockState(pos.above());
BlockState down = level.getBlockState(pos.below());
BlockState north = level.getBlockState(pos.north());
BlockState south = level.getBlockState(pos.south());
BlockState east = level.getBlockState(pos.east());
BlockState west = level.getBlockState(pos.west());

if (isSolid(up) && isSolid(down) && isSolid(north) && isSolid(south) && isSolid(east) && isSolid(west)) {
    return true; // 100% ocluido — omitir renderizado
}

Los cofres incrustados en paredes o rodeados de cimientos sólidos se descartan con un consumo de CPU casi nulo ($< 0.0001\mu\text{s}$).

2. Comprobación de línea de visión por trazado de rayos ​

En los perfiles MEDIUM, HIGH y SUPER (cullAllBlockEntities = true), Camera Culling proyecta un rayo desde la posición de la cámara del jugador hacia el centro de la entidad de bloque $(X + 0.5, Y + 0.5, Z + 0.5)$:

  • Si el rayo impacta contra un bloque sólido opaco antes de llegar a la entidad, se omite el estado de renderizado.
  • Si existe una línea de visión despejada, la entidad de bloque se renderiza con fidelidad visual completa.

🔗 Páginas relacionadas ​

Official documentation & web portal for Dasik Igaijinn mods.