Fotorealismo
Marlus Souza [email protected]
Samuel Arcoverde [email protected]
2
Fotorealismo (Hiper-Realismo)
• Movimento artístico surgido nos Estados Unidos
no final dos anos 60.
• É um estilo baseado em fazer pinturas a partir
de fotografias.
▫ Grande abrangência de detalhes.
▫ Mais explorados: reflexões e geometria.
▫ “Too perfect to be real.”
Richard Estes
3
Glennray Tutor
4
Audrey Flack
5
Duane Hanson
6
E a computação?
POV-Ray 3.6
9
Computação Gráfica
 Campo da Ciência da Computação que estuda métodos
para sintetização e manipulação digital de conteúdo
visual.
 ISO (International Standards Organization): Conjunto de
métodos e técnicas utilizados para converter dados para
um dispositivo gráfico, via computador.
Necessidade humana de visualização de dados.
10
Computação Gráfica
Computação
Gráfica
Dados
Modelagem
Geométrica
Imagens
Visão
Computacional
Processamento
de imagens
11
Tríade Fundamental da CG
Geometria
Animação
Renderização
12
Como representar os
objetos?
• Superfícies.
• Malhas.
• Curvas.
• Parametrização.
• Reconstrução.
• Processamento de malhas out-of-core.
13
Como representar
as cores e texturas?
• Transporte / Visibilidade.
• Shading – variar cor e brilho.
• Scattering – interação da luz em um ponto.
14
Como representar o
movimento?
• Animação de personagens.
• Simulações físicas:
▫ Tecido.
▫ Fluidos.
O Começo
• Sketchpad
▫ Tese de doutorado de Ivan
Sutherland (1962 – MIT).
▫ Editor gráfico
▫ CAD
"A display connected to a
digital computer gives us a
chance to gain familiarity with
concepts not realizable in the
physical world. It is a looking
glass into a mathematical
wonderland."
http://www.youtube.com
/watch?v=mOZqRJzE8xg
Aplicações [1]
• Física Computacional
Aplicações [2]
• Jogos
Aplicações [3]
• Medicina
Aplicações [4]
• CAD
Aplicações [5]
• Cinema
http://www.youtube.com/w
atch?v=5f-MYl-HzNw
E várias outras áreas…
•
•
•
•
•
•
•
•
Biologia Computacional
Arte Digital
Educação
Design
RA/RV
Meteorologia
Análise de Dados
…
História
• 1968
▫ Ray Casting
• Década de 70
▫
▫
▫
▫
▫
▫
▫
▫
Renderização Scanline (Scanline Rendering)
Modelo de Sombreamento de Goraud e Phong
Mapeamento de Textura (Texture Mapping)
Mapeamento de Ambiente (Environment Mapping)
Mapeamento de relevo (Bump Mapping)
Z-buffering
Volumes de Sombra (Shadow Volumes)
Buffer de Sombra (Shadow Buffer)
Ray Casting
• Arthur Appel, 1968.
• O Termo “Ray Casting” foi usado pela primeira vez em
1982 por Scott Roth.
• Técnica de renderização que cria uma perspectiva 3D em
um mapa 2D.
• Idéia:
▫ Lançamento de raios a partir do observador de forma a perceber
qual a distância a que estão os objetos que compõem a cena.
• A alta velocidade de cálculo tornou este modelo muito
popular na implementação de jogos 3D.
Exemplos
http://pixellove.eu/wega/
Exemplos
http://www.youtube.com/watch?v=C00n4rDUMNo
História
• 1968
▫ Ray Casting
• Década de 70
▫
▫
▫
▫
▫
▫
▫
▫
Renderização Scanline (Scanline Rendering)
Modelo de Sombreamento de Gouraud e Phong
Mapeamento de Textura (Texture Mapping)
Mapeamento de Ambiente (Environment Mapping)
Mapeamento de relevo (Bump Mapping)
Z-buffering
Volumes de Sombra (Shadow Volumes)
Buffer de Sombra (Shadow Buffer)
Renderização Scanline
• Bouknight, 1970.
• Algoritmo para determinar quais superfícies ou
partes de superfícies não são visíveis de um
determinado ponto de vista.
▫ Renderização feita linha por linha em vez de polígono
por polígono ou pixel por pixel.
• Vantagem:
▫ Não é necessário traduzir as coordenadas de todos os
vértices da memória principal para a memória em uso.
Exemplos
História
• 1968
▫ Ray Casting
• Década de 70
▫
▫
▫
▫
▫
▫
▫
▫
Renderização Scanline (Scanline Rendering)
Modelo de Sombreamento de Gouraud e Phong
Mapeamento de Textura (Texture Mapping)
Mapeamento de Ambiente (Environment Mapping)
Mapeamento de relevo (Bump Mapping)
Z-buffering
Volumes de Sombra (Shadow Volumes)
Buffer de Sombra (Shadow Buffer)
Flat Shading
• Calcula a cor de 1 ponto e sua cor é a mesma
para toda a face.
• É bastante rápido, já que elimina todos os efeitos
dos modelos de sombreamento.
• Porém, os modelos ficam com uma aparência
quadrada.
Exemplos
Gouraud Shading
• Henri Gouraud, 1971.
• Suavidade na exibição de objetos com superfícies curvas
representados por polígonos.
• Em cada vértice é calculado um vetor normal estimado,
que é a média das normais das faces que compartilham o
vértice.
• A cor é calculada para cada vértice.
▫ O cálculo da cor dos pontos internos da face é feita por
interpolação.
• Problema – efeitos luminosos muito localizados:
▫ Pontos de brilho especular são atenuados.
▫ Efeitos luminoso no meio do polígono podem ser complicados.
Exemplos
Phong Shading
• Bui Tuong Phong, 1975.
• Funcionamento semelhante ao do Gouraud
Shading.
• Normal da superfície é interpolada linearmente
para se obter a cor final de cada pixel.
• Melhora o modelo de Gouraud:
▫ Mantém o brilho especular.
▫ Resolve problema do meio do polígono.
• Mais custoso que os dois anteriores.
Exemplos
Exemplos
Flat
Gouraud
Phong
Outros modelos:
http://www.youtube.com/watch?v=YKCyquHPidQ
História
• 1968
▫ Ray Casting
• Década de 70
▫
▫
▫
▫
▫
▫
▫
▫
Renderização Scanline (Scanline Rendering)
Modelo de Sombreamento de Gouraud e Phong
Mapeamento de Textura (Texture Mapping)
Mapeamento de Ambiente (Environment Mapping)
Mapeamento de relevo (Bump Mapping)
Z-buffering
Volumes de Sombra (Shadow Volumes)
Buffer de Sombra (Shadow Buffer)
Mapeamento de Textura
• Edwin Catmull, 1974.
• Método para adicionar textura (imagem 2D) a
um polígono, modelo ou gráfico 3D.
• Assim promove o aumento de realismo e a
redução da complexidade do modelo.
• Problema: Perspectiva.
Exemplos
Exemplos
Exemplos
http://www.youtube.com/watch?v=
CZLGsTmB3sk&feature=related
História
• 1968
▫ Ray Casting
• Década de 70
▫
▫
▫
▫
▫
▫
▫
▫
Renderização Scanline (Scanline Rendering)
Modelo de Sombreamento de Gouraud e Phong
Mapeamento de Textura (Texture Mapping)
Mapeamento de Ambiente (Environment
Mapping)
Mapeamento de relevo (Bump Mapping)
Z-buffering
Volumes de Sombra (Shadow Volumes)
Buffer de Sombra (Shadow Buffer)
Mapeamento de Ambiente
• Blinn e Newell, 1976.
• Simulação de objetos refletindo o seu arredor.
• Método eficiente de simular uma superfície
espelhada através de texturas pré-calculadas.
• Mais comuns:
▫ Spherical E.M.
▫ Cubic E.M.
• Problema comum:
▫ O objeto não se reflete.
Exemplos
Exemplos
http://www.youtube.com/watch?v=uhNFiiRMOtU
História
• 1968
▫ Ray Casting
• Década de 70
▫
▫
▫
▫
▫
▫
▫
▫
Renderização Scanline (Scanline Rendering)
Modelo de Sombreamento de Gouraud e Phong
Mapeamento de Textura (Texture Mapping)
Mapeamento de Ambiente (Environment Mapping)
Mapeamento de relevo (Bump Mapping)
Z-buffering
Volumes de Sombra (Shadow Volumes)
Buffer de Sombra (Shadow Buffer)
Mapeamento de Relevo
• Blinn, 1978.
• Técnica da CG para simulação de superfícies
irregulares.
▫ Superfícies com rugosidades, saliências, etc.
• É feita através da alteração do vetor normal de
cada pixel da imagem
Exemplos
Exemplos
http://www.youtube.com/watch?v=njFurl4uwm8
História
• 1968
▫ Ray Casting
• Década de 70
▫
▫
▫
▫
▫
▫
▫
▫
Renderização Scanline (Scanline Rendering)
Modelo de Sombreamento de Gouraud e Phong
Mapeamento de Textura (Texture Mapping)
Mapeamento de Ambiente (Environment Mapping)
Mapeamento de relevo (Bump Mapping)
Z-buffering
Volumes de Sombra (Shadow Volumes)
Buffer de Sombra (Shadow Buffer)
Z-buffering
• Edwin Catmull, 1974.
• Gerenciamento das coordenadas de
profundidade de uma imagem em gráficos 3D.
• Geralmente implementado em hardware.
• Uma das soluções para o “Problema da
Visibilidade”.
• Problema:
▫ Z-fighting.
Exemplos
Exemplos
http://www.youtube.com/watch?v=UVGdOFVbvBo
História
• 1968
▫ Ray Casting
• Década de 70
▫
▫
▫
▫
▫
▫
▫
▫
Renderização Scanline (Scanline Rendering)
Modelo de Sombreamento de Gouraud e Phong
Mapeamento de Textura (Texture Mapping)
Mapeamento de Ambiente (Environment Mapping)
Mapeamento de relevo (Bump Mapping)
Z-buffering
Volumes de Sombra (Shadow Volumes)
Buffer de Sombra (Shadow Buffer)
Volumes de Sombra
• Frank Crow, 1977.
• Técnica utilizada em gráficos 3D para
acrescentar sombras em cenas já renderizadas.
▫ Sombras proporcionam maior realidade às cenas.
▫ Divide o mundo virtual em dois: com sombra e
sem sombra.
• “Sombra perfeita”.
Exemplos
http://www.youtube.com
/watch?v=utdoRSeKg64
História
• 1968
▫ Ray Casting
• Década de 70
▫
▫
▫
▫
▫
▫
▫
▫
Renderização Scanline (Scanline Rendering)
Modelo de Sombreamento de Gouraud e Phong
Mapeamento de Textura (Texture Mapping)
Mapeamento de Ambiente (Environment Mapping)
Mapeamento de relevo (Bump Mapping)
Z-buffering
Volumes de Sombra (Shadow Volumes)
Buffer de Sombra (Shadow Buffer)
Buffer de Sombra
• Lance Williams, 1978.
• Buffer de sombras de forma a tornar mais rápida
a renderização de sombras.
▫ Garantir qualidade e/ou precisão da imagem se
torna mais caro.
▫ Requerem grande quantidade de memória.
▫ GeForce 4 e Blender.
• Self-shadowing.
Exemplo
História
• Década de 80
▫ Traçado de Raios (Ray Tracing)
▫ Traçado de Raios Distribuído (Distributed Ray
Tracing)
▫ Traçado de Caminhos (Path tracing)
▫ Radiosidade (Radiosity)
• Década de 90
▫ Subsurface Scattering
▫ Mapeamento de Fótons (Photon Mapping)
Ray Tracing
• Turner Whitted, 1980.
• Algoritmo para síntese de imagens 3D.
• Simulação do trajeto que a luz faria no mundo real.
▫ Algoritmo reverso:
 Alto custo computacional.
