Процедурные текстуры

Хотя карты текстур делают материал более реалистичным, они обладают тремя главными недостатками. Во-первых, занимают много оперативной памяти, поэтому сцены с большим количеством карт или с большими картами значительно замедляют процесс визуализации, если только система не оснащена большим объемом оперативной памяти. Во-вторых, при создании больших объектов, а также объектов переднего плана может понадобиться карта текстуры высокого разрешения — так вы достигнете того, чтобы поверхность модели не выглядела размазанной или деформированной после визуализации. И наконец, для подобных карт приходится определять координаты наложения (mapping coordinates), что довольно сложно сделать после формирования объекта. Координаты наложения рассмотрены в разделе "Координаты наложения" далее в этой главе.

Один из способов, с помощью которого можно избежать ограничений, связанных с картами текстур, и при этом сохранить некоторую долю их реализма, — это применение процедурных текстур (procedural textures). Как уже упоминалось ранее, процедурные текстуры представляют собой математически определяемые текстуры, которые могут симулировать узоры, подобные волокнам древесины или мрамору (рис. 6.15). Кроме того, их можно успешно применять для создания случайных или фрактальных узоров, а также при моделировании реалистичной дымки из снега, пыли или газа.

Процедурные текстуры

Процедурные текстуры

Рис. 6.15. Процедурные текстуры не требуют применения координат наложения и занимают намного меньше оперативной памяти, чем текстуры на основе растровых изображений. Тем не менее, для получения реалистичного изображения зачастую требуются очень сложные процедурные текстуры. Для придания текстурам любого типа большей реалистичности пригодится процедурный шум, ттшкже применяемый в качестве карты рельефности

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

Ш^Ш(еАщ Процедурная текстура дыма широко использовалась в игре The Daedalus ш Encounter при создании анимированной карты рельефности на двигатель ной установке космического корабля инопланетян. Благодаря наложению анимированной текстуры на полупрозрачные каркасные сетки впускного и выхлопного механизмов создавалось впечатление, что корабль оживал под влиянием какого-то загадочного источника энергии.

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

Карты смещения || Оглавление || Анимированные текстуры