флажки-флажочечки |
[Mar. 9th, 2019|02:01 am] |
идея считать scissor rectangle для источников света была умная. а идея забыть включить обсечение scissor-ом — глупая. после включения оного фпс на старте E1M1 бампнулся до 80, и перестал проседать в месте, где раньше проседал на десяточку почти.
а на выходе из E1M1 с проседания до 36 падает всего лишь до 62 (фактически, всё ещё укладываясь в vsync).
правда, расплата за это — появляющиеся иногда баги засветки по углам экрана. я не очень понял, почему: scissor box ли это криво считается, или же я чего-то недоучёл.
но в общем, баги появляются не так часто и сильно (пока, надо ещё поиграть в этом режиме), чтобы разменивать их на пару десятков дополнительных фпс. может, потом пойму, почему бажит (в теории — не должно).
а выигрыш такой дало за счёт ОХУИТЕЛЬНО уменьшившегося overdraw на shadow volumes. за счёт того, что объёмы вытянуты в бесконечность, они адово овердравят даже для далеких и маленьких источников света. а ножнички это всё обрезают — потому что нам нафиг неинтересно, что происходит за границами освещённого прямоугольника.
надо будет потом попробовать сделать шэйдеры, которые просто дискардят всё, что не попадает в освещённую сферу — так должно даже меньше пикселей задеваться. только я не помню, пишется/проверяется ли scissor до fragment shader, или после. то есть, проверяется, очевидно, до, а изменяется — фиг знает. надо почитать. |
|
|