Процедурные текстуры
На самом деле большинство текстур поддается исчислению при помощи очень сложных математических алгоритмов. Трудно поверить, что реальные объекты можно нарисовать, воспользовавшись калькулятором. Теоретически можно, но в действительности подобный расчет потребовал бы достаточно глубоких знаний в области алгебры, тригонометрии, геометрии, понадобилось бы произвести такую уйму вычислений, которые заняли бы не один год. К счастью, рассмотрение этих алгоритмов не входит в рамки данной книги, поскольку такого же результата, но гораздо быстрее, можно достичь с помощью процедурного типа текстур.
Создатели LightWave описали 32 наиболее часто используемых алгоритма, назвав их процедурными текстурами (рис. 12.39).
Рис. 12.39. В LightWave включены 32 наиболее часто используемые процедурные текстуры
Далеко не все текстуры можно описать исключительно при помощи математических формул (хотя некоторые математики с этим и не согласны), однако те, которые допускают подобный расчет, превращаются в сложные, многослойные текстуры, например, облака, волны, различные породы дерева и камня. При этом от художника требуется только определить ряд параметров текстур, а компьютер сделает все остальное.
Чтобы разобраться в том, что все-таки представляют собой процедурные текстуры, нужно освоить элементы управления ими. При изменении параметров, расположенных в окне управления процедурными текстурами, вы изменяете переменные в уравнениях, описывающих текстуры. В качестве примера рассмотрим текстуру Brick (Кирпич). Вы определяете такие параметры, как цвет, расстояние между соседними кирпичами и площадь, которую необходимо ими заполнить. LightWave просчитывает все остальное. Он старательно вырисовывает стройные ряды кирпичей согласно заданным вами параметрам (рис. 12.40).
Рис. 12.40. Используя процедурную текстуру Brick, вы можете быстро создать кирпичную стену
Главное преимущество процедурных текстур заключается в том, что при каждом формировании кадра они рассчитываются заново, поэтому можно сказать, что их разрешение бесконечно.
При приближении камеры к объекту сохраняются все детали наложенной на него процедурной текстуры (рис. 12.41), а текстура, созданная при помощи карты изображений, вблизи выглядит неестественно (рис. 12.42). Нежелательный эффект можно сгладить, воспользовавшись функцией Antialiasing, но различия все равно весьма существенны.
Рис. 12.41. Поверхность, на которую наложена сложная процедурная текстура, даже вблизи выглядит естественно
Рис. 12.42. А при рассмотрении вблизи текстуры, созданной при помощи карты изображений, от ее красоты не остается и следа
В природе нет ни одной поверхности, имеющей сплошной цвет. Например, поверхность глазного яблока не белая. Чтобы сделать создаваемый глаз более реалистичным, добавим на его поверхность процедурную текстуру.