visual iza cao

64
Computação Gráfica Computação Gráfica Visualiza Visualiza ção 3D ção 3D Prof. Luiz Marcos Prof. Luiz Marcos www.dca.ufrn.br/~lmarcos/courses/ www.dca.ufrn.br/~lmarcos/courses/ compgraf compgraf

Upload: ivan-barreto

Post on 23-Dec-2015

234 views

Category:

Documents


3 download

DESCRIPTION

algoritmos de visualização

TRANSCRIPT

Page 1: Visual Iza Cao

Computação Computação GráficaGráfica

VisualizaVisualização 3Dção 3DProf. Luiz MarcosProf. Luiz Marcos

www.dca.ufrn.br/~lmarcos/courses/www.dca.ufrn.br/~lmarcos/courses/compgrafcompgraf

Page 2: Visual Iza Cao

Visualização 3DVisualização 3D

De onde veio a geometria?De onde veio a geometria? Modelo de Câmera Pin-holeModelo de Câmera Pin-hole Transformações de Projeção Transformações de Projeção

(perspectiva e ortogonal)(perspectiva e ortogonal) Transformação de VisualizaçãoTransformação de Visualização Cortes de partes não visíveisCortes de partes não visíveis

Page 3: Visual Iza Cao

De onde veio a De onde veio a geometria?geometria?

Construída usando modeladores 3D Construída usando modeladores 3D (Maya, 3DS, etc)(Maya, 3DS, etc)

Digitalizada ou escaneada (escaner 3D)Digitalizada ou escaneada (escaner 3D) Simulação/modelagem fisicaSimulação/modelagem fisica CombinaçãoCombinação

Editar um modelo digitalizadoEditar um modelo digitalizado Simplificar um modelo escaneadoSimplificar um modelo escaneado Evoluir um modelo simples (esfera, cubo)Evoluir um modelo simples (esfera, cubo)

Geralmente precisa-se modelos múltiplos Geralmente precisa-se modelos múltiplos a complexidades diferentesa complexidades diferentes

Page 4: Visual Iza Cao

Modelagem GeométricaModelagem Geométrica Resultado é uma representação no Resultado é uma representação no

computador: computador: esfera = origem (esfera = origem (xx00,y,y00,z,z00), raio (), raio (rr), orient. (), orient. (ooxx,o,oyy,o,ozz););

Há outras maneiras mais eficientes e Há outras maneiras mais eficientes e inteligentes de representar objetos inteligentes de representar objetos (Modelagem Geométrica)(Modelagem Geométrica)

Para superfícies mais complexas:Para superfícies mais complexas: Combinação de primitivas simples (cubo + esfera)Combinação de primitivas simples (cubo + esfera) Uso de retalhos poligonais (colcha de retalhos)Uso de retalhos poligonais (colcha de retalhos)

Retalhos de BèzierRetalhos de Bèzier Retalhos triangularesRetalhos triangulares

Page 5: Visual Iza Cao

Geometria Geometria Como mostrar a geometria na tela?Como mostrar a geometria na tela?Dados: - modelo matemático da cena Dados: - modelo matemático da cena referenciadoreferenciado ao sistema de coordenadas ao sistema de coordenadas de mundode mundo - câmera também referenciada - câmera também referenciada ao sistemaao sistema de mundo (R,T)de mundo (R,T)

xo

zo

yo

yc

xc

zc

xwzw

yw

yimxim

(R,T)

Page 6: Visual Iza Cao

Colocando geometria na Colocando geometria na telatela

Dada a geometria (ponto) num sistema Dada a geometria (ponto) num sistema de coordenada de mundo, como de coordenada de mundo, como visualizar (pixel)?visualizar (pixel)? Transformar para sistema de câmeraTransformar para sistema de câmera Transformar (warp) para o volume de Transformar (warp) para o volume de

visualização canônicovisualização canônico Clip (cortar partes não visíveis)Clip (cortar partes não visíveis) Projetar em coordenadas de display Projetar em coordenadas de display

(janela)(janela) RasterizarRasterizar xo

zo

yo

yc

xc

zc

xwzw

ywyim

xim

(R,T)

Page 7: Visual Iza Cao

Visualização e projeçãoVisualização e projeção

Nossos olhos colapsam o mundo 3D Nossos olhos colapsam o mundo 3D para uma imagem 2D na retinapara uma imagem 2D na retina

Este processo ocorre por Este processo ocorre por ProjeçãoProjeção Projeção tem duas partes:Projeção tem duas partes:

