[WT] [Архив] [Поиск] Главная Управление
[Совместно с Ычаном]

[Назад]
Ответ в нить
Имя
Animapcha image [@] [?]
Тема   ( ответ в 5804)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаемые типы файлов: 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP
  • Максимально допустимый размер файлов: 10000 кБ.
  • Изображения, размер которых превышает 200 на 200 пикселей, будут уменьшены.
  • Ныне 1209 unique user posts. Посмотреть каталог
  • Радио:

Файл: 132248963766.jpg-(25.88KB, 282x292, 1312722986826.jpg)
5804 No. 5804 watch    
Анон, помоги разобраться.
Есть класс http://www.koders.com/cpp/fid2EDE3A1CFBD3C22562ACE235622698D0BF1B26B9.aspx?s=game

В нем два метода, один используется для создания modelview матрицы камеры, второй для объектов сцены, GetCameraOrientation и GetMatrix, соответственно.
Не могу понять почему для камеры используется транспонированная матрица.
Развернуть все изображения
>> No. 5806    
>>5804
ошибочка вышла
inline void GetCameraOrientation(M3DMatrix44f m)
{
M3DVector3f x, z;

// Make rotation matrix
// Z vector is reversed
z[0] = -vForward[0];
z[1] = -vForward[1];
z[2] = -vForward[2];

// X vector = Y cross Z
m3dCrossProduct(x, vUp, z);

// Matrix has no translation information and is
// transposed.... (rows instead of columns)
#define M(row,col) m[col*4+row]
M(0, 0) = x[0];
M(0, 1) = x[1];
M(0, 2) = x[2];
M(0, 3) = 0.0;
M(1, 0) = vUp[0];
M(1, 1) = vUp[1];
M(1, 2) = vUp[2];
M(1, 3) = 0.0;
M(2, 0) = z[0];
M(2, 1) = z[1];
M(2, 2) = z[2];
M(2, 3) = 0.0;
M(3, 0) = 0.0;
M(3, 1) = 0.0;
M(3, 2) = 0.0;
M(3, 3) = 1.0;
#undef M
}

>> No. 5807    
Файл: 132249764346.jpg-(233.16KB, 546x800, 1298985724428.jpg)
5807
>>5804

Видовое преобразование обратно модельному: передвинуть камеру на 5 вперёд - значит передвинуть мир на 5 назад. А для матрицы поворота обращение эквивалентно транспонированию.
>> No. 5808    
Файл: 132250206251.jpg-(24.59KB, 531x600, 1288463322054.jpg)
5808
>>5807

спасибо, анон. разобрался
[Назад]


Удалить сообщение []
Пароль  
[Mod]