Руководство по созданию объектов для The Sims 2
Устройство трехмерного объекта
Презрев системный подход, в этот раз мы начнем с конца. То есть сначала рассмотрим то, что мы хотим получить в итоге, а потом пойдем назад и выясним, как добиться желаемого результата.
Итак, из чего состоит готовый трехмерный объект? В первую очередь, это каркасная модель (mesh), по сути — объемный многогранник. Тут самое время освежить в памяти школьный курс стереометрии, вспомнив такие понятия, как вершина (vertex), ребро (edge) и грань (face). Именно с помощью этих примитивов сейчас строятся трехмерные модели в компьютерной графике, если не принимать в расчет экзотику вроде поверхностей Безье.
Каркасная модель состоит из определенного числа граней. Грань образуется тремя вершинами (да-да, та самая школьная стереометрия — три точки, задающие плоскость), то есть представляет собой треугольник. Логично, что много мелких граней позволяют построить более гладкий объект, чем несколько крупных. Кроме того, в природе существуют специальные алгоритмы, сглаживающие острые углы, не увеличивая число граней, но работают они на стадии просчета изображения, и на самом процессе моделирования не отражаются.
Далее, объекту назначается материал. Это не то же самое, что текстура, хотя понятия в чем-то близки. Представьте себе, что мы взяли нашу каркасную модель и принялись раскрашивать ее. Но у «краски» есть не только цвет, но и степень прозрачности, коэффициент отражения света, шероховатость — иначе говоря, еще какое-то число параметров, влияющих на итоговый внешний вид объекта. При этом для раскрашивания мы не пользуемся кистью, а натягиваем на каркасную модель уже готовую «шкурку», обладающую всеми этими разнообразные свойствами. Представили? Тогда продолжим. Помимо свойств, присущих отдельным точкам поверхности, есть и глобальные, влияющие на весь объект целиком. В частности — поведение света внутри него, блики, способ сглаживания поверхности и т.п. Есть? Тогда самое время подвести итог. Проделав все вышеозначенные манипуляции, мы сделали ничто иное, как назначили объекту материал, превративший его из геометрической абстракции во что-то более близкое человеческому глазу.
А что же такое текстура? Сейчас и с ней разберемся. Как я уже упоминал, свойства материала в каждой точке могут быть совершенно разными. К примеру, цвет. Берем какую-нибудь картинку (самую обычную плоскую картинку — bmp, jpg) и указываем, что именно она-то и «раскрасит» наш материал. Иначе говоря, станет текстурой цвета. Аналогично поступают и с другими поверхностными характеристиками материала, но там уже вступают в силу некоторые условности. Допустим, чтобы назначить текстуру для степени зеркальности, мы берем некую растровую картинку, считая более яркий цвет более отражающим, и наоборот. А синий это цвет, или оливковый — уже не важно. Итак, текстура — это двумерное изображение, накладываемое на объект и задающее какое-либо его поверхностное свойство. А материал состоит из набора текстур, а также серии параметров, одинаковых для всего объекта целиком. В этом и состоит разница между ними.
Это важно: путаница с материалами и текстурами возникла неспроста. Цветовая текстура — самая важная, и уж точно наиболее заметная составляющая материала. Во многих играх разработчики только ею и ограничиваются.
Чего же не хватает, чтобы закончить трехмерный объект, для которого уже задана каркасная модель и назначен материал? Естественно, пока ни слова не было сказано о способе, которым мы наложили текстуры. Ведь текстура может огибать объект с разных сторон, или растягиваться, как бы проецируясь на него с плоского экрана. Иначе говоря, осталось указать, по какому принципу точки текстур «улягутся» на грани каркасной модели. Этот процесс называется заданием текстурных координат (Mapping).
Часто используется такой прием: модель разворачивается на плоскость, совмещается с картинкой текстуры, а потом снова сворачивается. Если вы хоть раз в жизни делали выкройки одежды, или клеили из картона объемные фигурки, то с легкостью представите, как выглядит развернутый на плоскость объект.

