Поместите файл obj поверх видео с веб-камеры в Pygame - PullRequest
0 голосов
/ 01 марта 2019

Я использую pygame для создания проекта AR, и теперь я хочу загрузить объектный файл obj через камеру веб-камеры.Я использую этот код, но объект исчезает в веб-камере.Можно ли добавить 3d-объект на рамки веб-камеры?

filename = "WhiteFrameobj.obj"
pygame.init()
pygame.camera.init()

screen = pygame.display.set_mode((640,480))
cam = pygame.camera.Camera("/dev/video0", (640, 480))
cam.start()

viewport = (640, 480)
hx = viewport[0]/2
hy = viewport[1]/2
glEnable(GL_DEPTH_TEST)
glClearColor(0.3,1.0,1.0,0.0)

glEnable(GL_COLOR_MATERIAL)
glLightfv(GL_LIGHT0, GL_POSITION,  (0, 1, 1, 0))
glLightfv(GL_LIGHT0, GL_AMBIENT, (0.2, 0.2, 0.2, 1.0))
glLightfv(GL_LIGHT0, GL_DIFFUSE, (0.5, 0.5, 0.5, 1.0))
glEnable(GL_LIGHT0)
glEnable(GL_LIGHTING)

glShadeModel(GL_SMOOTH)
obj = OBJ(filename, swapyz=True)

glMatrixMode(GL_PROJECTION)
glLoadIdentity()
width, height = viewport
gluPerspective(140.0, width/float(height), 5, 1000.0)
glEnable(GL_DEPTH_TEST)
glMatrixMode(GL_MODELVIEW)

rx, ry = (0,0)
tx, ty = (0,-100)
zpos = 405
rotate = move = False

while 1:
    image = cam.get_image()
    screen.blit(image, (0,0))
    pygame.display.update()

    for e in pygame.event.get():
         if e.type == pygame.QUIT:
         sys.exit()

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glLoadIdentity()

# RENDER OBJECT
glTranslate(tx/20., ty/20., - zpos)
glRotate(ry, 1, 0, 0)
glRotate(rx, 0, 1, 0)

glCallList(obj.gl_list)
...