Transformação de visualização: posição Transformação de visualização: posição da câmera e sua direçãoda câmera e sua direção

Transformação de projeção (perspectiva Transformação de projeção (perspectiva ou ortogonal): reduz 3D para 2Dou ortogonal): reduz 3D para 2D

Page 8: Visual Iza Cao

Visualização e projeçãoVisualização e projeção

Usar Transformações HomogêneasUsar Transformações Homogêneas Formam a raiz da hierarquia de Formam a raiz da hierarquia de

transformaçõestransformações Transformar coordenadas de câmera Transformar coordenadas de câmera

em mundo, objeto e imagem e vice-em mundo, objeto e imagem e vice-versaversa

xo

zoyo

yc

xc

zc

xwzw

ywyim

xim

R,T

Page 9: Visual Iza Cao

Ótica básicaÓtica básica

Page 10: Visual Iza Cao

Ótica básicaÓtica básica

Formação da imagem começa com o Formação da imagem começa com o raio de luz que entra na câmera raio de luz que entra na câmera através da abertura angular (pupila através da abertura angular (pupila num humano)num humano)

Raio bate na tela ou plano imagem e Raio bate na tela ou plano imagem e o sensor fotoreceptivo registra o sensor fotoreceptivo registra intensidade da luzintensidade da luz

Muitos raios vem de luz refletida e Muitos raios vem de luz refletida e alguns de luz diretaalguns de luz direta

Page 11: Visual Iza Cao

Focando uma imagemFocando uma imagem

Qualquer ponto numa cena pode Qualquer ponto numa cena pode refletir raios vindos de várias refletir raios vindos de várias direçõesdireções

Muitos raios vindos do mesmo ponto Muitos raios vindos do mesmo ponto podem entrar na câmera.podem entrar na câmera.

Para ter imagem nítida, todos os Para ter imagem nítida, todos os raios vindos de um mesmo ponto raios vindos de um mesmo ponto PP da cena devem convergir para um da cena devem convergir para um ponto único ponto único pp na imagem. na imagem.

Page 12: Visual Iza Cao

Projeção perspectiva de Projeção perspectiva de um pontoum ponto

Plano de visualização ou plano Plano de visualização ou plano imagemimagem ponto ponto II “enxerga” tudo ao longo do raio “enxerga” tudo ao longo do raio

que passa através de Fque passa através de F ponto W projeta ao longo do raio que ponto W projeta ao longo do raio que

passa por F em I (interseção da reta WF passa por F em I (interseção da reta WF com plano imagem)com plano imagem)

Page 13: Visual Iza Cao

ÓÓtica da câmera pin-holetica da câmera pin-hole

De P, região visível olhando por F é De P, região visível olhando por F é um coneum cone Problema: imagem borrada (espalhada)Problema: imagem borrada (espalhada)

Reduzindo o furo, o cone reduz-se a Reduzindo o furo, o cone reduz-se a um raioum raio

““Pin-hole” é o ponto focal ou centro Pin-hole” é o ponto focal ou centro de projeçãode projeção

Page 14: Visual Iza Cao

Reduzindo abertura (pin-Reduzindo abertura (pin-hole)hole)

Apenas um raio de cada ponto entra Apenas um raio de cada ponto entra na câmerana câmera

Imagens nítidas, sem distorções, Imagens nítidas, sem distorções, mesmo à distâncias diferentesmesmo à distâncias diferentes

Problemas com o modelo pin-hole:Problemas com o modelo pin-hole: Tempo de exposição longoTempo de exposição longo Quantidade mínima de luzQuantidade mínima de luz DifraçãoDifração

Como resolver isso?Como resolver isso?

Page 15: Visual Iza Cao

Introduzindo um sistema Introduzindo um sistema óticoótico

Solução: introduzir lentes e aberturaSolução: introduzir lentes e abertura Raio vindo do mesmo ponto 3D Raio vindo do mesmo ponto 3D

converge para um único ponto na converge para um único ponto na imagemimagem

Mesma imagem que uma pin-hole Mesma imagem que uma pin-hole mas com tempo de exposição bem mas com tempo de exposição bem menor e abertura maiormenor e abertura maior

Page 16: Visual Iza Cao

Lentes finasLentes finas

Fl Fr

Lente fina

Eixo ótico

f f

Page 17: Visual Iza Cao

Duas restrições básicasDuas restrições básicas

