46272-4 - Tópicos Especiais em Computação Gráfica
Trabalho I - 2003-1
Este trabalho consiste na montagem de um ambiente virtual(AV)
que deverá representar uma casa.
Datas de Entrega:
Parte I: 09/04 - Nota Máxima : 4.0
Parte II: 05/05 - Nota Máxima : 6.0
Descrição (Parte I) - Valor 4.0
Modelar uma casa 5 cômodos, que atenda os sequintes requisitos:
-
Os cômodos:
-
Todas as dimensões devem ser próximas das dimensões
reais de uma casa;
-
Deve haver pelo menos uma sala, uma cozinha, um quarto, um banheiro e um
escritório;
-
Cada cômodo deve ter pelo menos 3 móveis adequadamente posicionados.
Estes móveis devem ser objetos 3DS ou outro formato similar.
-
O piso deverá ser plano;
-
As portas deverão ter dimensões reais.
-
A navegação na casa
-
O usuário deverá ter comandos que o permitam andar para
frente ou para trás e girar para os lados sem sair
do lugar;
-
Use as teclas de seta para os comandos de navegação.
-
Deve ser possível "pular" para a porta de cada um dos cômodos
da casa através de uma tecla (use os números de 1 a 5). Neste
comando o usuário deverá ser posicionado de forma que consiga
visualizar o interior do cômodo;
-
Depois de um "pulo" o usuário deve poder continuar navegação
daquela posição.
Descrição (Parte II) - Valor 6.0
Nesta parte do trabalho deverão ser incluídas técnicas
de culling para acelerar o processo de exibição do
cenário.
Deverão também ter incluídas animações
automáticas da abertura e fechamento de portas. Estas portas deverão
se abrir no momento em que o usuário chegar em frente a porta e
ativar o ocmando de abertura.
O usuário não poderá atravessar uma parede
ou porta, se esta estiver fechada.
O usuário poderá apontar e selecionar objetos com um
"bastão virtual" que deverá ficar preso a seu corpo.
Culling
Inserir um método de View Culling simplificado, de acordo
com o algoritmo descrito a seguir.
Deve-se primeiramente dividir a palnta da casa em quadrados de tamanho
iguais.
A partir daí deve-se calcular as linhas que limitam (sobre o
mapa) o volume de visualização. A partir disto deve-se
exibir somente os objetos que estejam nos quadrados que encontram-se dentro
do volume de vizualização.
Faça testes dividindo o mapa com quadrados de diversos tamanho
e apresentem um RELATÓRIO com o desempenho do algoritmo em termo
de FRAMES POR SEGUNDO.
Para efeito de remoção do objeto use apenas o centro
do objeto como referência.
A planta deve ser dividida em uma matriz de pelo menos 10 linha por
10 colunas.
Abertura/Fechamento das portas
Quando o usuário chegar próximo de uma porta esta deverá
abrir-se automaticamente. Quando ele se afastar a porta deverá fechar-se
também de forma automática. A animação de abertura
e fechamento deve durar aproximadamente 2(dois) segundos.
O bastão virtual
Este bastão deve ser colocado uma posição semelhante
a da mão do usuário e poderá ser girado ao
redor dos três eixos coordenados. Ao tocar um objeto com o bastão
este deverá ser "sinalizado". Esta sinalização deverá
ser implementada comocando-se uma "caixa" ao redor do objeto.
Enquanto estiver sendo tocado o objeto pode ser "selecionado" pelo
usuário através da tecla de barra-de-espaço. Um
obejto selecionado passa a "ficar preso" ao bastão e com isto passa
a mover-se junto com ele.
Ao ser selecionado a "caixa" ao redor do objeto deve desaparecer. Somente
objetos que não tenham sido removidos pelo algoritmo de culling
é que pode ser selecionados.