OpenGL выглядит как хорошая библиотека с хорошим сообществом. После нескольких уроков и чтения некоторых объяснений у меня возникло ощущение, что я получил основы.openGL: Поверните всю сцену или «поверните» камеру
Тем не менее, я борюсь с камерой. Я получаю, что с OpenGL камера статична, и для создания иллюзии, что камера движется, вам нужно переместить всю сцену. Я попытался превратить всю сцену. Объекты поворачиваются, но передний объект остается спереди. Я читал еще немного, но мне кажется, что я делаю то, что они говорят мне.
Вот пример работы двух квадратов, которые мне нравятся «с орбитой» с камерой.
import pygame
from pygame.locals import *
from OpenGL.GL import *
from OpenGL.GLU import *
def draw():
glBegin(GL_QUADS)
glColor3fv((1,0,0))
glVertex3fv((1,-1,-1))
glVertex3fv((1,1,-1))
glVertex3fv((-1,1,-1))
glVertex3fv((-1,-1,-1))
glColor3fv((0,1,0))
glVertex3fv((1,-1,-2))
glVertex3fv((1,1,-2))
glVertex3fv((-1,1,-2))
glVertex3fv((-1,-1,-2))
glEnd()
pygame.init()
display = (800,600)
pygame.display.set_mode(display, DOUBLEBUF|OPENGL)
gluPerspective(45, (display[0]/display[1]), 0.1, 50.0)
glTranslatef(0.0,0.0, -25.0)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glRotatef(1, 0.0, 1.0, 0.0)
draw()
pygame.display.flip()
pygame.time.wait(10)
Теперь оба квадрата поворачиваются, но зеленые квадраты остаются перед красным квадратом. Я хотел бы видеть, что вся сцена превращается, так что зеленый квадрат движется за красным квадратом. Может ли кто-нибудь указать мне в правильном направлении?
Что вы подразумеваете под «старым контуром с фиксированной функцией»? – Stoeptegel
Старый конвейер функций - это старый способ визуализации объектов с помощью OpenGL (с 'glVertex3f',' glNormal3f', 'glBegin' и т. Д. ...). – Nasso
Чтобы добавить к этому, если вы хотите узнать о том, как использовать OpenGL, вы можете найти документацию онлайн из смеси конвейера FF и программируемого конвейера. Чтобы узнать, как выглядит OpenGL с помощью 3.1+, попробуйте выполнить [эти учебники и этот сайт] (http://learnopengl.com/) – WearyWanderer