Сначала вы настраиваете матрицы проекции и вида модели для 3D-проекции:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(fov, ratio, near_clip, far_clip);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(eyex, eyey, eyez, lookatx, lookaty, lookatz, upx, upy, upz);
gluLookAt занимает 3 вектора, положение «глаза» камеры, взгляд на точку и «вектор вверх». Если вы вызываете gluLookAt (0.0, 0.0, -10.0, 0,0,0, 0,1,0), это означает, что камера сидит в 0,0, -10 и смотрит вдоль оси z в начало координат 0,0,0. и «вверх» вдоль положительной оси у. Если вы затем сделаете простой вызов отрисовки для opengl для одного квада, он должен появиться в вашем рендеринге:
glColor3f(1.0f,1.0f,1.0f); //set white color (or any contrast to your background)
glBegin(GL_QUADS);
glVertex3f(-1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f,-1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f);
glEnd();
Вы рисуете по часовой стрелке или против часовой стрелки, но не в их комбинации. Вы можете управлять отбраковкой с помощью glEnable / Disable (GL_CULL_FACE) и glCullFace.
Размер окна 800x600. Я хочу, чтобы окно было целым окном, поэтому
Когда вы работаете с 2D-проекциями (орфографическими), вы можете легко установить размер вашей системы координат в соответствии с размером вашего окна / окна просмотра. Это не применимо в 3D-проекции, поскольку границы теперь представляют собой 3D-зону просмотра или объем 3D от ближнего клипа до дальних плоскостей клипа. Затем координаты проецируются на 2D-поверхность с помощью матрицы проекции модель-вид. Вы можете легко ввести координаты, например, для квадрата шириной 800 и высотой 600, но чтобы увидеть его, вам нужно отвести камеру далеко, чтобы захватить весь видимый квад.
Цитата из комментариев:
gluPerspective (45.0f, (double) w / (double) h, 1.0f, 100.0f) должно установить перспективу с ближним = 1 и дальним = 100. Но поскольку openGL правша, положительный z равен вне экрана так близко должно быть 100 и далеко 1. Почему я вижу в каждом уроке почти меньше, чем далеко? Это не имеет смысла ..
Ответ (см. Ссылку выше 3D просмотр видео):
Угроза просмотра - это объем 3D в сцене, расположенной относительно камеры области просмотра. Форма объема влияет на то, как модели проецируются из пространства камеры на экран