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

         

ТЕКСТУРИРОВАНИЕ


ТЕКСТУРИРОВАНИЕ
4.1. Точное

Задача текстурирования формулируется таким образом: есть грань - согласно предположениям, треугольная - с наложенной на нее текстурой. То есть каждая точка грани окрашена цветом соответствующей ей точки в текстуре. Текстура накладывается линейным образом. Есть точка экрана с координатами на экране (sx,sy), принадлежащая проекции грани. Требуется найти ее цвет, то есть цвет соответствующей этой точке экрана точки текстуры. А для этого надо найти координаты текстуры для этой точки - точнее, для той точки, проекцией которой на экран является наша (sx,sy).

Пусть вершины грани есть точки A(Ax,Ay,Az), B(Bx,By,Bz) и C(Cx,Cy,Cz), а соответствующие им точки текстуры - (Au,Av), (Bu,Bv) и (Cu,Cv). Найдем координаты текстуры для точки, проекцией которой является (sx,sy).

Для точек (x,y,z), проекцией которых является (sx,sy) имеем:

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

Для упрощения формул будем использовать обозначения

i = sx-XSize/2,
j = YSize/2-sy,
Z = z+dist.

Тогда эти формулы примут вид

i = x*dist/Z,
j = y*dist/Z,

или, что равносильно:

i*Z = x*dist,
j*Z = y*dist.

Рассмотрим точку D, принадлежащую грани.



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