Я неправильно отображаю деревья BSP? - PullRequest
5 голосов
/ 16 января 2012

У меня есть дерево BSP, загруженное в память.Сначала я узнаю, на каком листе я нахожусь. Затем я расшифрую PVS.Затем я пробегаю каждую область в этом PVS и вижу, лежит ли она в моем усеченном контуре.

Мне сказали, что это неправильный способ рендеринга, и что я должен делать рендеринг задом наперед.обход дерева BSP.Как именно я это делаю?Я видел несколько разных способов сделать это, поэтому я спрашиваю.

Например, рендеринг BSP Quake 3 говорит: Пройдите BSP, чтобы определить, на каком листе расположена камера.Извлеките и распакуйте PVS для этого листа, переберите PVS и отметьте листья в BSP.Пройдите BSP от ближнего к дальнему Если узел не помечен, пропустите его.Протестируйте граничную границу узла с камерой Frustrum.Добавьте текущий лист в список воспроизведения

. Это все еще стандартный способ, которым это делается сегодня или, по крайней мере, для более простых игр.

1 Ответ

1 голос
/ 19 января 2012

Как сказал OrgnlDave:

Когда вы рисуете примитив, пиксели, расположенные перед z-буфером, будут закрашены, и программный шейдер будет выполнен. Но если пиксель находится за сценой, то пиксели отклоняются. Необязательно делать такие рисунки спереди назад, но выигрыш в производительности наихудший.

Однако, если вы используете смешанный объект, вам нужно будет рисовать этот объект после каждого твердого объекта и делать это от начала до конца. Потому что вам нужно смешать цвет с объектом, размещенным сразу после.

...