Трансформации в OpenGL. (комментарии)
Это сообщение сгенерировано автоматически.
В MSDN как и в статье ошибка.
в матрице ортографической проекции пятнадцатый элемент равен 1, а не -1.
В msdn, если не ошибаюсь, речь должна идти о матрицах в DirectX, а здесь OpenGL(правосторонняя). Хотя у меня тоже один из элементов с другим знаком, но не пятнадцатый(кстати 1 - не 15ый а 11 элемент, по столбцам ведь нумерация).
Вобщем у меня корректное отоброжение так получается
void GLView::CreateProjection(int width, int height) { float n=0.1f; float f=1000.0f; float l=-n; // горизонтальный угол обзора будет всегда 90град. float r=-l; float t=r*float( height)/float( width); float b=-t; for ( int i=0; i<16; i++) ProgectionMatrix[i]=0; ProgectionMatrix[0] = 2*n/( r-l); ProgectionMatrix[5] = 2*n/( t-b); ProgectionMatrix[8] = -( r+l)/( r-l); ProgectionMatrix[9] = ( t+b)/( t-b); ProgectionMatrix[10] = -( f+n)/( f-n); ProgectionMatrix[11] = -1; ProgectionMatrix[14] = -2*f*n/( f-n); }
То-есть элемент А=-(r+l)/(r-l), а в статье с плюсом.
А например в книжке каких то Девиса и Нейдера вообще расчёт идёт исходя из того, что они заявляют - "near и far всегда должны быть отрицательными"
UVW
Там же glOrtho описывается, тамошний вариант работает, тутошний нет.
http://www.gamedev.ru/code/forum/?id=38367
http://www.gamedev.ru/code/forum/?id=16748&page=2#m20
Не понятен смысл этой статьи, просто копипаст. А где матрицы масштабирования, поворота, смещения. Почему не расписана сама матрица?
http://www.songho.ca/opengl/gl_projectionmatrix.html
http://www.songho.ca/opengl/gl_transform.html
все отлично переводиться в google
Тема в архиве.