Войти
ПрограммированиеФорумГрафика

Software rendering - occlusion culling (5 стр)

Страницы: 1 2 3 4 5
#60
15:20, 17 сен. 2014

Попробуй динамически генерировать билборды


#61
16:06, 17 сен. 2014

TarasB
Ну модернизировать систему биллбордов я в принципе не против, но куллинг это в принципе не отменяет)
Не только же к лесу относится, но и к кейсу "стою перед стеной но усё тормозид хотя ничего не видна"

#62
20:34, 17 сен. 2014

Mephisto std
А смысл оптимизировать ради того чтобы когда уткнешься в стену или скалу фпс подскачил в 2 раза а остальное время был таким-же унылым? Тут рендер надо оптимизировать, чтобы фпс стабильно был лучше. Существенный профит от OC только и будет, когда большие окклюдеры вокруг и постоянно. Тебе уже не один человек с опытом об этом написал даже после меня. Дерево - не окклюдер. И тебе придется таки сэмплить альфа-текстуру когда будешь растеризовывать глубину. Про репроекцию за пределами их пейпера ничего особо не видел. Видел еще ролик какой-то: http://www.youtube.com/watch?v=Wy0Bv0Folbg / на сайте вроде есть зип с демкой: http://naixela.com/alex/

#63
5:24, 18 сен. 2014

Mephisto std
> Так, ладно, может ты что-то умное говоришь а я просто не понимаю)
> Если ты растеризуешь окклюдеры, то получаешь софтварную depth-текстуру.
именно так

> Как ты, не растеризуя occludee, будешь их тестить against этой текстуры?
а зачем их растеризовать, у тебя есть его bounding box/sphere, в чем проблема посчитать min depth и screen rect для него?
проблемы нет, это очень быстро, ну далее сам тест:
if(min depth < depth(x,y)) visible;


p.s.

+ делают иерархию где хранят уже min depth / max depth для fast accept / reject, т.е.
if(min depth < min_depth_i(x_i, y_i)) fast accept (фрагмент гарантированно виден, объект виден)
else if(min depth > max_depth_i(x_i, y_i)) fast reject (фрагмент гарантированно не виден, не тестируем на след. уровне иерархии)
else next hierarchy level test

если все фрагменты  гарантированно не видны на одном уровне то и объект гарантированно не виден.
обычно хватает 1-2 доп. уровня иерархии к оригинальному depth buffer.

#64
10:54, 18 сен. 2014

Outlaw
Я понял твой подход. Ты делишь сцену на окклюдеры и окклюди, софтварно рендеришь окклюдеры - а окклюди отсекаешь по упрощённой растеризации.
Это иногда может быть более выгодно, но
1. У меня нету четкого разделения на окклюдеры и окклюди (тот же кейс с лесом), каждый объект может быть и тем и другим
2. В твоём подходе все равно нужно растеризовать окклюдеры, тест конечно более оптимизирован, но все равно надо лазить по буфферу сравнивать значения,
так что выигрыш не такой уж значительный.

Идея с min depth неплоха, возможно, пригодится, но в общем целом
в моём конкретном кейсе твой метод неприменим.

#65
10:59, 18 сен. 2014

N1
> Дерево - не окклюдер. И тебе придется таки сэмплить альфа-текстуру когда будешь растеризовывать глубину.
Что-то с тобой не так. Я что, на каждой странице должен это писать?
ТЕКСТУРА ОККЛЮДЕРОВ БЕРЕТСЯ ИЗ Z-BUFFER ПРОШЛОГО КАДРА
почитай факов пост уже! =)

>Видел еще ролик какой-то: http://www.youtube.com/watch?v=Wy0Bv0Folbg / на сайте вроде есть зип с демкой: http://naixela.com/alex/
Спасибо, гляну, возможно по делу) правда непонятно что конкретно на видео происходит, но похоже на правду

#66
11:47, 18 сен. 2014

Mephisto std
> БЕРЕТСЯ ИЗ Z-BUFFER
а на проце не быстрее растеризовать чем текстуру в обратную сторону через PCI-E гонять ?

#67
11:57, 18 сен. 2014

Mephisto std

