21.12.2022 Views

python_para_desenvolvedores_2ed

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Imagens em três dimensões 261

callback, que executam as chamadas OpenGL. A biblioteca tem uma rotina

que monitora os eventos e evoca as funções quando necessário.

PyOpenGL 77 é um pacote que permite que programas em Python utilizem as

bibliotecas OpenGL, GLU e GLUT.

Exemplo:

# -*- coding: latin1 -*-

from sys import argv

from OpenGL.GL import *

from OpenGL.GLUT import *

def display():

"""

Função callback que desenha na janela

"""

# glClear limpa a janela com valores pré-determinados

# GL_COLOR_BUFFER_BIT define que o buffer aceita escrita de cores

# GL_DEPTH_BUFFER_BIT define que o buffer de profundidade será usado

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

rgba = [.8, .6, .4, .9]

# glMaterial especifica os parâmetros do material que serão

# usados no modelo de iluminação da cena (no formato RGBA)

# GL_FRONT define que a face afetada pela função é a frontal

# GL_AMBIENT especifica que o parâmetro é a reflexão de ambiente

glMaterialfv(GL_FRONT, GL_AMBIENT, rgba)

# GL_DIFFUSE especifica que o parâmetro é a reflexão difusa do material

glMaterialfv(GL_FRONT, GL_DIFFUSE, rgba)

# GL_SPECULAR especifica que o parâmetro é a reflexão especular

glMaterialfv(GL_FRONT, GL_SPECULAR, rgba)

# GL_EMISSION especifica que o parâmetro é a emissão do material

# glMaterialfv(GL_FRONT, GL_EMISSION, rgba)

# GL_SHININESS especifica o expoente usado pela reflexão especular

glMaterialfv(GL_FRONT, GL_SHININESS, 120)

77 Página oficial do projeto: http://pyopengl.sourceforge.net/.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!