Тесты Bump MappingВведение Emboss bump mapping может быть реализован практически на любом оборудовании. Наиболее общие реализации этого не требуют никаких специальных свойств или DirectX6. Тесты Emboss были разделены на три категории, для каждой использовались разные наборы свойств 3D акселератора (описанных ниже). Трех проходный метод работает практически на любом 3D акселераторе, исключая некоторое старое оборудование у которого отсутствуют некоторые требуемые базовые режимы смешивания (blending) или драйвер некоректно сообщает о них. Двух и одно проходные методы требуют мультитекстурной совместимости (multitexturing capabililties). Проблемы и ограничения Embosss Bump Mapping Когда создаются и отображаются текстуры, используемые в bump mapping, наложение текстур создает добавочные проблемы. Так как emboss bump основан на смещении UV координат, текстуры не могут быть UV-отображены из (0.0, 0.0) к (1.0, 1.0), то должно иметься немного свободного места вдоль границ. Иначе текстуры будут обрезаны и начнут "кровоточить" при мозаичном наложении или растягивании (tiling or wrapping). Фиксирование UV координат не будет работать для мозаичных (tiling) текстур. |
Для Bump Mapping (Emboss, 3 прохода) требуеются поддержка следующих функций Direct3D:
|
Для Bump Mapping (Emboss, 2 прохода) требуеются поддержка следующих функций Direct3D:
|
Bump Mapping (Emboss, 1 проход) требует от оборудования поддержки оператора ADDSIGNED2X.
Этот метод имеет "проблему" с ADDSIGNED2X, которая может вызвать некоторое ограничение цветового диапазона.
В 16 bit режимах этот метод дает худшие визуальные результаты чем другие emboss методы.
С 32 bit текстурами проблемы не так заметны.
Требуется поддержка следующих функций Direct3D:
|
Bump Mapping использование в играх Так как 3DMark is "Игровой тест", то мы исследовали использование bump mapping в деталях. В основном, использование emboss bump mapping c DX6 просто. Но проблемы начинаются, когда вы хотите заставить выглядеть это хорошо. Первое ограничение bump mapping в том, что это работает правильно только с одним источником света. Если вы хотите, чтобы это выглядело хорошо в игре, то вам необходимо определить отдельный источник света для bump карты или использовать ближайший для bump mapping. Для статичных объектов это превосходно (хотя bump на статичных объектах возможно не идеален).
В добавок, только создание DX6 материала для Emboss Bump mapping не достаточно. Проблема отношения vertex нормали к световой нормали, и позиции vertex по отношению к позиции светового источника так же должна приниматься во внимание. В заключение, emboss bump mapping основан на vertex, и соответствено bump mapped объект более чем мозаичен (tessellated) - используется больше полигонов, чем в любом другом случае, а это не дает оптимальной производительности для игрового использования. Когда при создании и отображении текстур используется bump mapping, наложение текстур создает дополнительную проблему. Так как emboss bump основан на смещении UV координат, текстуры не могут быть отображены от 0,0 до 1,1 , поскольку должны иметь немного свободного места вдоль границ. В противном случае текстуры будут обрезанны и начнут "кровоточить". Фиксация UV координат не будет работать для мозаичных (tiling) текстур. |
Создано 04.07.1999 Александром Чернышенко |