Функция совместимости для GlulookatC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Функция совместимости для Glulookat

Сообщение Anonymous »

Я только что получил новый компьютер, и теперь мне придется запустить мою демонстрационную программу с SDL2/OpenGL. Я использовал программу, чтобы попробовать различные методы и использовал Glulookat (который, очевидно, не должен использоваться больше или даже никогда не должен был использоваться). < /P>

Теперь я M Ищу способ заменить метод Glulookat, построив матрицу преобразования, выполняя то же самое, что и Glulookat. Я наткнулся на это утверждение, которое является полезной заменой Glulookat (ответ - не вопрос). < /P>

Моя реализация его выглядит так (я предполагаю, что J ^ k < / Код> означает кросс -продукт j и k - исправить меня, если я ошибаюсь): < /p>

//Compat method: gluLookAt deprecated
void util_compat_gluLookAt(GLfloat eyeX, GLfloat eyeY, GLfloat eyeZ, GLfloat lookAtX, GLfloat lookAtY, GLfloat lookAtZ, GLfloat upX, GLfloat upY, GLfloat upZ) {
Vector3f up (upX, upY, upZ);
Vector3f lookAt (-lookAtX, -lookAtY, -lookAtZ);
Vector3f eye (eyeX, eyeY, eyeZ);
Vector3f i = up ^ lookAt;
Matrix4x4 mat (new GLfloat[16]
{i.getX(), upX, lookAt.getX(), 0,
i.getY(), upY, lookAt.getY(), 0,
i.getZ(), upZ, lookAt.getZ(), 0,
0, 0, 0, 1});
Vector3f translate = mat * (Vector3f()-eye); // Not yet correctly implemented: Negative of vector eye ([0,0,0]-[eyeX,eyeY,eyeZ])
mat.setItem(3,0,translate.getX());
mat.setItem(3,1,translate.getX());
mat.setItem(3,2,translate.getX());
glMultMatrixf(mat.transpose().getComponents());
}
< /code>

Кто сделал неправильные вещи - мой источник информации или я? И как я могу это исправить?
Примечание: я не буду использовать это в своем реальном проекте, но мне все еще нужно для моей демонстрационной программы, которая также будет рассмотрена для оценки. < /P>

Подробнее здесь: https://stackoverflow.com/questions/244 ... -glulookat
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»