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

Front-to-Back Rendering with UNDER Blending (2 стр)

Страницы: 1 2
#15
10:18, 18 мар 2016

MrShoor
> Соотвественно если discard-ишь пиксель - то он не должен записаться в буфер глубины.

Извените что вклиниваюсь, а как тогда рендерить геометрию с прозрачностью не ломая early-Z ?

#16
10:19, 18 мар 2016

Mr. Rabbit
Судя по всему, никак..

#17
10:21, 18 мар 2016

И опять Кащей во всем виноват :P

#18
10:21, 18 мар 2016

innuendo
> Видать ты не работал по-настоящему с блендингом ...
Ой ой ой, а сам то работал?
Массив из кубиков: 11*11*301 маленьких кубика:
http://screenup.org/56eba9496eb0d
Каждый кубик имеет альфу 0.33.
Итак, делаю все, чтобы увидеть как блендинг хоть немного просаживает фпс:
1. Специально ставлю торцом к нам, чтобы овердрав в глубину был аж 301 слой.
2. FOV выставляю поменьше: Pi*0.01. Практически ортогональная проекция, дальние кубики имеют офигительную площадь.
3. Тест глубины отключен (даже depth текстура в render target не установлена). Т.е. имеем гарантированный овердрав.
4. Фрагметный шейдер примитивнейший, чтобы любая дополнительная нагрузка была заметна:

PS_Output PS(VS_Output In) {
    PS_Output Out;
    float3 n = normalize(In.Normal);
    Out.Color = max(0.0, -dot(normalize(In.ViewPos), n)) * In.Color;
    return Out;
}

5. Рисуется все за 1 дравколл, ботлнек однозначно GPU.
Итак, фпс с выключенным блендингом:
http://screenup.org/56ebac2f92047
А теперь включаю бледниг ничего не меняя:
http://screenup.org/56ebac0167fb9

маммамия. 374 фпс против 368. Какжить, какжить? Этож такая большая просадка.

#19
10:26, 18 мар 2016

Mr. Rabbit
> Извените что вклиниваюсь, а как тогда рендерить геометрию с прозрачностью не
> ломая early-Z ?
Прозрачность не ломает early-Z (даже на тайловом железе насколько я знаю, но я не проверял). Ломает его discard. И то только на до DX11 железе, ибо в DX11 есть форсированный earlydepthstencil.

#20
10:31, 18 мар 2016

MrShoor
> Ломает его discard

Дак я и спрашиваю, как мне правильно отрисовать травку на старой железке не ломая early-Z?
Блэндинг не использую.

#21
10:48, 18 мар 2016

Mr. Rabbit
> Дак я и спрашиваю, как мне правильно отрисовать травку на старой железке не ломая early-Z?
Не пиши в буфер глубины травку, тогда можно discard-ить

#22
10:53, 18 мар 2016

MrShoor
> Не пиши в буфер глубины травку, тогда можно discard-ить

Но мне не нужна сцена без травки, может вы хотели сказать чтобы я рендерил травку в последнюю очередь?

#23
11:02, 18 мар 2016

Mr. Rabbit
> Но мне не нужна сцена без травки, может вы хотели сказать чтобы я рендерил
> травку в последнюю очередь?
Сначала рендерится непрозрачная геометрия front to back. Потом прозрачная back to front. Травка прозрачная геометрия, соответственно рисовать её после непрозрачной, отсортированной от дальней к ближней.

#24
11:03, 18 мар 2016

MrShoor
Ты хочешь сказать, что блендинг с нулевой альфой может быть лучше discard-a?

#25
11:12, 18 мар 2016

MrShoor
> отсортированной от дальней к ближней.

Но зачем , она у меня не полупрозрачная, блендинг я не пользую?

#26
11:14, 18 мар 2016

MrShoor

Сначала рендерится непрозрачная геометрия front to back. Потом прозрачная back to front.

Так вот - топик как раз про рендеринг прозрачной геометрии front-to-back. Нужен только under блендин....

#27
11:35, 18 мар 2016

Mr. Rabbit
> Но зачем , она у меня не полупрозрачная, блендинг я не пользую?
А разве тонкие травинки не должны быть полупрозрачными?
Сейчас 2016 год, Готика II уже не в моде.

#28
11:43, 18 мар 2016

Kashey
> Сейчас 2016 год
> Deferred Shading
> Crysis3
> Травинки геометрией выводят

Собственно вопрос отпал:

To take advantage of z-cull, follow these guidelines:
1.  Don’t create triangles with holes in them (that is, avoid alpha test or texkill)
2.  Don’t modify depth (that is, allow the GPU to use the interpolated depth value)

Никакого альфатеста.

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

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