Lic. Engenharia Informática 2000/2001 - Computação Gráfica Filipe Pacheco
OpenGL
3 Programas Exemplo

Nesta página está disponível o código C utilizado nas aulas práticas, para obter mais demos OpenGL consulte as páginas da OpenGL ou de Computação Gráfica (ver índice OpenGL). 

template.c

Template básico 2D OpenGL

Exercícios:

- Desenhar os Eixos X, Y (comprimento 2 unidades)
- Colocar o cubo rodado 45º na posição x=3, y=0



clock.c

Template para realizar Relógio 2D em OpenGL

Exercício:

- Implementar um relógio analógico em OpenGL usando como base o ficheiro indicado
- Carregando em Esc o programa termina
- Carregando em "h" e "H" deve diminuir/aumentar a largura do ponteiro das horas
- Carregando em "m" e "M" deve diminuir/aumentar a largura do ponteiro dos minutos
- Carregando em "s" e "S" deve diminuir/aumentar a largura do ponteiro dos segundos
- O Programa deve permitir indicar opções de linha de comando para ligar ou desligar DoubleBuffer



cube.c

Exemplo de um programa simples 3D com um cubo colorido em rotação.

Exercícios:

- Retirar faces ao cubo
- Colocar cada face com uma cor
- Experimentar glTranslatef(..) antes e depois de glRotatef(...)
- Desenhar eixos com glBegin(GL_LINES)
- Desenhar cubos pequenos nos extremos dos eixos
- Colocar dois cubos face a face a rodarem
- Colocar os dois cubos em movimento relativo de vai-vem de forma a quando se tocam invertem o sentido.



cube_new.c

Adaptação de cube.c mas agora com luzes, materiais e um sólido da GLUT.



cube_new2.c

Adaptação de cube_new.c mas agora com dois viewports, múltiplas luzes, texto.



casa.c

Exemplo de utilização de Display Lists. Como extra um exemplo básico de transparência.



robot_2.c

Um braço robot simples com base e dois braços articulados. Utilizando o rato é possível alterar o ângulo de uma das uniões (movimento horizontal) ou selecionar a união (movimento vertical). Também tem disponível um menu pop-up.



pick.c

Adaptação de robot.c mas agora com picking para selecionar o braço a mover, visualização solid/wireframe, selecção de ponto de vista (perspectiva) e ainda uma zona com icons de estado.

pick_2.c

Idêntico ao anterior mas limita o movimento do robot de forma a estar sempre acima do plano X-Z (ou seja, Y>0).
 



3dfunc.c

Programa que desenha uma função 3D.

 



3dmaze.c

Pequeno mundo 3D com um objecto fixo e outro controlado pelo utilizador Permite trocar entre vista 2D (de cima), e duas vistas 3D (ponto de vista do objecto controlado pelo utilizador, e visão geral do mundo em rotação)

Para controlar o objecto utilizar as teclas "q", "a", "o", "p" (e ainda "w" e "s" na vista 3D do utilizador).

 




3dfunc.c

Programa que desenha uma função 3D.

 



texture.zip

Exemplo de utilização de textura em formato PPM. As teclas de cursor permitem rodar o cubo. "t" e "T" afastam ou aproximam o cubo do utilizador. A tecla "s" muda para modo de textura esférica.

Por questões de performance este exemplo usa Display Lists.

22-5-2001