Visualização e Projeções I 24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 327 1 DIM102 Introdução História Arestas de mesmo tamanho tem tamanhos aparentes diferentes Linhas paralelas convergindo 2 DIM102 Vasos gregos do século 6 já exibem perspectiva Em projeções perspectivas, linhas paralelas convergem (em 1, 2 ou 3 eixos) para um ponto de fuga Objetos mais distantes são mais reduzidos (foreshortening) que objetos mais próximos História Brunelleschi criou um método para criação de projeções perspectivas no início do século 15 “Uma pintura [o plano de projeção] é a interseção de uma pirâmide visual [volume de visão] a uma determinada distância, com um centro fixo [centro de projeção] e uma posição definida de iluminação, representada na arte por linhas e cores em uma determinada superfície [a renderização].” (Leono Battista Alberti (14041472), On Painting, pp. 32-33) 3 DIM102 Projeções Necessidade em se representar o mundo 3D em uma imagem 2D (plano de projeção) Projeção: abstração geométrica, um mapeamento f : , m n n 4 m Objetos no mundo 3D são recortados contra um volume de visão 3D, projetados em um plano de projeção e mapeados no viewport (coordenadas 2D do dispositivo) para desenho DIM102 Sistemas de Coordenadas Resultado de transformações Convenções em pipelines gráficos objeto/modelagem mundo câmera/visão Janela/screen/window raster/dispositivo 5 DIM102 Tipos de Projeções Projeção 2D de um objeto 3D é definida por raios de projeção (projetores) que emanam de um centro de projeção, passam por cada ponto do objeto e intersectam o plano de projeção Projeções planares Projeções paralelas (centro de projeção no infinito) ou perspectivas Definindo projeções – especifica-se o centro de projeção (perspectiva) ou a direção de projeção 6 DIM102 Tipos de Projeção projeções planares paralelas perspectivas: 1,2,3-pontos ortográficas obliquas cabinet 7 cavalier topo, axonométricas: frente, isométricas dimétricas lado trimétricas DIM102 Projeções Paralelas: centro da projeção no Oblíqua I Ortográfica I Perspectivas I Centro da projeção 8 ∞ DIM102 Projective Rendering Pipeline objeto mundo WCS OCS modeling transformation visão VCS viewing transformation OCS – sistema de coordenadas do objeto WCS - sistema de coordenadas do mundo VCS - sistema de coordenadas de visão CCS - sistema de coordenadas de recorte NDCS - sistema de coordenadas normalizadas DCS - sistema de coordenadas do dispositivo altera w projection transformation recorte CCS /w normalizado NDCS viewport transformation dispositivo DCS 9 DIM102 Viewing Transformation objeto mundo visão OCS WCS VCS 10 Transformação do objeto Transformação de visão/câmera M mod M cam OpenGL ModelView matrix DIM102 Projection Comparison Oblíquas Cavalier Cabinet Axonométricas Isométricas Others Perspectivas 11 DIM102 Oblique Projections Ambas têm visão frontal verdadeira cavalier: distância real cabinet: metade da distância d/2 y y d d d cabinet cavalier 12 x z x z DIM102 Projeções Axonométricas 13 DIM102 Projeções Perspectivas Classificadas de one-point perspective acordo com o número de pontos principais de fuga two-point perspective 14 DIM102 three-point perspective Transformations Perspectivas Propriedades Linhas paralelas não permanecem paralelas • Exemplo – estrada desaparecendo no infinito 15 Combinações afins não são preservadas. Exemplo – Centro de uma linha não mapeia para o centro da linha projetada DIM102 Câmera Virtual 16 Modelo de referência do programador para a especificação dos parâmetros da projeção para o computador Posição da câmera Orientação Campo de visão (ângulo aberto, normal…) Profundidade do campo de visão (plano frontal, plano traseiro) Distância focal Inclinação da plano do filme (projeções oblíquas) Projeção perspectiva ou paralela (câmera próxima dos dos objetos ou a uma distância infinita dos mesmos) DIM102 Volumes de visão Volume de visualização perspectivo cônico olho câmera virtual Um volume de visão contém tudo visível do ponto de vista e direção escolhidos. O que a câmera vê? Volumes de visão cônicos aproximam o que nossos olhos veêm, mas encarecem a computação de recorte de objetos Aproximação por um pirâmide truncada (chamada de frustum), que funciona bem com uma janela de visualização retangular e permite um recorte mais fácil Aproximação do volume de visualização por um frustum 17 DIM102 Pipeline Visualização 3D • Viewport é a área retangular da tela onde a cena é renderizada (que pode ou não preencher toda a tela) 18 DIM102 • Janela em CG geralmente significa um retângulo de recorte 2D em um sistema de coordenadas 2D do mundo. Já viewport é uma região da tela em um sistema de coordenadas inteiro 2D para o qual o resultado da regiáo recortada é mapeado • Viewport e plano do filme podem ter aspect ratios diferentes Volumes de visão Vetor vertical Seis informações determinam o modelo da câmera virtual (neste caso) A posição da câmera O vetor olhar-para (look) da câmera (para onde a câmera esá apontando) A orientação da câmera é determinada pelo vetor olhar-para e pelo ângulo de rotação da câmera ao redor deste vetor. O ângulo de rotação é dado pelo vetor vertical (up) Vetor olhar-para Ângulo de largura Posição Ângulo de altura Plano de recorte frontal 19 Plano de recorte traseiro DIM102 Volumes de Visão Aspect ratio do “filme”: razão da largura para a altura O ângulo de altura determina quanto da cena caberá no volume de visão (ângulo de largura determinado pelo ângulo de altura e aspect ratio). Os planos de recorte frontal e traseiro limitam a extensão da visão da câmera, renderizando somente as partes dos objetos que estão entre eles 20 DIM102 Posição e Orientação Posição é definida pelas coordenadas x, y e z da câmera no espaço 3D Orientação é especificada por um ponto no espaço 3D ou uma direção para a qual se deve apontar a câmera e um ângulo de rotação ao redor desta direção Orientação canônica (default) é olhando na direção negativa do eixo z e o vetor vertical apontando para cima no eixo y Defaults variam de pacote para pacote, certifique-se dos valores iniciais de posição e orientação das câmeras y x z Vetor vertical Ponto referência (x’, y’, z’) Vetor olhar-para Posição da câmera 21 z DIM102 Vetores Olhar-para e Vertical Projeção do vetor vertical Maneira mais natural de se definir orientação Vetor olhar-para Vetor olhar-para 22 Vetor vertical Posição DIM102 Pode ser qualquer vetor em 3D Determina como a câmera é rotacionada ao redor do vetor olharpara Aspect Ratio Similar ao tamanho do filme usado em uma câmera Define a proproção da largura para a altura da imagem desenhada na tela Janela quadrada tem um aspect ratio de 1:1 Telas de cinema tem um aspect ratio de 2:1 Televisôes PAL-M tem um aspect ratio de 4:3, enquanto que HDTVs tem um aspect ratio de 16:9 23 DIM102 Ângulo de Visão 24 DIM102 Determina a quantidade de distorção perspectiva na imagem, de nenhuma (projeção paralela) a muita (lentes de ângulos largos) Os ângulos de altura e largura definem o frustum, sendo que o ângulo de largura = ângulo de altura * aspect ratio Equivalente ao fotógrafo escolhendo o tipo específico de lente Planos de Recorte Frontal e Traseiro Front clipping plane 25 Back clipping plane DIM102 Volume do espaço entre os dois planos define o que a câmera pode ver Posição dos planos definidas pela distância na direção do vetor olharpara Objetos fora do volume de visão não são desenhados Objetos que intersectam estes planos são recortados Plano de Recorte Frontal Porque se usa plano de recorte frontal? Desenhando objetos muito próximos da câmera Poderia bloquear a visão do resto da cena Objetos poderiam ser distorcidos Evitar singularidades (divisão por zero, números muito pequenos) Não se deve desenhar objetos atrás da câmera 26 No caso de uma câmera perspectiva, objetos atrás da câmera seriam desenhados de cabeça para baixo e invertidos por causa da transformação perspectiva DIM102 Plano de Recorte Traseiro Porque se usa plano de recorte traseiro? Desenhando objetos muito distantes da câmera Objetos muito distantes podem aparecer muito pequenos para serem visualmente significantes, mas ainda demoram muito para serem desenhados Em uma cena com muitos objetos, por questões de aparência pode-se renderizar somene os mais próximos descartando-se os mais distantes Problema - Objetos aparecendo repentinamente em jogos? Objetos que acabam de entrar no plano de recorte traseiro. Utilizar névoa (fog) Hardware mais rápido e algoritmos de nível de detalhamento (LoD) permitem resolver este problema sem a utilização de névoa 27 DIM102 Comprimento de Foco 28 DIM102 Alguns modelos de câmera usam comprimento de foco É uma medida da faixa de foco ideal e aproxima o comportamento de uma lente de câmera real Objetos na distância de comprimento de foco são renderizadas em foco enquanto que objetos mais próximos ou distantes são borrados Usados com planos de recorte Especificação do Volume de Visão Posição, vetores olhar-para e vertical (orientação), aspect ratio, ângulo de altura e planos de recorte especificam um volume de visão truncado É a especificação do espaço delimitado que a câmera consegue ver Visão 2D da cena 3D é calculada do volume de visão truncado e projetada no plano de filme Volumes de visão truncados podem ser paralelos ou perspectivos 29 DIM102 Volume de Visão – Projeção Paralela Volume de visão truncado é um paralelepípedo Na projeção paralela os ângulos de altura e largura são zero Width Far distance Height Look vector Near distance Up vector Position 30 DIM102 Volume de Visão – Projeção Perspectiva Width angle = Height angle • Aspect ratio Up vector Look vector Height angle Position Near distance Far distance 31 DIM102 Volume de visão truncado é uma pirâmide truncada (frustum) Plano do Filme? Filme da câmera virtual é um retângulo em um plano de filme infinito que contém a imagem da cena Posicionamento do plano do filme 32 Volume de visão paralelo – desde que o plano do filme se localize na frente da cena, a distância do mesmo não importa Volume de visão perspectivo – O mesmo se aplica já que se transforma o volume de visão perspectivo em um volume de visão paralelo antes do mapeamento para as coordenadas do viewport DIM102