Search
Write a publication
Pull to refresh

Comments 19

С Doom3, насколько я помню, была такая история. Кармак написал движок: графику, физику, звук. Звуковой софтварный движок, кстати, очень неплохой получился. Но Креатив с патентом на тени (они когда-то и видюхи выпускали, с тех времён осталось) пригрозила судом. В рамках досудебного урегулирования добавили в игру поддержку X-Fi с EAX. Причём внедрением по сути занималась сама Креатив: Кармак их недолюбливал. Заодно перелопатили весь OpenAL.

в квейковских движках можно было включить стецил тест и получить полупрозрачную тень без багов.

Тема интересная, но статья выглядит как поток сознания (путано и не последовательно). Полностью забыто что есть мягкие тени. Light map - это метод кэширования освещения (включая вторичку), а не генерации теней. Самопересекающися тени это либо результат оптимизации по скорости, либо непонимание как сделать правильно (хотя зависит от постановки задачи). Все методы имеют разнве артефакты при наивной реализации, методы борьбы с ними - действительно интересная, но узкая тема.

А если там скелетно анимированные монстры побегут на десяток тысяч полигонов, для их теней производительности CPU хватит всё пересчитать на лету?

Так как эти тени статические в смысле их расположения (и динамические по изменению цветов и яркости источников света) и рассчитываются на этапе подготовки карты, то эти монстры никак не участвуют в отбрасывании собственной тени на поверхности.

Для узкоспециализированых задач - отличный алгоритм.

Едрить, я кажется видел ваш движок когда писал генератор лайтмапов.... Как давно это было..

В Half-Life 2 (2004 год, PC) shadow map использовались для персонажей.
Это не так, в хл2 были проекционные тени.
upd. в оригинале статьи это уже исправили
upd2. в оригинале заменили хл2 на фар край, в котором точно такие же проекционные тени, как и в хл2. что ж такое

The Elder Scrolls IV: Oblivion (2006 год, Xbox 360) имела красивые спроецированные тени деревьев.
Это не так, на геометрию под деревьями накладывалась заранее нарисованная тайлящаяся текстура. Деревья не рендерились в проекционную текстуру, со спидтришными спрайтовыми листьями это вообще было бы проблематично.

Перевод конечно жесть: "объемы теней". От такого обзора толку никакого. Тем кто знает, и так понятно. Тем кто не знает, понятнее не стало имхо. А где всякие там post projective тени типа lspm в сталкере?

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

Щас это все не надо же.. Берут готовый движок и он сам рисует тени..

В нынешней итерации FPS Creator-а, на которой мы делаем игру, используется комбинированный подход. Тени там есть в двух вариантах - олдовые (и довольно кривые) "теневые пятна" под персонажами, и недавно завезённые проекционные тени. Причём проекционные сделаны как раз методом "сплющивания" оригинальной модели в шейдере - основной движок об этой тени, по факту, и не знает. На наклонных поверхностях и обрывах выглядит кривовато, но зато в целом довольно симпатично и быстро. Некогда авторы делали "честные" стенсильные тени, да так и не доделали. Движок старенький, слабенький, и без того тяжело ему живётся.

А вот освещаются модели статическим светом с использованием данных лайтмапа из той точки, где персонаж стоит. Плюс вклад динамической компоненты от ближайших источников.

Но ведь тени все же становятся темнее. Если речь не о стенсильных тенях от точечного источника освещения. Даже на кадре из фильма они стоят в тени и четко видят свои тени. Та же ситуация, как и в кадре из MGS, где якобы тени ведут себя не правильно.

Зависит от освещения. Если это условия космоса. Когда всё вокруг чёрное и есть точечный источник света, тогда тени сами будут угольно чёрными и не будут влиять друг на друга. В реальном мире мы все погружены в фоновую подсветку от неба и переотражений.

Можно создать такое освещение (от множества источников света или при выраженном угловом размере источника света) при котором накладывающиеся тени будут сгущать друг друга. Скорее, для нашего глаза более привычная картина когда сочетается длинная тень от солнца и малая и густая контактная тень.

Пример

Эх, что-то вспомнилось... Давным-давно (DOS ещё) для курсача надо было написать простенькую игрушку. И, что-то, Остапа понесло :)

Не понял, как сейчас картинку по ссылке вставить. Поиграть, если интересно, можно тут

Игра написана на самопальном, максимально примитивном движке (таки курсач). По геометрии - просто кубики над плоскостью. Плоскость при этом даже не плоскость, просто в нижней половине прикидываю, на какой дистанции находится точка и для неё выбираю соотв цвет. А тень - проекция сверху на эту же неплоскость (никаких доп преобразований).

Sign up to leave a comment.

Articles