Skip to content

📦 Отсечение блочных сущностей (Minecraft 26.2) ​

Блочные сущности (сундуки, сундуки Края, таблички, флаги, черепа, декорированные горшки, колокола и маяки) отправляют индивидуальные вызовы отрисовки каждый кадр. В больших хранилищах или автоматических сортировках это вызывает серьезную конкуренцию за вызовы отрисовки GPU.


📋 Инфобокс отсечения блочных сущностей ​

СвойствоЗначение
Целевой конвейерBlockEntityRenderDispatcher.tryExtractRenderState(BlockEntity, float, CrumblingOverlay, boolean)
Обнаружение окруженияПроверяет все 6 соседних граней: up, down, north, south, east, west
Консервативный режимПроверка только полного окружения на профиле LOW
Агрессивный режимПолная проверка линии взгляда трассировкой лучей на MEDIUM, HIGH, SUPER

🧱 Проверка окружения и линии взгляда ​

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

1. Быстрый проход 6-стороннего твердого окружения ​

Перед выполнением любых расчетов трассировки Camera Culling опрашивает состояния соседних блоков:

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; // Полностью перекрыто — пропустить рендеринг
}

Сундуки, замурованные в стенах или окруженные твердым фундаментом подвала, отсекаются практически без нагрузки на процессор ($< 0.0001\mu\text{s}$).

2. Проверка линии взгляда трассировкой луча ​

На профилях MEDIUM, HIGH и SUPER (cullAllBlockEntities = true) Camera Culling проецирует луч из позиции камеры игрока к центру блочной сущности $(X + 0.5, Y + 0.5, Z + 0.5)$:

  • Если луч сталкивается с непрозрачным твердым блоком до достижения целевой блочной сущности, состояние рендеринга сбрасывается.
  • Если существует прямая линия взгляда, блочная сущность отрисовывается с полной точностью.

🔗 Связанные страницы ​

Official documentation & web portal for Dasik Igaijinn mods.