Портал Quake 3 и отбраковка усеченного конуса
Я пытаюсь понять исходный код Quake3.
Кто-нибудь знает, что делает функция R_MarkLeaves() в файле ( tr_world.c)?
Я думаю, что это связано с отбраковкой портала?
Мне нужно знать, как это работает, чтобы я мог также реализовать это в своем коде, чтобы ускорить рендеринг.
1 ответ
R_MarkLeaves()
отмечает предварительно вычисленный PVS (потенциально видимый набор) листовых узлов (выпуклые оболочки) с учетом расположения камеры / глаза. Обход дерева BSP решает проблему порядка прорисовки (сортировку по глубине) для программного рендеринга, но в то же время это приводило к слишком большому перерисовке. PVS используется для обрезки листовых узлов, которые явно не видны из текущего узла / положения.