2Morte
Читал в каком-то неигровом журнале обзор Хроник Риддика. Там писали о том, что в Риддике была использована принципиально иная схема построения эфекта бамп-мэппинга. В итоге он оказался менее ресурсоемким и визуально более привлекательным. Так что тут дело не в отладке движка, а вообще в самом движке изначально. Процитирую ag.ru
|
QUOTE |
|
Попутно шведы посрамили id Software, ухитрившись за два с половиной года втиснуть в Xbox знатный бамп-мэппинг, столь любимые Кармаком "настоящие" тени, шейдерные спецэффекты, четкие текстуры и красивые (пусть и попахивающие пластиком) модели, а затем перенести их на РС и удержать планку скорости на отметке "50 fps" там, где Doom 3 скребет брюхом землю. TCoR технологична, но не кичится своими достижениями и использует их строго по назначению.
|
Вот за это в Риддика и тычат пальцем. Хотя про тени странновато здесь сказано, учитывая то, что говорит hamster.
2hamster
|
QUOTE |
|
Да? Бамп-маппинг - слой текстуры, шейдер - программа, отвечающая за освещение. Тот же ХЛ2 со всоими хвалеными шейдерами никакой альтернативы бампу не предложил.
|
Кажется, вы не понимаете, что такое шейдер?
В каждой карточке есть пиксельные юниты, они же пиксельные процессоры, они же пиксельные конвейеры. У меня в Radeon 9550 их всего 4-ре. За такт каждый конвейер решает каким цветом будет один пиксель изображения. Например в разрешении 800 х 600 пикселей изображения будет 480000. Карта условно разбивает их на группы по четыре штуки. Первый конвеер занимается каждым первым пикселем за такт, второй - каждым вторым и так далее... Это решение - самый последний этап процесса получения картинки изображения (пост-рендеринг).
Шейдер - это функция, которая на этапе пост-редндеринга, когда 3D картинка уже спроецирована в 2D плоскость и готова к показу на мониторе, начинает причудливым образом изменять изображение.
Самый примитивный пример: если правый пиксель зеленого цвета, то я (центральный пиксель) буду немного зеленее, а так я сам синего цвета, то левый пиксель от меня будет синее... и так далее, в итоге мы получаем смазывание цвета или эффект блюра (blur), который наглядно продемонстрирован в NFS Underground. Конечно же, там алгоритм вычисления гораздо сложнее.
Что это дает? Это позволяет применять к трехмерному изображению такие эффекты, будто бы изображение двухмерное или покадровое, как в мультипликации. Обалденный простор для творчества. А вовсе не одно лишь ОСВЕЩЕНИЕ.
Например, в настройках Каталиста можно принудительно навесить шейдер на 3D изображение, и не только в Direct-приложении, но и в OpenGL. Один из интереснейших эффектов (правда только для GL) - scatch (набросок) Выглядит совсем как одноименный эффект в Фотошопе, только применяется к 3D. Специально просмотра залазил в первый оупенгээльный Half-life ради этого. Смотрится прикольно.
Где это встречается в играх?
- реалистичная вода (Half-life 2, Splinter Cell, Silent Hunter 3);
- оптическое преломление света через стекло (стеклянные двери в Half-life 2 и Splinter Cell 2), а также более реалистичный эффект капель на стекле в NFS Most Wanted в сравнении с предыдущими частями NFS, например 3-ей, 4-ой;
- эффект тепловидения, ночного видения, видения электромагнитных полей и датчик движения (мультиплеер Splinter Cell 2 Pandora Tomorrow);
- размытие изображения, эффект смазывания (нитро в NFS Most Wanted и смазывание экрана при поворотах камеры в меню);
- overbright - функция чрезмерной контрастности изображения, опять же в NFS-ке;
- более реалистичная симуляция различных поверхностей (дерево и мрамор в 3D Mark 2003 статуи животных)...
И это все, я думаю, гораздо прогрессивнее сказывается на конечном результате - красоте картинки, ее реалистичности, чем эффект бамп-мэппинга или реалистичные тени. Хотя никто не спорит, что и то, и то - еще лучше.
Это сообщение отредактировано Ken - 18 февраля 2006 | 17:42