Z
> И как тъ будеш по йерархии бегать? Синхронно или как в пейпрах? Т.е. лаги или баги?
Чего не знаю, того не знаю. Надо спросить у Эпиков как у них эта иерархия устроена.
Я лишь указал на то, что отцы юзают, значит смысл есть. :)
> Погоди немного - от "SOC нужен" до "HWOC не нужен" - есть некая разница. А тъ
> как-то резко очень перешел от одного к другому. От "HWOC нужен" до "SOC не
> нужен" тоже есть некоторъе живучие вариантъ.
> Зачем так категорично о вещах, которъе по всей видимости даже не пробовали?
Да я вроде и не говорил, что SOC не нужен.
Outlaw
> для чего и где используется HOQ точно можеш сказать?
Не могу знать. :)
> а можно ссыль на данной утверждение, чот меня берут сомнения что там савсем без иерархии,
> хотя для их аутдоров наверное грида достаточно.
http://publications.dice.se/attachments/CullingTheBattlefield.pdf
Там грид и линейный список судя по папере.
И слова, что это в 3 раза быстрее, чем старый кулинг (деревянный :)).
Executor
> Чего не знаю, того не знаю. Надо спросить у Эпиков как у них эта иерархия
> устроена.
Нет там йерархии у Епиков, последний раз когда смотрел. Но у них и батчей не так много.
Z
> Нет там йерархии у Епиков
http://udn.epicgames.com/Three/VisibilityCulling.html
Dynamic Occlusion System
The dynamic occlusion system tracks visibility states for each primitive component and issues hardware occlusion queries based on heuristics to reduce the number of queries but increase culling effectiveness. The queries are read back from the GPU one frame later, so there is a one frame delay before an object is determined visible when coming around a corner, which can cause some popping. Occlusion queries are issued against the scene's depth buffer so both dynamic and static primitives can occlude, along with both opaque and masked materials. The dynamic occlusion system does not require any user setup to work, it is fully automatic.
Executor
Ну да, нет йерархии, нет синхронизации ценой некого багла.
эх а я на DX9 делаю , ну и чёрт с ним и на нём шедевры создавали ...
Z
Да, с иерархией в UE3 я поспешил.
Executor
>which can cause some popping
собстно етим все сказанно, устраивает?!, можно пробовать HOQ :),
я только вот не уверен что все лиш one frame later, может быть и two/three frames later, наверное от сцены зависит и железа.
з.ы.
за ссылку спасибо
Outlaw
> за ссылку спасибо
http://publications.dice.se
Есть ещё паперы интересные.
Народ, вот допустим я решил применить окклузьён для уменьшенного разрешение 1х1. Я нариовал мелкий объект и так вышло, что он закрасил этот единственный пиксел. Ну просто алгоритм растеризации треугольника такой - что любой самый мелкий объект имеет некоторый шанс закрасить пиксел, иначе бы сетка из очень мелких треугольников не была видно.
Ну вот закрасил этот объект этот пиксел. И значит, все другие уже не видны. Облом.
Что делать? Как растеризовать окклузион так, чтобы он строго попал внутрь?
TarasB
> 1х1
В Крайзисе 2 кстати часто видел, как кулинг фейлил. В основном проблемы с источниками света были. Но я не знаю чего именно там юзается, наверное для освещения софтовый этот и не юзается, не знаю.
Igor'
Я не троллю. Я довёл метод до крайности, чтобы понять смысл работы.
Ну и вообще, если какая стена полностью закрывает экран, значит можно прекратить отрисовку - тоже оптимизация.
TarasB
Жжошь, чертяка.
Executor
Он у них кстати и в первом так же фейлил.
Necrys
Я не жгу.
Я серьёзно спрашиваю.
Потому что всё, что приходит мне в голову - это найти все вершины всех треугольников, получаемых из этого окклузионного куба после отсечения плоскостями видимости, взять их выпуклую оболочку и отрисовать её единым полигоном, но отрисовку делать немного иным алгоритмом - таким, чтобы образ полигона попал строго внутрь него. Если таким образом отрисовать два касающихся треугольника, то между ними образуется дыра шириной в 1 пиксел, поэтому если отрисовать окклудер как есть с соблюдением этого правила, то получится дырявоая фигня.
Или вас такой нюанс не колышет? Если экран имел разрешение 1600х1200, а окклудерный буфер был 80х50, то получится, что целый фрагмент размером 20х24 экранных пиксела может стать невидимым из-за этой погрешности.
Тема в архиве.