22 Сентября 2024, 09:30:16
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > [G] Мега оптимизация
[G] Мега оптимизация
(Прочитано 18178 раз)
  1 [2]
Печать
Viik | **** | Старожил | Сообщений: 302 | «Ответ #15 30 Июля 2009, 00:35:25 »
Re: [Графика]Мега оптимизация |
15
Цитировать
Я не знаю насколько часто применяются вертекс шейдеры изменяющие геометрию. Могут ли они стать тормозом для такого метода, их ведь надо будет применять в обоих проходах?
Даже если шейдер сложный, как скининг например, всеравно видяха его посчитает быстрее чем ЦПУ, поэтому тут особого выбора то и нет. Как бы могут, но на последних видяхах шейдера унифицированы на уровне железа, тобиш разгружая пиксельный шейдер легче будет дышать и вертексному.

Цитировать
Не возникает ли проблем при отрисовке второго прохода из-за того, что глубина уже как-бы занята первым проходом. Т.е. видяха считает, что не нужно отрисовывать пиксели даже ближайшего объекта, ведь у них точно такая же глубина как у уже отрисованых? Хотя я бы попробовал уменьшить немного фар плейн для второго прохода.
На втором проходе делаеться только тест глубины, запись в буфер не делаеться. А видяха сама отсекает не прошедшие тест фрагменты еще до пиксельного шейдера. Есть ряд условий при которых автоматический кулинг работать не будет. Более подробно в GPU Programming guide 7xxx от Нвидии.

Цитировать
Насколько данный способ оптимизации сравним с сортировкой объектов по расстоянию до камеры, есть ли смысл использовать сортировку, если используется рендер глубины?
Это разные вещи, сортировка в первую очередь нужна для блендинга полупрозрачной геометрии и кулинга на уровне боундинг боксов. Ничто не мешает использовать оба варианта сразу.
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #16 04 Августа 2009, 15:00:35 »
Re: [Графика]Мега оптимизация |
16
И вновь проблемы:

При раздельном рендере полигонов  , находящихся на одной плоскости, возникает впечатление "запаздывания " результатов одного от другого. В итоге при изменении положения камеры появляется эффект наложения обного объекта на другой...

Viik подсказал рендить объекты прямиком через Chanel Caller, всё работает на ура. Но как быть с рендером в текстуру? И как в шедах указать параметры источников света, если они определяются в канале Render ?

По поводу первого: у нас есть вызов из бэк буфера, таким образом можно глубину закодировать 3 цвета RGB , а потом при надобнасти восстановить. Но это лишний гемор.., и скорее всего есть другой метод решения проблемы.

Пример возможности использования бэкбуфера прилагается 422

По поводу второго: в шейдер можно передать параметры напрямую через CHANNELVECTOR и CHANNELVALUE. Это тоже - гемор...

Исправлено ли это в Квесте версии 4.3.х ?
* Z_early.cgr (155 Кб - загружено 1041 раз.)
« Последнее редактирование: 04 Августа 2009, 15:06:02 от Sqwer »
Viik | **** | Старожил | Сообщений: 302 | «Ответ #17 05 Августа 2009, 17:50:44 »
Re: [Графика]Мега оптимизация |
17
Код:
При раздельном рендере полигонов  , находящихся на одной плоскости, возникает впечатление "запаздывания " результатов одного от другого. В итоге при изменении положения камеры появляется эффект наложения обного объекта на другой...
Это из-за того что положение камеры считаеться несколько раз за один кадр, сколько раз вызываеться столько раз и пересчитываеться, сделай математику в ней принудидельно Ван Тайм.
Код:
Viik подсказал рендить объекты прямиком через Chanel Caller, всё работает на ура. Но как быть с рендером в текстуру? И как в шедах указать параметры источников света, если они определяются в канале Render ?
Они "определяються" там где ты их вызываеш, Рендер ченел тут не нужен, просто в ченел коллере их вызывай и все.
 
  1 [2]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > [G] Мега оптимизация
Перейти в: