Computação Gráfica
Prof. Márcio Sarroglia Pinho
Exercícios
Visualização
3D
- Crie
a projeção perspectiva do cubo(0,0,0)-(10,10,10),
estando o observador na posição (0,5,0) e o alvo na posição (0,5,5).
Mostre os cálculos. Considere o ângulo de visão igual a 90 graus.
-
- Crie
a projeção perspectiva do paralelepípedo (0,0,0)-(6,6,8),
estando o observador na posição (9,6,4) e o alvo na posição (6,6,4).
Mostre os cálculos. Considere o ângulo de visão igual a 90 graus.
- Crie
a projeção perspectiva do cubo (5,5,5)-(10,10,10),
estando o observador na posição (5,10,0) e o alvo na posição (5,0,0).
Mostre os cálculos. Considere o ângulo de visão igual a 90 graus.
- Imagine
o cubo(0,0,0)-(10,10,10). Se um observador está
olhando para a posição (0,5,10) e está vendo uma imagem conforme o desenho
abaixo, qual será sua visão se passar a olhar para (10,5,0) ?
- Considere
o seguinte programa em OpenGL:
glTranslatef(-5.00, 10.00, 0.00);
glutSolidCube(3);
glTranslatef(5.00, 10.00, 0.00);
glutSolidCube(3);
Desenhe as vistas ortográficas(frontal, lateral
direita e superior) da cena representada por este programa. Considere o
observador na posição (0,0,10) e o alvo na oriegem do
sistema de coordenadas;
Modelos
de Iluminação(de Reflexão)
- Qual
a diferença entre os modelos de Sombreameto e de
Reflexão ?
- Explique
como funcionam os algoritmos de cálculo de cor de um ponto no espaço.
- Mostre
como funciona o modelo de iluminação difusa. Apresente (com os cálculos)
um exemplo que contenha pelo menos 2 pontos com luminosidades diferentes.
- Imagine
um cubo (0,0,0)-(10,10,10), uma luz
pontual colocada em (15, 5, 15) e os pontos: A:(10, 5, 5); B:(10,
5, 7.5). Calcule a intensidade da iluminação difusa nos
pontos A e B.
- Segundo
os modelo de iluminação difusa, quais os
pontos das faces do desenho abaixo são mais claras e quais são mais escuras?(Considere a cena vista de cima). Enumere as
faces em ordem crescente de luminosidade. Liste as faces que não são vistas
pela luz.
· Imagine um cubo (0,0,0)-(10,10,10),
uma luz pontual colocada em (15, 5, 8) e um observador em
(15,5,0). Calcule a intensidade da iluminação especular
no ponto A:(10, 5, 5).
o
Vídeo com a resolução: https://youtu.be/ADH0PZ7hvt8
Remoção
de Faces Ocultas
- Explique
a que tipos de objetos se aplica o algoritmo de remoção de faces
traseiras.
- Considere
o código OpenGL apresentado a seguir. Considere um observador em (0,0,0)
olhando para (0,0,-10), com um ângulo de visão de 90 graus.
glColor3f(0,1,0);
glPushMatrix();
glTranslatef(10.00,
15.00, -15.00);
glutSolidCube(10);
glPopMatrix();
glColor3f(0,0,1);
glPushMatrix();
glTranslatef(15.00,
10.00, -10.00);
glutSolidCube(10);
glPopMatrix();
Desenhe
as vistas superior e frontal.
Execute o algoritmo de Zbuffer nos polígonos que
representam, respectivamente, a face lateral esquerda do cubo azul e frontal do
cubo verde.
- Construa
o Zbuffer da cena formada pelas faces descritas
a seguir. Considere que as coordenadas estão no sistema de referência da
câmera. Utilize uma projeção ortográfica, frontal e depois a lateral
direita.
Face
1
|
Face
2
|
A: 0, -10, 15
|
E:10, -5, 10
|
B: 0, 10, 15
|
F:10, 5, 10
|
C: 20, 10, 15
|
G: 30, 5, 25
|
D: 20, -10, 15
|
H: 30, -5, 25
|
Ray Tracing
Dada a cena abaixo,
determine quais dos 3 pontos marcados sobre o plano de projeção é um
ponto de sombra.
Técnicas de Culling
Para que servem os envelopes de objetos geométricos ?
Descreva
três tipos de envelopes que se pode usar.
Descreva
o algoritmo de geraçõa de um Convex
Hull ?
Considere a existência de um algoritmo que calcula o
ângulo entre dois segmentos de reta:
double CalculaAngulo (Ponto
P1, Ponto P2);
Crie uma rotina capaz de imprimir(em ordem) os pontos
que formam convex Hull dado um vetor de pontos: Ponto
PONTOS[100];
Dado
que se tem uma rotina capaz de calcular o Convex
Hull de um conjunto de pontos:
void Convex (Ponto Vetor);
E
outra capaz de determinar se um ponto está dentro de um quadrilátero
int DentroDoQuadrilatero(Ponto
P, Ponto Quadri[4]);
Crie uma rotina (Quick) que seria chamada antes da Convex,
com o objetivo de aplicar o algoritmo de QUICK HULL:
Quick (VetorAntigo,
VetorNovo);
Convex (VetorNovo);
Descreva
três tipos de envelopes que se pode usar.
Quais
as informações necessárias para armazenar o envelope esférico de um
conjunto de pontos ?
Crie o um algoritmo que calcule o envelope esférico de
um confunto de pontos.
Crie uma rotina que determine se há ou não colisão
entre dois envelopes retangulares.
Crie uma rotina que determine se há ou não colisão
entre dois envelopes esféricos.
Explique o funcionamento do algoritmo de Frustum Culling.
Que
tipos de algortimos de Culling
se pode usar para modelos
arquitetônicos ?