Самоучитель по 3dsmax 7

         

В любом случае, если (a,b,c) - координаты точки в системе координат камеры (точнее, в системе...


В любом случае, если (a,b,c) - координаты точки в системе координат камеры (точнее, в системе координат с центром в точке s и базисом (p,q,r)), то координаты проекции точки на экране равны

screenX = xSize/2 + xSize/2 * a/c
screenY = ySize/2 - ySize/2 * b/c

В случае стандартной камеры переход от обычной системы координат к системе координат камеры очевиден:

a = x / (xSize/2)
b = y / (ySize/2)
c = (z + dist) / dist

Подставив это в формулы для screenX, screenY, получим как раз те самые формулы для проекции на стандартную камеру.

Поскольку со стандартной камерой нам достаточно удобно и понятно работать, для произвольной камеры мы должны сделаеть такое преобразование пространства, что как бы совместит произвольную камеру и стандартную камеру. То есть, такое преобразование, что вектора p, q, r перейдут в Sp, Sq, Sr, а точка s в точку Ss.

Посчитаем матрицу для *обратного* преобразования; оно должно переводить Sp, Sq, Sr, Ss в p, q, r, s. Преобразование, переводящее Ss в s (и наоборот) - это обычный паралелльный перенос; остается написать преобразование перевода Sp, Sq, Sr в p, q, r. Пусть у нас есть координаты p, q, r в системе координат (x,y,z):

p = (px,py,pz)
q = (qx,qy,qz)
r = (rx,ry,rz)

Для Sp, Sq, Sr координаты (в этой же системе) известны и равны следующему:


Sp = (0,0,dist)
Sq = (xSize/2,0,0)
Sr = (0,ySize/2,0)

Пусть T - искомая матрица перевода, [ a b c ] T = [ d e f ], a..i - какие-то неизвестные. [ g h i ]

Поскольку T переводит Sp, Sq, Sr в p, q, r; то есть

p = T*Sp
q = T*Sq
r = T*Sr

то, подставляя, например, p и Sp, получаем: [ px ] [ a b c ] [ 0 ] [ c*dist ] [ py ] = [ d e f ] [ 0 ] = [ f*dist ], откуда [ pz ] [ g h i ] [ dist ] [ i*dist ]

c = px/dist,
f = py/dist,
i = pz/dist.

Аналогично находим все остальные элементы матрицы T: [ qx*2/xSize rx*2/ySize px/dist ] T = [ qy*2/xSize ry*2/ySize py/dist ] [ qz*2/xSize rz*2/ySize pz/dist ]

Но нас интересует обратное к этому преобразование.



Содержание раздела