Stage 3: Binary Space Partition
Разные высоты секторов: проблема
Данная страница еще в разработке, уверены, что хотите ознакомиться?
Теперь зададим соседним секторам разные уровни пола. Портал между ними уже не является полностью открытым проемом: разница высот должна образовать нижнюю стенку ступени. Аналогично разница потолков должна создавать верхнюю стенку.
2.5D Renderer
2D Renderer
Управление камерой WASD и ZX
Текущий рендерер пропускает портальный сегмент целиком, поэтому перепад высот не закрывается стеной и граница между секторами выглядит неверно. Перемещение камеры по вертикали дополнительно показывает, что видимая часть проема зависит от стороны наблюдения.
Немного кода
В примере внутренний сектор поднят относительно внешнего. На следующем шаге портал будет сравнивать высоты обоих секторов и рисовать только недостающие верхнюю и нижнюю части стены.
const outsideSector: Sector = {
// ..
floorHeight: 0,
ceilHeight: 10_000,
};
const insideSector: Sector = {
// ..
floorHeight: 2_000,
ceilHeight: 10_000,
};