1) Qualquer raio que entra no 1) Qualquer raio que entra no sistema de lentes paralelo ao eixo sistema de lentes paralelo ao eixo ótico, sai na direção do foco no outro ótico, sai na direção do foco no outro ladolado

2) Qualquer raio que entra na lente 2) Qualquer raio que entra na lente vindo da direção do foco, sai vindo da direção do foco, sai paralelo ao eixo ótico do outro ladoparalelo ao eixo ótico do outro lado

Fl Fr

Lente fina

Eixo ótico

f fZ z

P Q

R

OS

p

s

Page 18: Visual Iza Cao

Modelo básicoModelo básico Propriedade 1) a Propriedade 1) a PQPQ e propriedade e propriedade

2) a 2) a PRPR Defletem para se encontrar em Defletem para se encontrar em

algum ponto do outro ladoalgum ponto do outro lado Uma vez que o modelo de lente fina Uma vez que o modelo de lente fina

foca todos os raios vindos de foca todos os raios vindos de PP convergem para o mesmo ponto, convergem para o mesmo ponto, PQ PQ e e PR PR se intersectam em se intersectam em pp

Fl Fr

Lente fina

Eixo ótico

f fZ z

P Q

R

OS

p

s

Page 19: Visual Iza Cao

Equação fundamentalEquação fundamental

Usando similaridade entre os pares de Usando similaridade entre os pares de triângulotriângulo (<PF (<PFllS>, <ROFS>, <ROFll>) e (<psF>) e (<psFrr>, >, <QOF<QOFrr>), >), obtém-se: obtém-se: Z/f = f/zZ/f = f/z => => Zz = Zz = ff22

FazendoFazendo Z´=Z+f e z´= z+f, encontramos Z´=Z+f e z´= z+f, encontramos::

1 /Z´ + 1/z´ = 1/f1 /Z´ + 1/z´ = 1/f

Fl Fr

Lente fina

Eixo ótico

f fZ z

P Q

R

OS

p

s

Page 20: Visual Iza Cao

Formação da imagem Formação da imagem (invertida) (invertida)

Projetando uma formaProjetando uma forma Projetar cada ponto no plano imagemProjetar cada ponto no plano imagem Linhas são projetadas projetando seus Linhas são projetadas projetando seus

pontos finaispontos finais

Page 21: Visual Iza Cao

Modelo perspectivo idealModelo perspectivo ideal

P

p

O

P

O o P1

p

p1

y x

z

yx

z

Plano imagem

Plano imagemf

f

oP1p1

Page 22: Visual Iza Cao

Distorção perspectiva Distorção perspectiva pin-holepin-hole

Page 23: Visual Iza Cao

Modelo idealModelo ideal

Page 24: Visual Iza Cao

Implementação do Implementação do modelo idealmodelo ideal

Câmera na origem (apenas Câmera na origem (apenas transformação de projeção)transformação de projeção) Projeção ortográficaProjeção ortográfica Projeção perspectivaProjeção perspectiva

Câmera fora da origem (visualização Câmera fora da origem (visualização + projeção)+ projeção) Derivar uma matriz geral; ouDerivar uma matriz geral; ou Transformar o mundo, levando a Transformar o mundo, levando a

câmera para a origemcâmera para a origem

Page 25: Visual Iza Cao

Projeção ortográfica Projeção ortográfica (câmera na origem)(câmera na origem)

Ponto focal no infinito, raios são Ponto focal no infinito, raios são paralelos e ortogonais ao plano de paralelos e ortogonais ao plano de projeçãoprojeção

Ótimo modelo para lentes de Ótimo modelo para lentes de telescópiotelescópio

Mapeia (Mapeia (x,y,zx,y,z) -> () -> (x,y,0x,y,0))1 0 00 1 00 0 0

Matriz de projeção ortogonal

Page 26: Visual Iza Cao

Perspectiva simples Perspectiva simples (câmera na origem)(câmera na origem)

Caso canônico (câmera na origem)Caso canônico (câmera na origem) Câmera olha ao longo do eixo Câmera olha ao longo do eixo ZZ Ponto focal está na origemPonto focal está na origem Plano imagem paralelo ao plano Plano imagem paralelo ao plano XYXY a a

uma distância uma distância d d (distância focal)(distância focal)

xo

zo

yo

xc=xw

yimxim

yc=yw

zc=zw

d

Page 27: Visual Iza Cao

Equações perspectivaEquações perspectiva

