Software Occlusion Culling (комментарии)
Это сообщение сгенерировано автоматически.
innuendo
> уже 100-500 произнесли HOM, HiZ - а воз и ныне там
дык, сделай лучше. цыферки там написаны - перепрыгнешь - похвастаешь.
kas
Спасибо за статью.
innuendo
Ну и написал бы статью про правильный OQ. :)
Я так понимаю то, про что ты говоришь юзается в Крайзисе?
kas
Запустил демку, что с OC ~30 fps (vsync выключен), что без. Ну там пару фпс разница. Кроме Хардваре Инстансинга остальное глючит. Где смотреть профит? :/
Executor
Просто на данной сцене профита мало. Но дипы уменьшаются хорошо и невидимое не рисуется (особенно актуально для вывода тяжелой графики).
Заметил баг, проявляющийся, когда куб пересекается границу экрана.
Скрин: http://habreffect.ru/82e/b5529c272
А вообще похожие техники используются монстрами индустрии.
http://www.slideshare.net/DICEStudio/culling-the-battlefield-data… from=ss_embed
http://www.secondintention.com/files/GDC2011-Occlusion-Slides.pdf
Довольно интересно было бы также получить информацию о методах генерации окклудеров по исходной геометрии (просто ЛОДы тут не пойдут).
А вот две цифры после Visible cubes - это время в секундах чего?
evirus
Время трансформации и растеризации треугольников.
msvcr100.dll не найден.
еще есть глюки - неверно кулится. Причем, что удивляет, если водить мышой, то часть кубиков появляется (моргает). OC-буфер при этом полностью белый.
kas
Неплохо бы еще время кадра вывести на экран. Из fps, конечно, считается, но для удобство сравнения с временами трансформации и растеризатора - не помешало бы.
kas
Спасибо! отличная статья.
Executor
> Запустил демку, что с OC ~30 fps (vsync выключен), что без. Ну там пару фпс
> разница. Кроме Хардваре Инстансинга остальное глючит. Где смотреть профит? :/
профит в том что на гпу раз в Нцать быстрее стало. это примерная реализация, можно сильно быстрее. если к примеру делать в много ниток. наивный джоб манагер который сейчас у меня ускоряет примерно в 2 раза - на 2 нитках. можно ещё чуть чуть отрезать от трансформа. можно растеризовать не в 720п - будет пропорционально быстрее. это не готовое решение конечно, просто илюстрация подхода
dmikos
> Заметил баг, проявляющийся, когда куб пересекается границу экрана.
может кулинг глючит может ещё чего)
evirus
> еще есть глюки - неверно кулится. Причем, что удивляет, если водить мышой, то
> часть кубиков появляется (моргает). OC-буфер при этом полностью белый.
код есть, можно поглядеть почему так) если получится починить - я только за буду)
Larik
> msvcr100.dll не найден.
код есть с проектом, можно самому скомпилить
kas
> профит в том что на гпу раз в Нцать быстрее стало.
Где?
> может кулинг глючит может ещё чего)
> код есть, можно поглядеть почему так) если получится починить - я только за буду)
Странный подход. Статью написал, а то что всё работает криво косо мол сами разбирайтесь.
Стоило ли тогда вообще статью писать?
Executor
> Странный подход. Статью написал, а то что всё работает криво косо мол сами
> разбирайтесь.
> Стоило ли тогда вообще статью писать?
я вроде тебя читать не заставлял. не нравится - проходи мимо. что мне стоит делать, а что нет - я сам решу, спасибо. я понимаю тебе то что ты не можешь сразу скопипастить и себе вставить бесполезно, но не надо думать что все такие
Executor
> > профит в том что на гпу раз в Нцать быстрее стало.
> Где?
6600GT 8.11 FPS без OC с OC 15.94 FPS. Я что-то не так делаю?
Если у тебя разница в пару FPS значит твоей видюхе пофигу эта простая сцена с кубиками и с таким овердравом кубиками и с тремя инструкциями в пиксельном шейдере. На основе этой реализации можно сделать хороший куллинг. Да, код местами требует хорошей квалификации программиста, ну что поделаешь, вообще нужно быть благодарным что хоть в каком-то виде появилась статья да еще с реализацией.
Тема в архиве.