• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Новости:

Форум Quest3D восстановлен!

Главное меню

Deferred shading

Автор Alteste, 04 июня 2011, 23:39:20

« назад - далее »

Alteste

Сценка с 30 источниками света и системой раздельного освещения Deferred shading. Ссылка для скачивания - http://alteste.ru/download/Deferred_shading.exe

Всем, кому интересно что такое Deferred shading, и как его сделать в Quest3D - прошу ко мне в блог www.alteste.ru где я подробно все описал)

Всем, кто в теме - прошу отписывать о найденных ошибках, я обязательно их учту и исправлю.
Спасибо за внимание!

Sqwer

1. Не учитывается  смещение  полпиксела.
2. Нет корректировки по позиции.  (можно проверить так:  размести сцену  в 3000 юнитах  от центра мира и посмотреть что из этого выйдет)
3. ужиматься на 8бит-канал  затея для старых видях.
4. Для удобного подключения ИС   нужно  юзать Найчур. (в противном случае замучаешься подключать ИС, или схлопочишь  овердрав если через фор луп).

Alteste

1. Для чего это делается и на что влияет?
2. Каким образом делается коррекция по позиции?
3. Это вопрос оптимизации.
4. Как раз таки нэйчур и создает жуткую просадку fps

Ruslan

#3
Цитировать4. Как раз таки нэйчур и создает жуткую просадку fps

Examples\Graphics\Particles\NaturePaint Shader Instancing.cgr

где здесь просадка фпс?

а вообще Александр молодец, что реализовали Deferred shading и других научили, допилить только осталось.

В Квесте не предусмотрена возможность  для передачи массива в шейдер, поэтому выдумали всякие извраты (нейчур и так далее).  У нас проблем с передачей параметров в шейдер нет, так как используем шейдера непосредственно dx, в собственном канале.
Скоро совсем откажемся от Квеста, на подходе собственный двиг, пока без редактора (редактор заменяет 3dsMax в нем на модели накидываются шейдера, настраиваются лоды интерактивно во вьюпорте, так же билбордовые деревья, линковка и так далее, затем по нажатию кнопки экспорт, все данные о сцене выгружаются в собственном формате).

Sqwer

#4
1. Для чего это делается и на что влияет?
выборка в ДХ9  со смещением на пол пиксела.
в ДХ выше 9ки  это устранили.

2. Всё зависит от реализации. Проще всего юзать  не позицию , а глубину. а после домножать её на вью прожекшн инверсную.

3. Когда понадобится делать ССАОс учётом нормалей. ты потратишь больше ресурсов на создание бест алигн нормалей, чем на передачу 64бит текстуры.
 
4. не правда,  вызывается  просто за раз несколько геометрий фулскринов,  на 40 матриц -  получаем 80 треугольников. а это понты. сетинг хендлеро в ДХ дороже обходится.

но это всё мелочи, реальная просадка - это  заполнение стеков  dll ками.   Куча ресурсов  тратится именно на это, и как раз по этому  Квест не пригоден для больших сцен с тысячами объектов.   :-\

dfx

Цитировать4. Как раз таки нэйчур и создает жуткую просадку fps
Цитировать4. не правда,  вызывается  просто за раз несколько геометрий фулскринов,  на 40 матриц -  получаем 80 треугольников. а это понты. сетинг хендлеро в ДХ дороже обходится.

Sqwer дело говорит. Вызов дорого обходится, а в квесте нет хардвэр инстансов, которые можно напрямую юзать. Нейчур как раз и дает эту фичу - рисует несколько объектов за один вызов. Если хочешь проверить попробуй нарисовать модель из 1000 триугольников (это один дип) и один триугольник 1000 раз в цикле(1000 дипов) - и... почувствуй разницу, так сказать.)

Den_ya

#6
Ruslan

ЦитироватьСкоро совсем откажемся от Квеста, на подходе собственный двиг, пока без редактора

что означает собственный двиг?

ты про этот движок?

http://alternativaplatform.com/ru/

Ruslan

Den_ya
нет, не про этот.
"свой" в смысле пишем сами на С++\DX10\Newton

Den_ya

нифигасе :o

а что значит заменяет 3ds max(не очень понял как то)
а смаксом то этот движок дружить будет?

Ruslan

Если в двух словах, то в 3dsMax строим полностью всю сцену, при этом назначаем на меши DX шейдера и видим результат их работу непосредственно во вьюпорте макса.
Поддерживаются инстанс мешей, материалов, текстур, поддержка лодов, линковка объектов, слои, различные настройки для объектов, в том числе и для физики.
Затем вся сцена, со всеми настройками экспортируется в своем формате, который понимает наш двиг.

Ruslan

на этом скрине видна работа утилиты, для создания билбордовых деревьев\кустов (как видно, все отображается во вьюпорте макса)

Den_ya

афигеть ;D заинтерисовал :D