Quest3D - Русскоязычное сообщество

Quest3D => Визуализация, Шейдеры => Тема начата: Const_47 от 02 Марта 2009, 03:33:08



Название: [sh] Deferred shading
Отправлено: Const_47 от 02 Марта 2009, 03:33:08
&Viik

Спрашиваю у тебя, поскольку именно у тебя больше всего ожидаю получить ответ.

Как ты решаеш вопрос в Deferred shading c прозрачностью? Ну скажем с полупрозрачной поверхностью? Единственное что приходит мне на ум, это пересчитываить в rtt нормали, вершины, для всех прозрачных мешей  отдельно. А потом как то комбинировать в финальной закраске? Но тогда как мне узнать, что например стаканчик закрыт из моего ракурса стеной? Я почти уверен что есть более грамотное решения.

Поделись ссылками по проблеме.


Название: Re: Deferred
Отправлено: Viik от 02 Марта 2009, 10:37:02
Именно так и делаеть, отрисовываеться вся непрозрачная геометрия а потом отдельно прозрачная, вплоть до того что все постпроцессы (кроме ХДР) считаються для непрозрачной геометрии включая деп оф фиелд и мотион блур а потом уже считаеться прозрачная геометрия и пост процессы для нее.

Тебе не нужно узнавать закрыт он или нет, просто не нужно чистить глубину фрейм буфера. В текущей версии квеста этого сделать нельзя, любая отрисовка в РТТ делаеться через фрейм буфер и деп естественно убиваеться. Надеюсь пофиксят вместе с добавлением МРТ.


Название: Re: Deferred
Отправлено: Const_47 от 02 Марта 2009, 17:16:52
Большое спасибо

MRT действительно не хватает.

Как крайний вариант, есть идея, самому считать в rtt depth
сначала для непрозрачной, потом для прозрачной, потом if()
Но производительность сильно страдает  :'(


А что, обещали пофиксить?


Название: Re: Deferred
Отправлено: Viik от 02 Марта 2009, 18:17:23
Вроде да, там несколько багов из-за этой лажи, 2-я бага это то что РТТ не может быть больше размера буфера.

Можно и так делать, деп других объектов уже есть и можно сранить попадает или нет, но могут быть проблемы с точностью, если полупрозрачная поверхность находиться рядом с непрозрачной. Без МРТ "настоящий" дефферед всеравно не получиться, я пока что на него забил.


Название: Re: Deferred
Отправлено: Const_47 от 02 Марта 2009, 19:34:18
Что означает "деп других объектов уже есть"?
То есть его не надо отдельно считать в rtt?


Не хочу пока забивать на deferred, он же так красиво под "нектсджен" ложится. Пока в поисках экземплов по mrt на плюсах. Может получится прикрутить.