320 likes | 413 Views
24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 327. Visualiza ção e Projeçõ es I. Introdução. História 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
E N D
24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 327 Visualização e Projeções I
Introdução • História • 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 Arestas de mesmo tamanho tem tamanhos aparentes diferentes Linhas paralelas convergindo
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 (1404-1472), On Painting,pp. 32-33)
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 • 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
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
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
Tipos de Projeção projeções planares paralelas perspectivas: 1,2,3-pontos ortográficas obliquas cavalier cabinet axonométricas: isométricas dimétricas trimétricas topo, frente, lado
Projeções ∞ • Paralelas: centro da projeção no Oblíqua Ortográfica I I • Perspectivas I Centro da projeção
viewing transformation projection transformation modeling transformation viewport transformation Projective Rendering Pipeline objeto mundo visão altera w 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 VCS WCS OCS recorte CCS / w normalizado NDCS dispositivo DCS
Transformação de visão/câmera Transformação do objeto Viewing Transformation objeto mundo visão VCS WCS OCS OpenGL ModelView matrix
Projection Comparison • Oblíquas • Cavalier • Cabinet • Axonométricas • Isométricas • Others • Perspectivas
d/2 y d x z cabinet Oblique Projections • Ambas têm visão frontal verdadeira • cavalier: distância real • cabinet: metade da distância y d d x z cavalier
one-point perspective Projeções Perspectivas • Classificadas de acordo com o número de pontos principais de fuga two-point perspective three-point perspective
Transformations Perspectivas • Propriedades • Linhas paralelas não permanecem paralelas • Exemplo –estrada desaparecendo no infinito • Combinações afins não são preservadas. Exemplo – Centro de uma linha não mapeia para o centro da linha projetada
Câmera Virtual • 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)
Aproximação do volume de visualização por um frustum Volumes de visão • 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 Volume de visualização perspectivo cônico olho câmera virtual
Viewport é a área retangular da tela onde a cena é renderizada (que pode ou não preencher toda a tela) 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 eplano do filme podem ter aspect ratios diferentes Pipeline Visualização 3D
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 Plano de recorte traseiro
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
Posição e Orientação • Posição é definida pelas coordenadas x, yezda 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 Vetor vertical Ponto referência -z (x’, y’, z’) Vetor olhar-para Posição da câmera z
Vetor olhar-para Posição Vetores Olhar-para e Vertical • Maneira mais natural de se definir orientação • Vetor olhar-para • Pode ser qualquer vetor em 3D • Vetor vertical • Determinacomo a câmera é rotacionada ao redor do vetor olhar-para Projeção do vetor vertical
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 HDTVstem um aspect ratiode 16:9
Ângulo de Visão • 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
Front clipping plane Back clipping plane Planos de Recorte Frontal e Traseiro • 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 olhar-para • 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ãopor zero, números muito pequenos) • Não se deve desenhar objetos atrás da câmera • 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
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
Comprimento de Foco • 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
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
Look vector Volume de Visão – Projeção Perspectiva • Volume de visão truncado é uma pirâmide truncada (frustum) Width angle = Height angle • Aspect ratio Up vector Height angle Position Near distance Far distance
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 • 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