x = f (X/Z)x = f (X/Z)

y = f (Y/Z)y = f (Y/Z) Ponto Ponto (X,Y,Z) (X,Y,Z) na cena projeta emna cena projeta em

(d(X/Z),d(Y/Z),d)(d(X/Z),d(Y/Z),d) Equações são não lineares devido à divisãoEquações são não lineares devido à divisão

OZ

Yy

f ou d

x

z

Page 28: Visual Iza Cao

Matriz de projeção Matriz de projeção perspectivaperspectiva

Projeção usando coordenadas homogêneasProjeção usando coordenadas homogêneas Transformar (Transformar (x,y,zx,y,z) em ) em [[(d(x/z),d(y/z,d(d(x/z),d(y/z,d]]

Divide pela 4Divide pela 4aa coordenada (a coordenada “w”) coordenada (a coordenada “w”) Obter pontos de imagem 2DObter pontos de imagem 2D

Descarta a terceira coordenada e aplica Descarta a terceira coordenada e aplica transformação de viewport para obter transformação de viewport para obter coordenada de janela (pixelcoordenada de janela (pixel

Page 29: Visual Iza Cao

Transformação de projeção Transformação de projeção (resultado)(resultado)

xo

zoyo

yc

xc

zc

ypxp

Page 30: Visual Iza Cao

Projeção perspectiva Projeção perspectiva (tem mais)(tem mais)

Especificar planos Especificar planos nearnear e e farfar Ao invés de mapear Ao invés de mapear zz em em dd, mapear , mapear zz

entre entre nearnear e e far far (para o (para o Z-BufferZ-Buffer, visto , visto adiante)adiante)

Mapear imagem final projetada no Mapear imagem final projetada no portal de visualizaçãoportal de visualização

Especificar campo de vista (ângulo Especificar campo de vista (ângulo fov)fov)

glViewPort, glFrustum glViewPort, glFrustum e e glPerspectiveglPerspective fazem isso tudo fazem isso tudo

Page 31: Visual Iza Cao

O volume de visualizaçãoO volume de visualização Pirâmide no espaço definida pelo ponto Pirâmide no espaço definida pelo ponto

focal e uma janela no plano imagem focal e uma janela no plano imagem (janela mapeada no portal de (janela mapeada no portal de visualização)visualização)

Define a região visível do espaçoDefine a região visível do espaço Limites da pirâmide são os planos de Limites da pirâmide são os planos de

cortecorte Frustum = pirâmide truncada com planos Frustum = pirâmide truncada com planos

de corte near e farde corte near e far Near: previne pontos atrás da câmera de Near: previne pontos atrás da câmera de

serem visualizadosserem visualizados Far: Permite escalar z num valor fixo (z-buffer)Far: Permite escalar z num valor fixo (z-buffer)

Page 32: Visual Iza Cao

Frustum: pirâmide Frustum: pirâmide truncada visíveltruncada visível

yc

xc

zc

Plano de projeção

zmin

zfar

Page 33: Visual Iza Cao

FrustumFrustum

Page 34: Visual Iza Cao

View-port (portal de View-port (portal de visualização)visualização)

Transformação de escala em ambos Transformação de escala em ambos os eixosos eixos

Mapear dx, dy (dimensões do plano Mapear dx, dy (dimensões do plano de projeção) em di, dj, (dimensões de projeção) em di, dj, (dimensões da janela de visualização)da janela de visualização)

xo

zoyo

yc

xc

zc

ypxp

Imagem final na janela de exibição

Monitor de Vídeodx

dydj

di

Page 35: Visual Iza Cao

Portal de Visualização e Portal de Visualização e FrustumFrustum

Idealmente, o portal de visualização Idealmente, o portal de visualização e o plano de projeção (definido pelos e o plano de projeção (definido pelos limites do frustum) devem guardar limites do frustum) devem guardar a mesma razão entre suas a mesma razão entre suas dimensões, para não gerar dimensões, para não gerar aberraçõesaberrações

Page 36: Visual Iza Cao

Câmera fora da origem Câmera fora da origem (caso geral)(caso geral)

Page 37: Visual Iza Cao

Câmera fora da origem Câmera fora da origem (caso geral)(caso geral)

Duas alternativas:Duas alternativas: Derivar uma matriz geral de projeção para Derivar uma matriz geral de projeção para

transformar os objetos (trabalhoso); outransformar os objetos (trabalhoso); ou Transformando o mundo, a câmera fica na Transformando o mundo, a câmera fica na

posição e orientação canônica posição e orientação canônica (mapeamento)(mapeamento)

São as transformações de visualizaçãoSão as transformações de visualização Podem ser especificadas de várias Podem ser especificadas de várias

formasformas

Page 38: Visual Iza Cao

Modelo mais popular Modelo mais popular para a transformação de para a transformação de

visualizaçãovisualização Distância focal, tamanho/forma da Distância focal, tamanho/forma da

imagem e planos de corte definidos na imagem e planos de corte definidos na transf. de projeção perspectivatransf. de projeção perspectiva

Em adição, especifique:Em adição, especifique: lookfromlookfrom : onde está o ponto focal (câmera) : onde está o ponto focal (câmera) lookatlookat: ponto no mundo centrado na imagem: ponto no mundo centrado na imagem

Especificar também orientação da câmera Especificar também orientação da câmera em torno do eixo em torno do eixo lookfrom-lookatlookfrom-lookat vupvup: vetor no mundo indicando o “acima” da : vetor no mundo indicando o “acima” da

imagem (norte da câmera)imagem (norte da câmera)

Page 39: Visual Iza Cao

Implementação (3 Implementação (3 passos)passos)

1) Translada de 1) Translada de –lookfrom–lookfrom, trazendo o , trazendo o ponto focal para a origemponto focal para a origem

2) Roda 2) Roda lookfrom-lookatlookfrom-lookat p p// eixo eixo zz (mundo):(mundo): v=(lookat-lookfrom) normalizado e z=(0,0,1)v=(lookat-lookfrom) normalizado e z=(0,0,1) Eixo de rotação: a=(v Eixo de rotação: a=(v xx z)/|v z)/|v xx z| z| Ângulo de rotação: cosÂngulo de rotação: cos=v.z e sin=v.z e sin=|v =|v x x z|z|

Ou então, mais fácil, glRotate(Ou então, mais fácil, glRotate(,a,axx,a,ayy,a,azz))

Page 40: Visual Iza Cao

ImplementaçãoImplementação

3) Roda em torno do eixo z para fazer 3) Roda em torno do eixo z para fazer vup ficar paralelo ao eixo yvup ficar paralelo ao eixo y