• Alto grau de realismo.
• Método recursivo.
▫ Computação lenta:
 Número de interseções entre raios e objetos.
 Custo de cada cálculo de interseção.
▫ Ideal para aplicações em que a imagem pode ser renderizada
lentamente, ou previamente.
▫ Não recomendado para aplicações em tempo real.
 Será?
Exemplos
História
• Década de 80
▫ Traçado de Raios (Ray Tracing)
▫ Traçado de Raios Distribuído (Distributed
Ray Tracing)
▫ Traçado de Caminhos (Path tracing)
▫ Radiosidade (Radiosity)
• Década de 90
▫ Subsurface Scattering
▫ Mapeamento de Fótons (Photon Mapping)
Ray Tracing Distribuído
• Robert Cook, Thomas Porter e Loren Carpenter,
1984.
• Ray Tracing – Limitações:
▫
▫
▫
▫
Sombras bem delineadas.
Todos os objetos em foco.
Objetos em movimento aparecem congelados.
Reflexão e refração “perfeitas”.
 Materiais perfeitamente lisos.
Ray Tracing Distribuído
• Ray Tracing Distribuído:
▫ Evita simplificações para que a imagem se torne mais
suave e real.
• Efeitos:
▫
▫
▫
▫
▫
Borramento por movimento (Motion Blur).
Profundidade de Campo (Depth of Field).
Penumbra (Soft Shadows).
Superfícies Brilhosas (Glossy Surfaces).
Superfícies Translúcidas.
Borramento por movimento
http://www.youtube.com/watch?v=R9FfkIGWoC4
Profundidade de Campo
Penumbra
Superfície Brilhosa
30% reflexão
Sem superfície
brilhosa
16 raios
4 raios
64 raios
Superfície Translúcida
Transparente
Translúcido
4 raios
Translúcido
16 raios
História
• Década de 80
▫ Traçado de Raios (Ray Tracing)
▫ Traçado de Raios Distribuído (Distributed Ray
Tracing)
▫ Traçado de Caminhos (Path tracing)
▫ Radiosidade (Radiosity)
• Década de 90
▫ Subsurface Scattering
▫ Mapeamento de Fótons (Photon Mapping)
Path Tracing
• James Kajiya, 1986.
▫ Apresentado no mesmo artigo da “Equação de
Renderização”.
• Técnica para renderização de gráficos
fotorealísticos.
• Tenta resolver a equação de renderização.
• Imagem de qualidade superior às renderizadas
com RayTracing.
▫ Maior custo computacional.
Exemplo
Ray-traced:
Resolução: 500 x 500
Tempo de renderização: 132s
Objetos/Polígonos: 10 / 7
Raios Primários/Secundários: 250000 / 76435
Velocidade: 2470 raios/s
Caminho máximo: 10 jumps
Path-traced:
Resolução : 500 x 500
Tempo de renderização : 2h 10m
Objetos/Polígonos : 10 / 7
Raios Primários/Secundários : 250000 / 1979333402
Velocidade: ~254000 raios/s
Raios por Pixel: 2000
Caminho máximo : 30 jumps
História
• Década de 80
▫ Traçado de Raios (Ray Tracing)
▫ Traçado de Raios Distribuído (Distributed Ray
Tracing)
▫ Traçado de Caminhos (Path tracing)
▫ Radiosidade (Radiosity)
• Década de 90
▫ Subsurface Scattering
▫ Mapeamento de Fótons (Photon Mapping)
Radiosidade
• Cindy Goral, Kenneth Torrance, Donald
Greenberg e Bennett Battaile, 1984.
• Algoritmo de Iluminação Global.
▫ Tenta resolver a equação de renderização.
• Baseado em conceitos de transferência de calor e
conservação de energia.
• Não modela reflexão especular.
• Elevado realismo.
Exemplos
http://vimeo.com/3741726
Exemplos
História
• Década de 80
▫ Traçado de Raios (Ray Tracing)
▫ Traçado de Raios Distribuído (Distributed Ray
Tracing)
▫ Traçado de Caminhos (Path tracing)
▫ Radiosidade (Radiosity)
• Década de 90
▫ Subsurface Scattering
▫ Mapeamento de Fótons (Photon Mapping)
Subsurface Scattering
• Pat Hanrahan, Wolfgang Krueger, 1993.
• Mecanismo em que a luz penetra a superfície de
um objeto translúcido em um ponto, se dispersa
e deixa a superfície em outro ponto.
• Ideal para renderizar materiais como mármore,
leite e pele.
• Dá ao objeto uma aparência mais leve.
Exemplo
http://www.youtube.com/watch?v=pLeymBNSMu8
História
• Década de 80
▫ Traçado de Raios (Ray Tracing)
▫ Traçado de Raios Distribuído (Distributed Ray
Tracing)
▫ Traçado de Caminhos (Path tracing)
▫ Radiosidade (Radiosity)
• Década de 90
▫ Subsurface Scattering
▫ Mapeamento de Fótons (Photon Mapping)
Mapeamento de Fótons
• Henrik Jensen, 1995.
• Algoritmo de dois passos que resolve a equação
de renderização.
• Mais rápido que o Path Tracing.
• Efeitos:
▫ Cáusticas.
▫ Interreflexões Difusas.
▫ Meios Participativos.
Cáustica
• Efeito de refração da luz em um meio
transparente.
Interreflexão Difusa
• Energia luminosa atinge a superfície e reflete em
todas as direções.
▫ “Color Bleeding”.
Meios Participativos
• Cálculos necessários para representar imagens
com vapor, fumaça, poeira, etc.
86
Renderizadores
•
•
•
•
•
•
•
•
•
•
Mental Ray
V-Ray
Kerkythea
3Delight
Indigo
LightRay
POV-Ray
Fryrender
Brasil R/S
Light Studio
87
MENTAL RAY
• Criado pela Mental Images, comprada pela NVIDIA.
• Tem como clientes:
▫ Audi, Honda, Renault, Volkswagen.
▫ DreamWorks, SONY.
 Hulk, Matrix, O dia depois de amanhã.
