• Nenhum resultado encontrado

Renderização não fotorealista

N/A
N/A
Protected

Academic year: 2021

Share "Renderização não fotorealista"

Copied!
33
0
0

Texto

(1)

Renderiza¸

ao n˜

ao fotorealista

INF1339 – Computa¸c˜ao Gr´afica Tridimensional

Waldemar Celes

celes@inf.puc-rio.br – sala 505 RDC

Tecgraf, DI/PUC-Rio

(2)

Non-photorealistic rendering

I Ilustra¸c˜ao t´ecnica

I Cartoon

I Arte

(3)

Renderiza¸c˜

ao de linhas

Renderiza¸c˜ao da malha

Problema: conflito no valor de z

I Rasteriza¸c˜ao de linhas 6= rasteriza¸c˜ao de pol´ıgonos

A

B

(4)

Renderiza¸c˜

ao de linhas

Renderiza¸c˜ao da malha

Problema: conflito no valor de z

I Rasteriza¸c˜ao de linhas 6= rasteriza¸c˜ao de pol´ıgonos

A

B

(5)

Renderiza¸c˜

ao de linhas

Uso de polygon offset

1. Desenha preenchimento com offset positivo

glPolygonOffset(1.0, 1.0); glEnable(GL POLYGON OFFSET FILL);

2. Desenha linhas sem offset

I Simples

I Exige duas passadas I Permite highlight I Pode falhar

(6)

Renderiza¸c˜

ao de linhas

Uso de polygon offset

1. Desenha preenchimento com offset positivo

glPolygonOffset(1.0, 1.0); glEnable(GL POLYGON OFFSET FILL);

2. Desenha linhas sem offset

I Simples

I Exige duas passadas I Permite highlight I Pode falhar

(7)

Renderiza¸c˜

ao de linhas

Uso do stencil buffer

I Para cada pol´ıgono

1. Renderiza linha marcando stencil

glStencilFunc(GL ALWAYS, 1, 1);

glStencilOp(GL KEEP, GL KEEP, GL REPLACE); glEnable(GL STENCIL TEST);

2. Renderiza preenchimento sem fragmentos marcados no stencil

glStencilFunc(GL NOTEQUAL, 1, 1); glStencilOp(GL KEEP, GL KEEP, GL KEEP); glEnable(GL STENCIL TEST);

I Baixo desempenho

(8)

Renderiza¸c˜

ao de linhas

Uso do stencil buffer

I Para cada pol´ıgono

1. Renderiza linha marcando stencil

glStencilFunc(GL ALWAYS, 1, 1);

glStencilOp(GL KEEP, GL KEEP, GL REPLACE); glEnable(GL STENCIL TEST);

2. Renderiza preenchimento sem fragmentos marcados no stencil

glStencilFunc(GL NOTEQUAL, 1, 1); glStencilOp(GL KEEP, GL KEEP, GL KEEP); glEnable(GL STENCIL TEST);

I Baixo desempenho

(9)

Renderiza¸c˜

ao de linhas

Uso de textura 1D I Com multi-textura S 0.0 1.0 level n level n+1 level n+2 1st unit 1.0 1.0 0.0 s 2nd unit 1.0 0.0 1.0 s 3rd unit 0.0 1.0 1.0 s

(10)

Renderiza¸c˜

ao de linhas

Uso de textura 1D I Com multi-textura S 0.0 1.0 level n level n+1 level n+2 1st unit 1.0 1.0 0.0 s 2nd unit 1.0 0.0 1.0 s 3rd unit 0.0 1.0 1.0 s

(11)

Hidden line

Algoritmo

1. Marca z-buffer com preenchimento

I Com polygon offset I Sem afetar color buffer

2. Renderiza linhas

(12)

Hidden line

Algoritmo

1. Marca z-buffer com preenchimento

I Com polygon offset I Sem afetar color buffer

2. Renderiza linhas

(13)

Hidden line

Algoritmo

1. Marca z-buffer com preenchimento

I Com polygon offset I Sem afetar color buffer

2. Renderiza linhas vis´ıveis I Com z-test ligado

3. Renderiza linhas n˜ao vis´ıveis I Com z-test not equal

(14)

Hidden line

Algoritmo

1. Marca z-buffer com preenchimento

I Com polygon offset I Sem afetar color buffer

2. Renderiza linhas vis´ıveis I Com z-test ligado

3. Renderiza linhas n˜ao vis´ıveis I Com z-test not equal

(15)

Haloing

Algoritmo

1. Marca z-buffer com linha grossa

I Com polygon offset I Sem afetar color buffer

2. Renderiza linhas

I Com z-test ligado

Linhas mais grossas podem ocultar linhas vis´ıveis perto dos corners I Uma solu¸c˜ao ´e encurtar as linhas grossas

(16)

Haloing

Algoritmo

1. Marca z-buffer com linha grossa

I Com polygon offset I Sem afetar color buffer

2. Renderiza linhas

I Com z-test ligado

Linhas mais grossas podem ocultar linhas vis´ıveis perto dos corners I Uma solu¸c˜ao ´e encurtar as linhas grossas

