1. Implementar diretamente os exemplos, sem modificar, e ver seus efeitos. Tempo estimado: 20 minutos.Example 3-1 : Transformed Cube: cube.c2. Troque o comando gluLookAt() no Example 3-1 para a transformação de modelagem glTranslatef() com parâmetros (0.0, 0.0, -5.0). Obs: o resultado deve ser exatamente o mesmo que usando o gluLookAt(). Pense: por que os efeitos são o mesmo? Mude também os parâmetros do gluLookAt() (lookfrom, lookat e vup) para ver seus efeitos.
Example 3-5 : Wireframe Sphere with Two Clipping Planes: clip.c3. Mude o comando glFrustum() no Example 3-1 para o mais comumente usado (Utility Library routine) gluPerspective() com parâmetros (60.0, 1.0, 1.5, 20.0). Então, experimente usar diferentes valores, especialmente para fovy e aspect (dois primeiros parametros).
4. Tente mudar os coeficientes que descrevem os planos de corte no Example 3-5. Aplique uma transformação de modelagem, tal como glRotate*(), para alterar glClipPlane(). Faça o plano de corte mover independentemente dos objetos na cena.
Aula prática (Visualizacao e Transformacoes)
Implementar diretamente os exemplos, sem modificar, e ver seus efeitos. Estudar o codigo de cada exemplo e gerar um relatorio sucinto ao final da aula pratica, descrevendo as principais funcoes de cada exemplo.Example 3-6 : Planetary System: planet.cSe sobrar tempo:
Example 3-7 : Robot Arm: robot.c
Example 3-8 : Reversing the Geometric Processing Pipeline: unproject.cModificar o Example 3-7 adicionando segmentos adicionais ao braço robótico.
Modificar o Example 3-7 adicionando segmentos adicionais a mesma pocicao. Por exemplo, colocar varios dedos na ponta do braco (pulso). Sugestao: Use glPushMatrix() e glPopMatrix() para salvar e restaurar a posicao e orientacao do sistema de coordenadas no pulso. Ou seja, se voce vai desenhar dedos no pulso, voce precisa salvar a matriz corrente antes do posicionamento de cada dedo e restaurar a matriz corrente apos cada dedo seja desenhado.
Aula prática (Iluminacao)
1. Implementar diretamente os exemplos, sem modificar, e ver seus efeitos. Estudar o codigo de cada exemplo e gerar um relatorio sucinto ao final da aula pratica, descrevendo as principais funcoes de cada exemplo.Example 5-1 : Drawing a Lit Sphere: light.c2. Modificar o exemplo 5-6 da seguinte maneira: faça a luz transladar, passando do objeto, ao invés de rotationar ao redor dele. Sugestão: use glTranslated() no lugar do primeiro glRotated() na display(), e escolha um valor apropriado para usar no lugar de spin. Mude o valor de atenuação de modo que a luz decresce a intensidade quando a luz move para longe do objeto. Sugestão: adicione chamadas a glLight*() para acertar os parametros de atenuação desejados.
Example 5-6 : Moving a Light with Modeling Transformations: movelight.c
Example 5-9 : Using glColorMaterial(): colormat.c
3. Modificar o exemplo 5-8 da seguinte maneira: mude o valor global da luz ambiente na cena. Sugestão: altere o parametro GL_LIGHT_MODEL_AMBIENT. Mude os coeficientes de reflexão difusa, ambiente e especular, e o (expoente shineness) de espalhamento e a cor de emissão. Sugestão: use glMaterial*() mas evite chamadas excessivas.
Aula prática (modelos de iluminacao)
1. Implementar diretamente os exemplos, sem modificar, e ver seus efeitos (gerar um relatorio ao final da aula).Example 4-1 : Drawing a Smooth-Shaded Triangle: smooth.c2. Modificar o exemplo 4-1 colocando FLAT no lugar de SMOOTH e tente entender o que acontece (nao precisa colocar no relatorio).
Example 5-1 : Drawing a Lit Sphere: light.c
Aula prática (texturas)
Implementar diretamente os exemplos, sem modificar, e ver seus efeitos. Estudar o codigo de cada exemplo e gerar um relatorio sucinto ao final da aula pratica, descrevendo as principais funcoes de cada exemplo.Example 9-1 : Texture-Mapped Checkerboard: checker.c
Example 9-4 : Mipmap Textures: mipmap.c
Example 9-6 : Automatic Texture-Coordinate Generation: texgen.c
Sétima aula prática
1. Implementar diretamente os exemplos, sem modificar, e ver seus efeitos (gerar um relatorio ao final da aula)Example 11-4 : Quadrics Objects: quadric.c
Example 12-1 : Bezier Curve with Four Control Points: bezcurve.c
Example 12-2 : Bezier Surface: bezsurf.c
Example 12-5 : NURBS Surface: surface.c
Dia 03/11/05
1. Implementar diretamente os exemplos, sem modificar, e ver seus efeitos. Estudar o codigo de cada exemplo e gerar um relatorio sucinto ao final da aula pratica, descrevendo as principais funcoes de cada exemplo.Example 8-1 : Drawing a Bitmapped Character: drawf.c
Example 8-2 : Drawing a Complete Font: font.c
Example 8-3 : Use of glDrawPixels(): image.c
Example 8-4 : Drawing, Copying, and Zooming Pixel Data: image.c
Dia 10/11/05
Implementar diretamente os exemplos, sem modificar, e ver seus efeitos. Estudar o codigo de cada exemplo e gerar um relatorio sucinto ao final da aula pratica, descrevendo as principais funcoes de cada exemplo.Example 6-1 : Blending Example: alpha.c
Example 6-2 : Three-Dimensional Blending: alpha3D.c
Dia 03/05/12
1. Implementar diretamente os exemplos, sem modificar, e ver seus efeitos (gerar um relatorio ao final da aula).Example 7-1 : Creating a Display List: torus.c
Example 7-2 : Using a Display List: list.c