▫ Electronic Arts.
• Scanline rendering, photon mapping, final gathering,
motion blur (vários tipos), programmable shaders, shade
trees…
Maya
3DS Max
SolidWorks
Houdini
88
MENTAL RAY
89
V-RAY
• Engine de Renderização criado pelo ChaosGroup
em 1997.
• Iluminação global: Path Tracing, Photon
Mapping, Irradiance Cache e Light Cache.
• É usado na produção de filmes, jogos e em
arquitetura.
Maya
3DS Max
V-Ray
•
•
•
•
Free, “physically based renderer”.
Renderização em rede (TCP/IP).
Spectral sky e sunlight.
Horas do dia realísticas (pôr do sol, nascer do
sol, etc).
• Algumas bibliotecas usadas:
▫ TinyXML, Intel Jpeg library, Lib3ds, Libpng.
Indigo
• Primeira versão em 2005, depois de 8 meses de
trabalho.
• Freeware.
• Kernel e bibliotecas do Phos (render engine
antigo).
• Bump mapping, Clip mapping e Edge Outlining.
• Path Tracing, Photon Maps/Mesh Maps.
SketchUp
3DS Max
Kerkythea
Brazil R/S
• Brazil Rendering System criado pela
SplutterFish.
• Photon Mapping, Irradiance Cache, Cartoon
Shading, Skin Shader, Sub-surface
Scattering, Rendertime Displacement
Mapping, 3D Motion Blur.
• Hulk, Os incríveis, Sin City, Aeon Flux, Van
Helsing, X-Men 2, Minority Report.
3DS Max
Brazil R/S
Hardwares Gráficos
• Retirando o processamento de imagens do
processador, ganha-se em velocidade.
• Mais fácil de fazer Pipeline e de Paralelizar.
• No começo: Rasterização. Depois, Geometria.
Evolução dos Hw Gráficos
• IBM(87’): Controladores VGA (Video Graphics Array).
▫ Processamento ainda na CPU. VGA é usado como frame buffer.
• 90’: GPU (Graphics Processing Unit).
▫ Termo introduzido pela NVIDIA: “VGA” já era inapropriado.
• 91’: Super Nintendo, Neo Geo.
▫ Rasterização de 1 triângulo 3D por frame.
• 1ª Geração de GPUs.
▫ 94-98 (NVIDIA TNT2, ATI Rage, 3dfx Voodoo).
▫ Rasterização de triângulos pré-transformados.
• 2ª Geração de GPUs.
▫ 1999-2000 (GeForce).
▫ Transformação de vértices (OpenGL e DirectX 7).
▫ Cálculo de Iluminação por vértice.
GEOMETRIA
Evolução dos Hw Gráficos
• 3ª Geração de GPUs.
▫
▫
▫
▫
2001 (GeForce 3, GeForce 4 Ti, Radeon 8500).
600-800 estágios de pipeline.
Programação ao nível de vértice/fragmento.
DirectX 8.x e diversas extensões proprietárias do OpenGL.
• 4ª Geração de GPUs.
▫ 2002-2003(GeForce FX, ATI Radeon 9700).
▫ Programação ao nível do pixel.
▫ Introdução das linguagens de alto nível para placas gráficas Cg (C
for graphics), GLSL.
▫ Número de instruções por programa (vértice/fragmento)
aumenta drasticamente.
▫ DirectX 9.x, OpenGL 2.0.
Evolução dos Hw Gráficos
• MULTI-GPU/SLIs (Scalable Link Interface).
• NVIDIA, 2004.
• Split Frame Rendering, Alternate Frame
Rendering e SLI Antialiasing.
ATI Crossfire
Evolução dos Hw Gráficos
• Physics Processing Units (PPUs).
▫ Unidades de processamento dedicadas a cálculos de
física.
• AGEIA, criou a Physx, e foi comprada pela
NVIDIA em Fevereiro/08.
▫ Age of Empires III, Gears of War.
• Havok FX.
▫ Crossfire e SLI.
▫ Half-Life 2, Dead Rising.
▫ Depois da compra pela Intel, sumiu.
Ageia Physx PPU
102
Futuro
• Avanços de hardware trazem, cada vez mais, o
fotorealismo a vários segmentos.
▫
▫
▫
▫
▫
Medicina.
Arquitetura.
Indústria de Games.
Indústria do Cinema.
...
103
Futuro
• Uso intensivo da computação distribuída na
Computação Gráfica.
Futuro
• http://www.youtube.com/watch?v=vg0lzlguHmE
Perguntas?
Download

Fotorealismo