INF01009 - Trabalho de Implementação  Nº 1

Definição:

    Data de Divulgação: 07/04/2008
    Data para Entrega  : 16/04/2008 

             - Renderizando modelos geométricos arbitrários (malhas triangulares) no centro da janela
             - Realizando translações e rotações de câmera ao redor de seus eixos
             - Explorando cores em OpenGL
             - Explorando o relacionamento entre near e far clipping planes e o efeito  na resolução do buffer de profundidade
             - Utilizando uma GUI (Graphics User Interface)
             - Renderizando modelos cujos vértices encontram-se orientados nos sentidos horário e anti-horário

Link para descrição completa do trabalho

 

Pontos a serem implementados:

(a) Read and display arbitrary geometric models represented as triangle meshes. These objects are described in text files whose layout will be presented next. Once you read the objects, these should be displayed in the center of the window (20 points);

(b) Translate the virtual camera along its own axes (u, v, n) (not along the world coordinate system axes) (7.5 points);

(c) Translate the virtual camera along its own axes, while looking at the center of the object (7.5points);

(d) Rotate the virtual camera along its own axes (15 points);

(e) Reset the camera to its original position (i.e., object centered inside the window) (5 points);

(f) Support for rendering objects whose polygon vertices were defined using CW (clockwise) and CCW (counter clockwise) orientation (5 points);

(g) Support for changing the values of the near and far clipping planes (5 points);

(h) Support for interactive change of colors (R, G, B) for the models (12.5 points);

(i) Graphics user interface (GUI) (15 points);

(j) Support for reading a new model file through the user interface (7.5 points).

 

Dificuldades Encontradas:

 - A implementação da GUI levou um tempo considerável pois não tinha muito conhecimento de como fazer isso (pelo menos não usando OpenGL junto). Depois descobri como usar a glui e os problemas foram resolvidos.

 - A GUI também proporcionou alguns problemas ao ligá-la ao programa real, principalmente ao se carregar um novo arquivo. Mas depois de um curto espaço de tempo isso também foi resolvido.

 - Obtive ajuda com o meu colega Kao para o item (d), que me indicou o uso de quartenions e também me ajudou a implementar esta solução.

 - Tentei implementar meu próprio parser para o arquivo de entrada, porém desisti após algumas tentativas frustradas e decidi usar o exemplo dado na descrição completa do trabalho.

 

Imagens dos resultados obtidos:

 

Gui do programa

 

Zoom, translação e rotação da vaca

 

A Vaca colorida

 

A vaca em três momentos: Nuvem de pontos, WireFrame e sem iluminação

 

 

 

 

Voltar para  Trabalhos de Implementação