首页 > 解决方案 > 如何在 PyOpenGL 中将纹理应用于金字塔

问题描述

我不明白如何在 PyOpenGL 中纹理这个金字塔。我尝试按照指南做所有事情,但结果只是用一种颜色绘制所有内容,但我需要使用 png 纹理。我的代码是:

import pygame
from OpenGL import GL, GLU

verticies = (
    (-1, -1, -1),
    (-1, -1, 1),
    (1, -1, 1),
    (1, -1, -1),
    (0, 1, 0),
)

edges = ((0, 1), (0, 3), (2, 3), (2, 1), (0, 4), (1, 4), (2, 4), (3, 4))


def Cube():
    GL.glBegin(GL.GL_TRIANGLE_STRIP)
    for edge in edges:
        for vertex in edge:
            GL.glVertex3fv(verticies[vertex])
    GL.glEnd()


def main():
    pygame.init()
    display = (800, 600)
    pygame.display.set_mode(display, pygame.DOUBLEBUF | pygame.OPENGL)

    GLU.gluPerspective(45, (display[0] / display[1]), 0.1, 50)

    GL.glTranslatef(0, 0, -5)

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

        GL.glRotatef(1, 0, 1, 0)
        GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT)
        Cube()
        pygame.display.flip()
        pygame.time.wait(10)


main()

你能解释一下如何做到这一点吗?

标签: pythonpygamepyopengl

解决方案


推荐阅读