>1. У меня нету четкого разделения на окклюдеры и окклюди (тот же кейс с лесом), каждый объект может быть и тем и другим
т.е. тебе нужно все тестить (читай ренедрить)? олала.

> но все равно надо лазить по буфферу сравнивать значения
а где не нада?! у тебя что не нада? когда растеризовать оклюди будеш что читать не будеш и буфера.

Мой подход,хотя какой он мой, ему 100 лет в обед, он заведомо лучше твоего.
потому как
1 - оклудеров всегда меньше чем оклюди
2 - растеризация оклудеров быстрее
3 - тест оклюди быстрее
4 - тест для !текущего! кадра а не для !предыдущего!
5 - растеризация хорошо паралелится, но потом финальный мердж.
и т.д.  и т.п.
6 - ну и самое главное = отсутствует синк. CPU-GPU

А твой метод тупо не взлетит, потому как как буду stalls для ожидания данных из предыдущего кадра, тыж по сути синхронизируеш CPU-GPU, какая разница предыдущий кадр или текущий, подумай.
Ну и артифакты типа sudden popping до кучи если не текущий кадр, плюс сам тест даже дороже (надаж придумать растеризовать оклюди)

з.ы.
но вообщем я никого в свою веру не тяну, делай конечно.

з.з.ы
с таким же успехом можно делать depth pass куда рендерить сцену, а потом при помощи HOQ оттестить все оклюди, хотя раз ты их не делиш то тестировать тебе все.
но это также хреново, я не понимаю зачем для того чотбы разгрузить GPU его дополнительно загружать HOQ, и т.д.
у CPU куча ядер, 90% из них не используется :)

#68
15:43, 18 сен. 2014

Outlaw
вот ты любитель похоливарить
>Мой подход,хотя какой он мой, ему 100 лет в обед, он заведомо лучше твоего.
"Мой подход" - аналогично не мой, а крайтековский. Используется в Cryengine 2 и Cryengine 3.
Твой подход, еще раз, нужно знать что есть окклюдер а что - окклюди.
В моём кейсе это НЕ ПОДХОДИТ !!!. Дальнейшие разглагольствования тут бессмысленны.

N1
> в целом, все что могли тебе тут уже сказали, с учетом упоротого желания делать по-своему
Спасибо, конечно, но почти единственный, кто что-то по сабжу сказал, а не выливал словесный понос в тему, был
Mr F на самой первой странице. Ну и ты вроде полезную ссылку кинул по репроекции(я еще не смотрел).

Перед тем как писать в тему, стоит прочитать хотя бы первый пост и попытаться понять, что конкретно спрашивает автор темы.
На всякий случай, флэшбэк:
>1. Как лучше сделать downsampling depth-buffer'а? (с пропуском/интерполяцией по соседним значениям)
>2. Как правильно сделать reprojection depth-buffer с предыдущего кадра в текущий?
Видит бог, у меня ангельское терпение, и я не устаю каждому контрибутору объяснять, что мне неинтересно его мнение на
счёт избранного мною метода, мне интересны мнения по заданным мной вопросам. Но сейчас я уже немного начинаю уставать.

> по факту, теме 3 дня, 5 страниц. то ты сделал и какие результаты отпостил?
Я сделал много чего, но не считаю нужным отчитываться. У меня довольно много текучки, потому до имплементации данной фичи руки доходят редко.
Тема была задумана как теоретическая.
> взял бы давно и замерил, как с обычным HOQ + Conditional Render отбрасывает обьекты в твоей сцене и какой профит дает, запостил скрины\стату. чтобы было, что обсуждать и какой-то интерес в этой теме другим.
Если бы у меня было лишнее время и желание заниматься бесполезной работой, я бы так и поступил =)
Но, во первых, я работаю в рамках готового движка, в который довольно долго встраивать всякие фичи, а во вторых,
меня не интересует сравнительная производительность методов. Меня интересуют ответы на ДВА ФАКОВЫХ ВОПРОСА

прямо мем какой-то получается из топика, надо закрывать

Страницы: 1 2 3 4 5
ПрограммированиеФорумГрафика

Тема в архиве.

Тема закрыта.