РАЗДЕЛЫ


ГЛАВНАЯ

СТАТЬИ

СКАЧАТЬ

О DARK BASIC

ПОЛЕЗНЫЕ ССЫЛКИ

CODE DEMOS


Посетители


Сделать стартовой

Добавить в избранное


ПРИМЕЧАНИЕ!
Сайт рекомендуется просматривать в браузере Opera.














Оновы трехмерной графики.
  2. Проецирование.




Предполагается, что объект, состоящий из треугольных граней с наложенными на них текстурами, есть достаточно реалистичная и относительно простая модель. Также предполагается, что этот самый читатель способен воспринимать тот менторский тон, в котором, видимо, будет выдержана большая часть этого FAQ.

Рекомендуется наличие у читателя неких базовых познаний в стереометрии и линейной алгебре, а также программировании. Например, довольно сильно рекомендуется умение нарисовать одноцветный 2D треугольник.

Соглашения - следующие. Система 3D координат используется такая:

Здесь буквами x, y, z обозначены положительные направления осей Ox, Oy и Oz соответственно. Также предполагается, что камера неподвижна и находится в точке (*) с координатами (0,0,-dist), ось зрения камеры направлена по оси Oz, а именно в точку (0,0,0) (т.е. camera target = (0,0,0)), ось Ox с точки зрения камеры направлена слева направо, ось Oy - снизу вверх, ось Oz - вглубь экрана. Размер экрана - xSize на ySize пикселов.

Проецирование на плоскость экрана в этом случае будет осуществляться по формулам

sx = xSize/2+x*dist/(z+dist),
sy = ySize/2-y*dist/(z+dist).

Здесь и далее используются обозначения:

sx, sy координаты проекции точки на экране

x, y, z 3D координаты точки,

dist расстояние от камеры (она находится в точке (0,0,-dist)) до начала координат,

u, v координаты в текстуре (u - по горизонтали, v - по вертикали).


(Автором данной статьи является Андрей Аксенов. Адрес в FIDO: 2:5036/5.47)

Hosted by uCoz