Python PyOpenGl OBJ 模型显示翻转法线

问题描述 投票:0回答:1

我使用Python、Pygame、PyOpenGl和objloader模块(https://github.com/yarolig/OBJFileLoader)制作了这个小程序,它只显示了一个OBJ模型:

import pygame
from pygame.locals import *
from OpenGL.GL import *
from OpenGL.GLU import *
from objloader import *


from camera import handle_camera_movement

if __name__ == "__main__":
    pygame.init()
    display = (1000,600)
    pygame.display.set_mode(display, DOUBLEBUF|OPENGL)
    glMatrixMode(GL_PROJECTION) # <---- specify projection matrix
    gluPerspective(90, (display[0]/display[1]), 0.1, 100)

    glMatrixMode(GL_MODELVIEW)  # <---- specify model view matrix
    glTranslatef(0.0, 0.0, -5)

    gluPerspective(90, (display[0]/display[1]), 1, 100)

    glTranslatef(0.0,0.0, -10)

    # import file
    model1 = OBJ('chao.obj')

    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)
        
        # draw model

        handle_camera_movement()

        glPushMatrix()
        model1.render()
        glPopMatrix()
        
        pygame.display.flip()
        pygame.time.wait(10)

但是当我运行程序时,模型看起来就像法线被翻转了,或者纹理从里到外It appears as if the normals are fliped

感谢您的宝贵时间:D

我尝试翻转搅拌机中的法线,但没有任何作用

python pygame pyopengl objloader
1个回答
0
投票

这对于普通的来说不是问题。您只需激活深度测试:

glEnable(GL_DEPTH_TEST)
© www.soinside.com 2019 - 2024. All rights reserved.