В компьютерной графике процедурная текстура [1] — это текстура, созданная с использованием математического описания (т. е. алгоритма ), а не напрямую сохраненных данных. Преимуществом этого подхода является низкая стоимость хранения, неограниченное разрешение текстуры и простота отображения текстуры . [2] Эти виды текстур часто используются для моделирования поверхности или объемных представлений природных элементов, таких как дерево , мрамор , гранит , металл , камень и другие.
Обычно естественный вид визуализированного результата достигается за счет использования фрактального шума и функций турбулентности [ необходимо определение ] . Эти функции используются как численное представление « случайности », встречающейся в природе.
Твердое текстурирование — это процесс, в котором функция генерации текстуры оценивается в каждой видимой точке поверхности модели, поэтому результирующие свойства материала (например, цвет, блеск или нормаль) зависят только от их трехмерного положения, а не от их параметризованного двухмерного положения поверхности, как в традиционном двухмерном текстурном отображении. Следовательно, твердые текстуры не подвержены искажениям пространства параметров поверхности, например, которые вы можете видеть вблизи полюсов сферы. Кроме того, непрерывность между параметризацией поверхности соседних участков также не является проблемой. Твердые текстуры будут оставаться согласованными и иметь характеристики постоянного размера независимо от искажений в системах координат поверхности. [3] Первоначально эти функции были основаны на простой комбинации процедурных шумовых функций, таких как симплексный шум или шум Перлина . В настоящее время доступен обширный арсенал методов, начиная от структурированной регулярной текстуры (например, кирпичной стены) и заканчивая структурированными нерегулярными текстурами (например, каменной стеной) и чисто стохастическими текстурами. [4]
Ячеистое текстурирование отличается от большинства других процедурных методов генерации текстур, поскольку оно не зависит от шумовых функций в качестве своей основы, хотя часто используется для дополнения метода. Ячеистые текстуры основаны на характерных точках, которые разбросаны по трехмерному пространству. Затем эти точки используются для разделения пространства на небольшие, случайно выложенные плиткой области, называемые ячейками. Эти ячейки часто выглядят как «чешуя ящерицы», «галька» или «плиты». Несмотря на то, что эти области дискретны, сама ячеистая базисная функция непрерывна и может быть оценена в любой точке пространства. [5] Шум Уорли является распространенным типом ячеистой текстуры.
Генерация генетической текстуры — это экспериментальный подход к генерации текстур. Это автоматизированный процесс, которым руководит человек-модератор. Поток управления обычно состоит из генерации компьютером набора кандидатов текстур. Из них пользователь выбирает один. Затем компьютер генерирует другой набор текстур путем мутации и скрещивания элементов выбранных пользователем текстур. [6] Для получения дополнительной информации о том, как именно достигается этот метод мутации и генерации скрещивания, см. Генетический алгоритм . Процесс продолжается до тех пор, пока не будет сгенерирована подходящая для пользователя текстура. Поскольку результат трудно контролировать, этот метод обычно используется только для экспериментальных или абстрактных текстур.
Начиная с простого белого шума , процессы самоорганизации могут привести к структурированным образцам, сохраняя некоторую случайность. Реакционно-диффузионные системы являются одним из способов создания таких текстур. Реалистичные текстуры могут быть созданы путем моделирования сложных химических реакций в жидкостях. Эти системы могут демонстрировать поведение, похожее на реальные процессы ( морфогенез ), встречающиеся в природе, такие как отметины животных (ракушки, рыбы, дикие кошки...).
Помимо специализированных программ, другие, такие как Blender , CorelDRAW , [7] содержат процедурные подсистемы текстур, которые можно использовать для генерации текстур.