Document

Propaganda
Instituto Superior de Engenharia de Lisboa Área Departamental de Engenharia de Electrónica e Telecomunicações e de Computadores Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Terceiro trabalho, Semestre de Inverno de 2014/2015 Neste trabalho os alunos desenvolverão competências relativas ao modelo de iluminação local de
Phong e global, usando o algoritmo de ray tracing.
Desenvolva uma aplicação 2D, CGRayTracing, em Java, para geração de imagens através do
algoritmo de ray tracing. As imagens geradas representam uma cena composta por elementos
geométricos elementares, tais como esferas, planos e caixas vistos a partir de um local, e uma ou
mais fontes de luz. A figura Figura 1 mostra exemplos de imagens geradas com este algoritmo.
Figura 1: Exemplo de imagens geradas com algoritmo de ray tracing
Na realização deste trabalho pretende-se que os alunos completem, ou reescrevam, uma aplicação
base, fornecida em anexo, de forma a ser capaz de gerar imagens com o algoritmo de iluminação
global de ray tracing. Na aplicação fornecida, uma cena é descrita através dos tipos apresentados
no diagrama UML estático de classes da figura Figura 2. Durante a realização do trabalho é
expectável que esta estrutura de classes sofra alterações.
Figura 2: Diagrama UML estático de classes de uma cena CG/1415i – Carlos Guedes 1/3 Computação Gráfica Terceiro trabalho Em anexo é também disponibilizado um conjunto de ficheiros com cenas (e.g. cenas usadas para
gerar as imagens da figura Figura 1, codificados em JSON (http://www.json.org)). A aplicação base
inclui ainda a implementação JSON para Java, disponível em http://www.json.org/java/, que gera
uma representação em memória do conteúdo do documento JSON, assim como um tipo
(JsonSceneLoader) que usa essa representação para criar um objecto do tipo Scene com a
informação presente no ficheiro.
A aplicação base fornecida implementa as seguintes funcionalidades:
•
Leitura da cena a partir de um ficheiro de texto em formato JSON
•
Geração dos raios primários, relativos ao plano de projecção
•
Cálculo de intersecção raio/esfera
•
Apresenta no plano de projecção a cor amarela caso tenha intersecção, e preto caso contrário
Pretende-se que implemente as seguintes funcionalidades. Em parênteses está indicado o
nome do ficheiro de cena que devem criar para demonstrar a funcionalidade indicada.
1.
(scene-01-ambient-diffuse.json)
Uso do modelo de iluminação local de Phong para cálculo de cor na intersecção raio/esfera,
com a componente ambiente e difusa, usando fonte de luz pontual
2.
(scene-02-specular.json)
Uso da componente especular do modelo de iluminação local de Phong
3.
(scene-03-shadows.json)
Zonas de sombra
4.
(scene-04-planes.json)
Uso de planos, com leitura do ficheiro e intersecção raio/plano
5.
(scene-05-reflections.json)
Reflecção especular, por exemplo num dos planos, com controlo de recursividade
6.
(scene-06-lights.json)
Suporte para várias fontes de luz (pontuais)
7.
(scene-07-boxes.json)
Uso de caixas, alinhadas com os eixos de coordenadas, e intersecção raio/caixa
8.
(scene-08-directional-and-spotlight.json)
Suporte para vários tipos de luz, adicionando luzes direcionais e spotlight
CG/1415i – Carlos Guedes 2/3 Computação Gráfica Terceiro trabalho Ligações úteis no desenvolvimento do trabalho:
Sobre o algoritmo de RayTrace
•
http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtrace0.htm
•
http://www.siggraph.org/education/materials/HyperGraph/raytrace/rt_java/raytrace.html
Intersecção entre raio e formas geométricas •
http://www.scratchapixel.com/lessons/3d-­‐basic-­‐lessons/lesson-­‐7-­‐intersecting-­‐simple-­‐
shapes/
•
http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtinter3.htm
A avaliação do trabalho tem em conta todos os aspectos do software desenvolvido, nomeadamente:
cumprimento de requisitos, estruturação, qualidade e documentação do código produzido.
A entrega deste trabalho consiste na entrega de um ZIP com o código desenvolvido e por um
documento (sem capa, índice, resumo, etc..) com considerações sobre o trabalho desenvolvido
acompanhado de algumas imagens exemplificativas do trabalho desenvolvido. Este documento
deve ter o máximo de duas folhas (pode ter mais imagens em anexo). O documento deve incluir um
cabeçalho, tal como o deste enunciado, com identificação do grupo e respectivos membros.
Bom trabalho
CG/1415i – Carlos Guedes 3/3 
Download