(17)

Haloing

Algoritmo

1. Marca z-buffer com linha grossa

I Com polygon offset I Sem afetar color buffer

2. Renderiza linhas

(18)

Toon shading

Caracter´ısticas

I Ilumina¸c˜ao difusa com poucos tons

I Ilumina¸c˜ao especular, em geral, com um tom

I Arestas desenhadas em preto

(19)

Toon shading

Ilumina¸c˜ao difusa com poucos tons

Uso de textura 1D

I Filtro de textura para nearest

s s = f (l · n)

Para evitar aliasing

I Filtro de textura para linear

(20)

Toon shading

Ilumina¸c˜ao difusa com poucos tons

Uso de textura 1D

I Filtro de textura para nearest

s s = f (l · n)

Para evitar aliasing

I Filtro de textura para linear

(21)

Toon shading

Ilumina¸c˜ao difusa com poucos tons

Uso de textura 1D

I Filtro de textura para nearest

s s = f (l · n)

Para evitar aliasing

I Filtro de textura para linear

(22)

Toon shading

Ilumina¸c˜ao especular com um tom

Uso de textura 1D

I Filtro de textura para linear

(23)

Toon shading

Ilumina¸c˜ao especular com um tom

Uso de textura 1D

I Filtro de textura para linear

(24)

Toon shading

Renderiza¸c˜ao das arestas em preto

I Identificar arestas em pr´e-processamento

I Para cada aresta

(adjacente a dois triˆangulos) cos−1(n0· n1) > 60o

(25)

Toon shading

Renderiza¸c˜ao das arestas em preto

I Identificar arestas em pr´e-processamento

I Para cada aresta

(adjacente a dois triˆangulos) cos−1(n0· n1) > 60o

(26)

Toon shading

Renderiza¸c˜ao da silhueta

M´etodos

I Processamento no espa¸co do objeto

I Para cada aresta, em cada quadro

I Arestas que tem triˆangulos adjacentes: front & back

I Renderiza¸c˜ao direta com textura

(27)

Toon shading

Renderiza¸c˜ao da silhueta

M´etodos

I Processamento no espa¸co do objeto

I Para cada aresta, em cada quadro

I Arestas que tem triˆangulos adjacentes: front & back

I Renderiza¸c˜ao direta com textura

(28)

Toon shading

Renderiza¸c˜ao da silhueta

M´etodos

I Processamento no espa¸co do objeto

I Para cada aresta, em cada quadro

I Arestas que tem triˆangulos adjacentes: front & back

I Renderiza¸c˜ao direta com textura

(29)

Toon shading

Renderiza¸c˜ao direta da silhueta com textura

I Uso de sphere mapping

(30)

Toon shading

Renderiza¸c˜ao direta da silhueta com textura

(31)

Toon shading

Renderiza¸c˜ao direta da silhueta com back face

1. Desenha front faces

2. Desenha silhueta

I Alternativa 1: Desenha arestas das back faces em preto I Com uso de polygon offset

I Pode variar espessura

I Alternativa 2: Desenha back faces em preto I Valor do offset controla espessura da silhueta

(32)

Toon shading

Renderiza¸c˜ao direta da silhueta com back face

1. Desenha front faces

2. Desenha silhueta

I Alternativa 1: Desenha arestas das back faces em preto I Com uso de polygon offset

I Pode variar espessura

I Alternativa 2: Desenha back faces em preto I Valor do offset controla espessura da silhueta

(33)

Toon shading

Renderiza¸c˜ao direta da silhueta com back face

1. Desenha front faces

2. Desenha silhueta

I Alternativa 1: Desenha arestas das back faces em preto I Com uso de polygon offset

I Pode variar espessura

I Alternativa 2: Desenha back faces em preto I Valor do offset controla espessura da silhueta

Referências

Documentos relacionados

Dessa forma, este projeto tem como objetivo implementar ações para a promoção e prevenção em saúde visual em escolares no território adscrito ao PSF Vale das Videiras,

ções socioeconómicas são, de facto, práticas educativas estratégicas. Através delas, os alunos procuram satisfazer os seus interesses esco- lares presentes e profissionais

(Exame de Ordem 2010.2) A respeito do regime legal da prescrição no Código Penal, tendo por base ocorrência do fato na data de hoje, assinale a alternativa correta. a) A

• Aparelhos mais sofisticados e de grife podem custar até

Verificar o potencial fitorremediador das espécies aquáticas Eichhornia crassipes e Pistia stratiotes na fitorremediação das águas poluídas do Córrego Santa Rita, Araxá

Um avanço recente à terapia do câncer de mama foi a descoberta do trastuzumabe, sendo o primeiro anticorpo monoclonal com atividade clínica de- monstrada para o uso de pacientes

Metodologia para a criação de objetos de aprendizagem em realidade virtual A metodologia aqui proposta, para a utilização da linguagem VRML em aplicações educacionais,

No ano de 2013, atuou como piloto contratado pela equipe Voxx Racing para a temporada da Stock Car (Circuito Nova Schin) e como piloto convidado para compor a equipe BMW Sports