Esta é a lista de exercícios de
GCC124.
Atualizada pela última vez em julho de 2018.
Explique qual a diferença (características gerais, vantagens
e desvantagens) entre uma imagem vetorial e uma matricial (bitmap).
É possível converter qualquer imagem vetorial numa imagem
matricial? É possível converter qualquer imagem matricial
numa imagem vetorial?
Desenhe um diagrama que apresenta as várias etapas da
síntese de imagens pelo modelo da câmera estenopeica.
[ENADE2014] O algoritmo de traçado de raios (ray-tracing) é considerado um marco no desenvolvimento
de técnicas de computação gráfica para a geração de imagens realistas. A partir das imagens apresentadas,
conclui-se que a técnica de traçado de raios foi utilizada para a geração
apenas da imagem 1
apenas da imagem 2
apenas das imagens 1 e 3
apenas das imagens 2 e 3
das imagens 1, 2 e 3
Descreva a geometria da pirâmide ao lado tal como ficaria num arquivo, usando o seguinte formato:
O primeiro número (n) é o número de vértices. Os 3n números seguintes são as coordenadas dos vértices.
A seguir vem várias sequências de números terminadas em zero. Cada uma define uma face. O primeiro vértice é
identificado pelo número um.
Usando uma biblioteca de programação, implemente um programa que apresenta a pirâmide
do exercício anterior e permite a modificação interativa do observador. Sugestão: use a
biblioteca V-ART.
Crie uma nova classe de objeto gráfico no V-ART: o disco semitransparente. Faça um programa que demonstra
o uso dessa classe.
Cite duas transformações (nome da transformação
e parâmetros) que, aplicadas sozinhas, produzem o resultado mostrado ao lado.
Defina uma função que recebe um ponto P0, um ponto P1 e uma distância d;
e retorna o ponto P2 que está na mesma reta definida por P0 e P1, a uma distância
d de P0 e é mais o próximo possível de P1.
Encontre quatro vetores no espaço 3D de tal forma que todos os ângulos entre dois vetores quaisquer
sejam iguais e maiores que 90 graus.
Um determinado programa precisa que o usuário lhe forneça um ponto no espaço 3D. Ele deve
fazer isso lendo três números (três escalares). O que o programa deve ler para obter:
Um vetor 3D
Uma rotação 3D
Uma transformação de escala no espaço 3D
Um plano no espaço 3D
Um sistema de coordenadas 3D
Uma projeção paralela
Uma câmera virtual
No exemplo, os três escalares representam as três coordenadas do ponto. Explique o significado de
cada coisa lida.
Implemente uma sub-rotina que determina se um polígono é convexo (ou é côncavo).
Usando produto vetorial, implemente uma sub-rotina que verifica se um ponto é interno a um polígono convexo.
As duas figuras ao lado são projeções do mesmo cubo
no mesmo plano. Qual é a projeção paralela? Qual é
a projeção perspectiva? Explique.
Uma projeção perspectiva pode ser definida em termos de um
ponto e um plano, de tal forma que o plano tenha embutido um sistema de
coordenadas de duas dimensões. Várias bibliotecas gráficas
definem uma câmera virtual através de um ponto e dois vetores.
O ponto indica onde a câmera está. Um dos vetores indica a
direção "para onde a câmera está olhando" e
o outro indica qual a direção "para cima" relativa à
câmera. Invente uma forma de associar os elementos de tal câmera
virtual aos elementos de uma projeção perspectiva. Explique
essa associação que você inventou.
Implemente um programa como
este, que calcula uma projeção qualquer.
O algoritmo de Cohen-Sutherland para o recorte de segmentos retas no plano,
classifica uma extremidade de segmento de reta com um dos nove códigos
apresentados ao lado (números no sistema binário). Explique
quais são os casos em que os segmentos não precisam ser processados.
Explique como identificar estes casos em um programa de computador.
O algoritmo de Cyrus-Beck para o recorte paramétrico de retas foi
aperfeiçoado por Liang e Barsky que simplesmente fizeram simplificações
matemáticas para um caso especial. Cite qual foi este caso especial.
Faça um programa que mostra uma roda gigante em funcionamento
como o vídeo ao lado.
Os modelos geométricos podem ser copiados de algum lugar.
Este modelo contém uma roda gigante de raio 70 e espaço para 10 cadeiras.
O arquivo contém três objetos, denominados support, wheel e chair.
Explique qual a simplificação apresentada por Liang e Barsky
em seu algoritmo de recorte (em relação ao algoritmo de Cyrus-Beck),
deduzindo o cálculo da interseção de um segmento de
reta (que vai do ponto P1 ao ponto P2) com um retângulo de recorte
definido pelos limites (xmin, xmax, ymin, ymax).
O segmento ao lado tem 4 interseções com os lados de uma área de recorte. Explique
como o algoritmo do recorte paramétrico pode saber quais dos seis pontos envolvidos definem
o segmento recortado (o segmento vai de P0 a P1).
Quantos segmentos de elipse podem ser definidos pelo recorte de uma elipse
em relação a um retângulo? Mostre graficamente.
Implemente um programa que calcula o recorte de um segmento qualquer em
relação a uma área de recorte qualquer (mas que esteja alinhada com o sistema de coordenadas).
Alguns programas de computador definem cores em relação a
valores intitulados RGB, alguns usam valores intitulados CMYK e alguns
usam os dois. Explique o que esses valores significam, para exemplificar,
cite quais seriam os valores (nos dois sistemas) para definir as cores
preto e branco.
Escreva um algoritmo em pseudo-código que desenha uma reta (num
dispositivo matricial) entre dois pontos quaisquer.
[ENADE 2017] Em computação gráfica, existem vários modelos de iluminação diferentes que expressam e controlam
os fatores que determinam a cor de uma superfície em função de um determinado conjunto de luzes. Uma
vez definido um modelo de iluminação, pode-se aplicar luz sobre as várias faces dos objetos de uma
cena, processo denominado sombreamento.
A figura à esquerda ilustra a aplicação de dois modelos de iluminação, a saber: o modelo de
sombreamento constante (à esquerda) e o modelo de Phong (à direita).
Em relação aos modelos de iluminação apresentados, avalie as afirmações a seguir.
A aplicação do modelo de sombreamento constante causa na imagem um efeito visual denominado Bandas de Mach.
Embora seja útil para gerar imagens realísticas, o modelo de Phong mostra-se pouco eficiente na apresentação das reflexões especulares.
O modelo de sombreamento constante não é útil para gerar imagens realísticas porque ele dá destaque ao aspecto facetado da representação poliedral das superfícies.
Para a utilização do modelo de Phong, é necessário supor que a fonte de luz localiza-se no infito.
É correto apenas o que se afirma em
I e II.
I e III.
II e IV.
I, III e IV.
II, III e IV.
Na imagem ao lado, temos a vista frontal de um armário muito
distante do observador, à frente de uma parede de tijolos brancos. Observa-se que em
determinados pontos, o programa que gerou a imagem "achou" que a parede estava à frente
do armário. A parede é representada por um único retângulo e toda a parte frontal do armário
é representa por outro retângulo. Supondo que o programador deseja resolver este problema
através da troca do algoritmo de determinação de superfícies visíveis, que características
deve ter o novo algoritmo escolhido?
Assinale como V ou F:
( ) A representação de reflexão especular num objeto serve para se conseguir efeitos de reflexo como por exemplo a imagem de uma pessoa sendo refletida na porta de um carro limpo e encerado.
( ) Sistemas computacionais que usam 32 bits para representar cores conseguem apresentar resultados bem mais realísticos que os sitemas que usam 24 bits.
( ) O tratamento de cores em computação gráfica geralmente não é abordado de forma explícita porque as cores podem ser vistas como intensidades diferentes de cores primárias. Desta forma, imagens coloridas são análogas às PeB.
( ) O sistema CMYK de representação de cores não pode ser usado em arquivos que armazenam imagens.
Implemente um programa que recebe um vetor de faces e um vetor
de vértices para calcular a normal de cada vértice.
Escolha os pixels para desenhar o segmento entre (2, 1) e (7, 4),
seguindo o algoritmo do ponto médio.
Observe esse vídeo em que a tela de um celular foi filmada
por uma câmera digital. Explique o aparecimento de linhas e curvas
na imagem da tela do celular.
[Poscomp 2005]
Modelos gráficos, desenvolvidos para uso humano em displays convencionais devem ser
representados em uma superfície bi-dimensional. As principais pistas perceptuais de
profundidade que podem ser usadas para representar objetos tridimensionais em uma
tela bidimensional são:
tamanho e textura;
contraste, claridade e brilho;
interposição, sombra e paralaxe do movimento.
Considerando-se as três afirmações (I), (II) e (III) acima, identifique a única alternativa
válida:
Somente as afirmações (I) e (II) estão corretas.
Somente as afirmações (II) e (III) estão corretas.
Somente as afirmações (I) e (III) estão corretas.
As afirmações (I), (II) e (III) estão corretas.
Somente a afirmação (III) está correta.
[Poscomp 2006] Considere as questões abaixo:
Um terminal raster apresentará o efeito "pisca-pisca" quando a cena for muito
complexa.
Uma célula de vizinhança 4 no algoritmo de boundary-fill sempre preenche a região
interior completamente quando a borda da região de preenchimento tiver largura de 2
pixels.
No algoritmo do ponto médio para traçado de círculos, se
f(xM,yM) = r2 - x2 - y2 < 0, o ponto (xM,yM) é interior à circunferência.
Em uma cena composta apenas de objetos convexos, a eliminação de superfícies
ocultas restringe-se à remoção das faces posteriores (back faces).
No mapeamento janela-viewport, mantendo-se a viewport fixa e aumentando-se o
tamanho da janela provoca-se o efeito de zoom-in.