vup

Page 41: Visual Iza Cao

Translada de -lookfromTranslada de -lookfrom

xo

zo

yo

yc

xc

zc

xwzw

yw

yimxim

Page 42: Visual Iza Cao

Rotate Z axisRotate Z axis

xo

zoyo

yc

xc

zcxw

zw

yw

yimxim

Page 43: Visual Iza Cao

Rotate Z axisRotate Z axis

xo

zoyo

yc

xc

zcxw

zw

yw

yimxim

Page 44: Visual Iza Cao

Rotate Z axisRotate Z axis

xo

zoyo

yc

xc

zc

xw

zw

yw

yimxim

Page 45: Visual Iza Cao

Rotate Y axisRotate Y axis

xo

zoyo

yc

xc

zc

xw

zw

yw

yimxim

Page 46: Visual Iza Cao

That is itThat is it

xo

zoyo

yc

xc

zc xwzw

yw

yimxim

Page 47: Visual Iza Cao

FelizmenteFelizmente

OpenGL faz tudo para voce. OpenGL faz tudo para voce. Especifique:Especifique: Onde voce está (Onde voce está (lookfromlookfrom)) Onde voce olha (Onde voce olha (lookatlookat)) Orientação da câmera (Orientação da câmera (vupvup)) Campo de vista (ângulo Campo de vista (ângulo fovfov)) Distância focal (Distância focal (dd)) Dimensões da janela de visualização Dimensões da janela de visualização

(pixels)(pixels) E é isto! Done!E é isto! Done!

Page 48: Visual Iza Cao

Implementação em Implementação em OpenGLOpenGL

Page 49: Visual Iza Cao
Page 50: Visual Iza Cao
Page 51: Visual Iza Cao
Page 52: Visual Iza Cao
Page 53: Visual Iza Cao
Page 54: Visual Iza Cao
Page 55: Visual Iza Cao
Page 56: Visual Iza Cao
Page 57: Visual Iza Cao
Page 58: Visual Iza Cao
Page 59: Visual Iza Cao
Page 60: Visual Iza Cao
Page 61: Visual Iza Cao
Page 62: Visual Iza Cao
Page 63: Visual Iza Cao
Page 64: Visual Iza Cao