Задание объектов и сцен
Покажем здесь достаточно распространенную схему задания 3D объектов и сцен. Подобная схема, кстати, используется, в 3D Studio.
Каждая сцена представляет собой следующее:
Каждый объект задается следующим:
Набор вершин | Вершина определяется своими 3D координатами и соответствующими ей координатами в текстуре. | Набор граней | Грань определяется тремя вершинами и текстурой (вообще говоря, не текстурой, а материалом: кроме текстуры могут быть заданы, например, коэффициенты рассеивания и отражения света). | Поведение объекта | То есть, расположение (то есть смещение, ось поворота, угол поворота, коэффициент масштабирования, и т.д.) в зависимости от номера кадра; обычно задается в нескольких ключевых точках и интерполируется между ними с помощью сплайнов. |
Каждый источник света задается следующим:
положение
ориентация (точка, в которую направлен этот источник, target)
тип (фоновый/направленный/ненаправленный)
цвет (обычно RGB)
Каждая текстура представляет собой прямоугольную 2D картинку, часто бывает фиксированных размеров (например, 64x64, 128x128, 256x256).
Каждая камера задается следующим:
положение (location)
направление (точнее, точкой, в которую направлена эта камера; target) - угол зрения (FOV)
угол поворота относительно своей оси (roll)
Проецирование
Мы будем использовать только обычное перспективное проецирование на плоскость зрения "стандартной" камеры, определенной в этом пункте (там же написаны и формулы проецирования). Случай произвольной камеры будет приводиться к случаю стандартной камеры.
1 2 3 4
8 8 8
| |