Suslik
> Пожалуйста, выделяйте в математических выкладках вектора, к примеру, болдом. Формулы будут читаться существенно проще, если не надо будет ломать голову над размерностью операндов.
Да, статья старая + там уже всё в картинках. В новых сигнатуру блюдём.
> Зачем приводить в явном виде формулы для присоединённых полиномов лежандра или, к примеру, для элементов матрицы оператора поворота? Это табличные операции, любой может при желании найти их в википедии, а понимание они вряд ли существенно облегчают.
Если вводить голый код без них, думаю, понимания будет ещё меньше.
> Было бы очень интересно узнать слабые и сильные стороны метода на практике.
Слабые: всё предрасчитано. Предрасчёт должен быть в пайплайне. Отражения только матовые и только с мягким самозатенением.
Сильные: работает быстро, памяти занимает немного (см. http://ati.amd.com/developer/SIGGRAPH08/Chapter01-Chen-Lighting_a… _of_Halo3.pdf), метод опробованный. А с помощью техник поворота и генерации конусов, описанных в этой статье, можно делать самозатенение и локальные источники с мягкими тенями дополнительно к стандартному PRT.
> Не совсем ясно, зачем нужно целых 36 членов разложения. Какие появятся артефакты, если взять, к примеру, десять? Пять?
36 - это максимально возможное в DX SDK. Я специально взял эту цифру для крайних случаев, т.к. больше вряд ли кто будет использовать (слишком громоздко, да и весь фреймворк для работы с SH переписывать ручками придётся. А меньше всегда сделать можно). Кстати, 5 и 10 не рекомендуется использовать, ибо там будут неполные "веса" aka группы поворота. Рекомендуется использовать квадраты (4,9,16,25,36...).
> Все выкладки по численному интегрированию выполняются повершинно. Напрашивающийся вопрос - как будет выглядеть картинка для лоуполи моделей?
Лоу-поли в основном могут применяться для дальних лодов. Так что выглядеть будет нормально. Так же это там можно отключать с дистанцией.
> Какие есть стратегии поведения для анимации? Неужели метод подходит лишь для статической геометрии?
Есть довольно много:
http://www.ppsloan.org/publications/
SerjSSL
> Может я немного туплю, но немог бы автор немного пояснить как осуществляется самозаненение? Просто, грубо говоря, для затенения определенной вершины нужно чтобы в ее атребутах шла информация о ее ближайших соседях которие ее затеняют. А для этого в прикомпиле прейдеться перелапатить вобще все вершины в сцене, а количество операций буден n^2 где n количество вершин (надеюсь я не прав).
Всех соседей хранить не нужно, если самозатенение предрасчитать для каждой точки и приблизить функцией на видимой полусфере. Что собственно в этом методе и делается.
evirus
> все треугольники, оттуда и цифра в 320 мин.. эт же прекомпут, на ночь поставил и пусть считает :)
Ещё раз обмолвлюсь, что эта цифра для 6800, да и алгоритмы предрасчёта сейчас появились довольно быстрые.
>вон из профессии
а кто сказал что я профессиональный программист?)
мне не нравятся уродские сокращения ДФОС, ОДФРС итд, это звучит и выглядит кошмарно, BRDF (БэЭрДэЭф читать проще чем ОДэЭфЭрЭс, первое фонетически упрощается в Бэрдеэф, второе никак) же уже использован в тысяче англоязычных источников и не вызывает ужаса.
>>а также многопроходный разделённый рендеринг от нескольких источников света [17][27][36], не подходят для интерактивного рендеринга. Поэтому интерактивные приложения используют небольшой набор точечных источников света для вычисления освещения и сравнительно простые материалы объектов (модели освещённости).
не догнал почему только точечных, интерактивные приложения могут использовать и набор спотов)
+ супер ужасный повтор про диффузные/отражающие поверхности будто бы говорит что текст либо писался в адской спешке, либо Профессия подразумевает выкрученный наизнанку мозг.
В ОБЩЕМ .... кто нибудь может объяснить мне о чём вообще статья? )))
упоминание только статической геометрии намекает на генерацию лайтмап? или... о чём вообще речь
ДА, я не учусь в супер математическом вузе, о том что собой представляют (например) элементы матрицы 4х4 - узнал у друга, который мне это просто и по-человечески объяснил.
имхо вся математически-программерская лабуда имеет возможность быть объясненной по-человечески, я вообще против того как её преподают, это делает людей хз кем
это делает человеков профессионалами.
Mr F
>вся математически-программерская лабуда имеет возможность быть объясненной по-человечески
А смысл этого объяснения в данном случае? Статья о том, как рисовать красивых кроликов и чайники
"Если ты ходишь по грязной дороге, ты не сможешь не выпачкать ног" (с) Наутилус
Самое главное у таких статей не видно простоты. Не видно главной концепции программиста step-by-step. Как будто тут действует закон: чем сложнее выдвинешь формулу тем она "научнее" и "весомее". Как будто дяди с далёкого Урана снизошли своими последними огромными формулами до "вечно непонимающих". Будто бы они стесняются написать формулы попороще. Боятся расказать о временах, когда они были "чайниками в максе". Короче ждём книжек "Сферические функции для чайников". Или книгу "математическое моделирование step-by-step на примере сферических функций".
Усулгурт
Spherical Harmonic Lighting: The Gritty Details by Robin Green (базовая статья)
Усулгурт
Поддерживаю... :)
Executor
> Поддерживаю...
Не поддерживаю.
Усулгурт
Для того, чтобы получить действительно качественный продукт (все-таки я считаю CryEngine3 качественным) необходимо "асилить" вот такие (да и не только такие) сложные мат. методы.
Sergio666
> Для того, чтобы получить действительно качественный продукт (все-таки я считаю
> CryEngine3 качественным) необходимо "асилить" вот такие (да и не только такие)
> сложные мат. методы.
Чем проще подаётся материал, тем лучше... Если это статья для компании Крайтек, то надо было в начале так и написать...
Я понимаю, что подать просто материал не всегда легко, но в чём ценность материала, который поймут пару человек?
Я думаю если уж человек хорошо в таких вещах разбирается, то ему и статья эта ни к чему, он пойдёт почитает научные математические работы разных дядек бородатых...
И опять же, нет нормально работающего примера - то бишь практики... А теория без практики - ИМХО ерунда...
Посему не понятно позиционирование статьи, для кого она? Для математиков теоретиков?
ExecutorА теория без практики - ИМХО ерунда...
Теория без практики мертва (с)
С этим согласен на все 100%
PS: очень жду статью о глобальном освещении
Sergio666
> PS: очень жду статью о глобальном освещении
Real-Time Global Illumination on GPU содержит главу Spherical Harmonic Representation of Incoming Radiance Field.
Пример без исходников на Pentium IV 1.5 GHz с Radeon-9800, когда источник света перемещается 47.8 fps и 9.3 fps с перемещающейся статуей. Видео.
Ребята, ну вы даете. Шейдерный код же есть в конце. Если вы не можете простое dx приложение составить и загрузить в него модельку, то да, читать эту статью еще рано.
wat
> Шейдерный код же есть в конце.
Мы боимся его использовать - а вдруг он вызывает каких-нибудь духов или того хуже инопланетян с острова? :))))
wat
> Ребята, ну вы даете. Шейдерный код же есть в конце. Если вы не можете простое
> dx приложение составить и загрузить в него модельку, то да, читать эту статью
> еще рано.
По своему опыту, что происходит когда пытаешься реализовать то, что написано в статье где одна теория (в лучшем случае код шейдера как тут):
- Смотришь картинки в папере - красиво
- Пару дней восхищаешься
- Начинаешь реализовывать
- Спустя пару дней работы наконецто реализовываешь
- Видишь, что это г собачье и красиво выглядит только на маленьких картинках при определённых ракурсах, всё это безбожно тормозит и имеет кучу артефактов
- Разачаровываешься, плюёшь и ищешь чтото похожее, но чтобы эта техника была без таких критичных недостатков (к сожалению это не узнаешь пока не реализуешь), затем повторяется с начала
В итоге потрачено несколько дней на реализацию кота в мешке...
Вот например много всего того, что есть в ShaderX выглядит на паперах очень не дурно, но благо там есть примеры, посмотрев которые становится ясно, что подобные техники могут быть интересны разве что как теория, какието идеи, которые возможно лет через пять ктото возьмёт за основу реализовав чтото стоящее... А так по сути тормозные и глючные вещи, не пригодные для геймдева...
Посему, когда я беру инфу по какойто технике, если я не вижу реально работающего примера (ну хотя бы выполнимого, пофиг на исходники даже, хотя они в разы облегчают жизнь и экономят время), то обычно перехожу к следующей технике, ибо вероятность, что это будет УГ велика...
Тема в архиве.