Hello World de Python + OpenGL
Há quase um ano eu comecei a estudar Python e gostei de muitas características da linguagem, como o fato de ser de altíssimo nível (very high level), sintaxe clara e elegante, poderosa, portável, super rápida,fácil aprendizado e um dos melhores: tipagem forte e dinâmica.
Gostei tanto que comecei a fazer alguns trabalhos de faculdade (mais notavelmente trabalhos nas áreas de Banco de Dados, Inteligência Artificial e, recentemente, Computação Gráfica) usando Python. Para vários trabalhos eu encontrei snippets de código, mas não foi tão fácil para CG usando OpenGL. Por isso, resolvi postar esse pequeno exemplo de como usar Python (na versão 2.6.4) + OpenGL.
Primeiro, baixe o PyOpenGL em http://pypi.python.org/pypi/PyOpenGL, descompacte e execute os comandos para instalar o pacote:´
$sudo python setup.py install
Lembrando que se você estiver no Windows, o executável do Python deverá estar no seu PATH.
Instalado o pacote, é hora de fazer um teste. Abra o shell do Python e digite isso:
Se não aparecer nenhuma mensagem de erro, o pacote do OpenGL foi instalado com sucesso. Agora é hora de uma pequena demonstração de uso do PyOpenGL:
from OpenGL.GLUT import *
def display():
glClear (GL_COLOR_BUFFER_BIT)
glBegin (GL_POLYGON)
glVertex2f(0.4,0.4)
glVertex2f(0.01,0.01)
glVertex2f(0.3,0.6)
glEnd()
glFlush()
glutInit ()
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB)
glutInitWindowSize (250,250)
glutInitWindowPosition (0,0)
glutCreateWindow ("Testando o PyGraphs")
glClearColor (0.0, 0.0, 0.0, 0.0)
glOrtho (0.0, 1.0, 0.0, 1.0, -1.0, 1.0)
glutDisplayFunc(display)
glutMainLoop ()
A API do OpenGL pro Python segue as mesmas convenções da API para C/C++. Então, todo e qualquer exemplo que você achar na Web em C/C++ é compatível com o Python (as vezes com algumas pequenas alterações de tipos, mas o nome das funções continua o mesmo).
Se tudo estiver ok, você deverá ver algo parecido com a seguinte figura:

Alguns links úteis:
Acho que é isso. Até a próxima!
Sem posts relacionados.

Um dia eu testo isso.
Luciana
26 Nov 09 at 00:12