64
Non-Photorealistic Rendering Ricardo Guerra Marroquim

Non-Photorealistic Rendering Ricardo Guerra Marroquim

Embed Size (px)

Citation preview

Page 1: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Non-Photorealistic Rendering

Ricardo Guerra Marroquim

Page 2: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Apresentação

• Motivação

• Detecção de Silhuetas

• Pen-and-Ink Illustration

• NPRQuake

• Watercolor

• WYSIWYG NPR

• Bibliografia

Page 3: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Motivação• Até então ....

– Técnicas de renderização realísticas– Criação de um modelo geométrico– Projeção do modelo 3D para 2D– Computar modelo de iluminação– Detalhamento (sombras, texturas)– .....

• É possível gerar uma imagem que seja confundida com uma imagem real, uma fotografia por exemplo?

Page 4: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Motivação

• Nem sempre imagens fotográficas são a melhor escolha de representação

• “De que serve a fotografia para um mecânico quando ele tem o motor em sua frente” [Landsdown]

• “Arquitetos rabiscam sobre as imagens computadorizadas para criar a impressão de esboço, assim os clientes não tem a falsa impressão de integralidade.” [Markosian]

Page 5: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Motivação• Em algumas situações realismo não é prioridade:

– Cartoons

– Pinturas artísticas

– Desenhos Técnicos

– Visualização Cientifica

• É possível gerar uma imagem que seja confundida com um desenho feito a mão por uma pessoa?

Page 6: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Motivação

• Menos detalhes -> Melhor visualização e entendimento das imagens

• Menos tempo para criar e renderizar

• Ocupa menos espaço

• Expressão artística

Page 7: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Exemplos

Page 8: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Detecção de Silhuetas

• Aaron Hertzmann – “Introduction to 3D Non-Photorealistic Rendering : Silhouettes and Outlines” – SigGraph 99 Course

• Algoritmos para detecção de contornos de objetos em 2D e 3D.

Page 9: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Detecção de Silhuetas• Maneira simples :

– Renderizar a cena de uma visão escolhida– Detectar as bordas da imagem– Desenhar as bordas

• Porém as bordas de uma fotografia geralmente não correspondem as silhuetas desejadas.

• Uma imagem muita detalhada pode produzir muitos contornos que são irrelevantes para o formato do objeto

• Nenhuma borda é detectada entre dois objetos sobrepostos com a mesma cor

Page 10: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Depth Map• Depth Map (Mapa de Profundidade) : imagem

onde a densidade de cada pixel é proporcional a profundidade daquele ponto na cena

• Uma maneira melhor de detecção de silhuetas:– Renderizar a imagem

– Extrair o mapa de profundidade

– Detectar as bordas no mapa de profundidade

• Problema : não detecta bordas entre dois objetos que estão na mesma profundidade.

Page 11: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Normal Map• Normal Map : Os valores RGB do ponto

correspondem aos valores XYZ da normal naquele ponto.

• Como calcular o mapa de normais : – Colocar cor branca no objeto– Colocar uma luz vermelha no eixo X, uma verde no eixo

Y e uma azul no eixo Z, todas apontando para o objeto.– Colocar luzes com intensidades negativas nos lados

opostos de cada eixo.– Cada luz irá iluminar um ponto no objeto proporcional

ao produto escalar da normal da superfície com o eixo da luz.

Page 12: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Combinando Depth Map e Normal Map

Page 13: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Combinando Depth Map e Normal Map

Page 14: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Detecção de Silhuetas em Malhas

• Em malhas a silhueta consiste em todas arestas que ligam uma face de um polígono invisível com uma de um polígono visível.

• Método mais simples percorre toda malha para verificar as normais cada vez que a visão é modificada.

• Outros algoritmos randômizados são mais eficientes.

Page 15: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Detecção de Silhuetas em Superfícies

• Em superfícies suaves a silhueta consiste nos pontos onde a normal da superfície e perpendicular ao vetor da câmera.

Page 16: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Detecção de Silhuetas em Superfícies

• As superfícies são geralmente aproximações ou interpolações de uma malha

Page 17: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Detecção de Silhuetas em Superfícies

• Primeiro deve-se computar o produto escalar normalizado da normal da superfície com o vetor da câmera em cada vértice da malha:

• Depois computa-se o sinal do produto em cada vértice:

• Encontra-se todos pares de vértices na malha com sinais diferentes. Para encontrar o ponto aproximado da silhueta faz-se uma interpolação linear dos vértices:

Page 18: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Detecção de Silhuetas em Superfícies

• Depois conecta-se todos os pontos encontrados formando uma curvas de silhuetas

Page 19: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Pen-and-Ink Illustration

• Georges Winkenbach e David Salesin - “Computer-Generated Pen-and-Ink Illustration” - SigGraph 94

• Propriedades das ilustrações “Pen and Ink”

• Stroke Textures

Page 20: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Pen-and-Ink Illustration• Propriedades dos desenhos:

– A pena não tem variação de cor ou tonalidade, todo sombreamento deve ser feito utilizando traços.

– É manualmente difícil e trabalhoso preencher grandes áreas.

– Ideal para contornos, cada traço pode ter variações na pressão da pena e irregularidades do traçado.

– Imagens simples e diretas.

Page 21: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Pen-and-Ink Illustration• Dualidade dos traços:

– Normalmente a renderização de textura e tonalidade são feitas separadamente.

– Neste caso é preciso que o mesmo traço seja utilizado para textura e tonalidade.

• Combina informações 2D e 3D:– Normalmente as informações utilizadas para renderizar

são 3D e depois projetadas em 2D.– Nas ilustrações pen-and-ink as informações da projeção

2D são tão importantes quanto as informações em 3D.• Precisamos considerar as áreas das projeções para computar a

densidade dos traços.• É preciso usar as adjacências em 2D para criar os contornos

Page 22: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Pen-and-Ink Illustration

Page 23: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Pen-and-Ink Illustration

• Strokes (Traços) :– Coleção de diferentes tipos de traços, cada um

com uma prioridade diferente.– A renderização é feita em ordem de prioridade,

quando se atinge uma tonalidade aceitável não precisa mais renderizar os traços de menor prioridade.

• A escolha da tonalidade certa é feita de acordo com a resolução e o tamanho da imagem.

Page 24: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Pen-and-Ink Illustration• Os traços são escolhidos para prover uma textura e

tonalidade de acordo com o tamanho da ilustração e da resolução da impressão.

• Para desenhos pequenos é preciso de apenas alguns traços sem muitos detalhes de sombreamento.

Page 25: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Pen-and-Ink Illustration• Indicação : Em uma ilustração é importante que a

idéia da textura seja passada sem que seja necessário desenhar todos os traços requeridos.– Desta forma a figura final é mais clara e econômica.

• Neste método o usuário deve escolher em que regiões o desenho deve ser mais detalhado. Nas outras áreas é utilizado o princípio de indicação.

• Cada região escolhida é projetada e associada a textura da superfície em 3D. Quando existem várias regiões de detalhe algumas perturbações são introduzidas para que os padrões não sejam repetidos.

Page 26: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Pen-and-Ink Illustration

Page 27: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Pen-and-Ink Illustration

• Existem também alguns efeitos para os esboços:– O esboço de contornos influenciam as texturas

aplicadas naquela área.– Algumas linhas de contorno são retiradas,

especialmente quando duas áreas adjacentes do desenho possuem texturas bem distintas.

– As texturas de sombras são aplicadas de acordo com a direção da luz.

Page 28: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Pen-and-Ink Illustration

Page 29: Non-Photorealistic Rendering Ricardo Guerra Marroquim

NPRQuake

• Grupo sobre a orientação do professor Michael Gleicher da Universidade de Wisconsin

• Objetivo : Estilização do QuakeGL

• Substituição das rotinas de desenho para alterar traçados e sombreamento

• Três estilos : Sketch, BluePrint, Brush

Page 30: Non-Photorealistic Rendering Ricardo Guerra Marroquim

NPR Quake

• Sketch:– Simulação de uma pessoa rascunhando o

cenário rapidamente– Primeiro desenha os polígonos da parede– Desenha um número arbitrário de retas

deslocadas aleatoriamente das bordas (impressão de rabiscos)

– Adiciona transparência as retas para aumentar realismo

Page 31: Non-Photorealistic Rendering Ricardo Guerra Marroquim

NPR Quake

Page 32: Non-Photorealistic Rendering Ricardo Guerra Marroquim

NPR Quake

• Blue Print :– Simulação de uma planta de construção– Desenhado de forma parecida com a do Sketch

mas sem os deslocamentos das retas– Adicionado alguns detalhes como setas

direcionais da planta e algumas medidas

Page 33: Non-Photorealistic Rendering Ricardo Guerra Marroquim

NPR Quake

Page 34: Non-Photorealistic Rendering Ricardo Guerra Marroquim

NPR Quake

• Brushstroke:– Substitui as bordas dos polígonos por traços de

pincel– Não tem sombreamento– Diferentes larguras e tipos de texturas para

representar os traços

Page 35: Non-Photorealistic Rendering Ricardo Guerra Marroquim

NPR Quake

Page 36: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela

• Cassidy Curtis, Sean Anderson, Joshua Seims, Kurt Fleischer, David Salesin – “Computer-Generated Watercolor” – SigGraph 97

• Como simular os efeitos de uma aquarela automaticamente.

Page 37: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela

• Algumas propriedades da aquarela:– Em pinturas que utilizam tinta e água ao invés

do papel tradicional, utiliza-se um feito de pano prensado para absorver melhor o líquido.

– A aparência final de uma aquarela é o resultado do movimento do pigmentos no meio, da absorção do pigmento e da água, e da evaporação da água.

Page 38: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela• Modelo :

– A imagem é representada como várias pinceladas ordenadas em um pedaço de papel. Cada pincelada pode conter diferentes tipos de pigmentos em diferentes regiões da imagem.

– Uma estrutura de dados, “glaze”, é utilizada para guardar estas quantidades.

– Cada “glaze” é criada independentemente por uma simulação de fluidos para computar o fluxo da tinta pelo papel.

– Também são criadas mascaras para denotar as áreas que foram atingidas por água.

Page 39: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela

• A simulação do fluído é realizada em três camadas:

Page 40: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela• Os valores são discretizados em uma matriz

representando o plano do papel com os seguintes valores:– Máscara de Água : 1 se região está molhada, 0 se não– Velocidade u,v da água na direção x e y– Pressão p da água– Concentração gk de cada pigmento k na água– Concentração dk de cada pigmento k depositado– A inclinação do papel definida como o gradiente da

altura do papel.– Propriedades físicas do papel como viscosidade.

Page 41: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela• A superfície do papel é gerada por uma função

randômica. • Um processo pseudo-aleatório gera as alturas de

cada ponto no papel. 0 < h < 1

• Cada ponto do papel também terá associado um valor correspondente a sua capacidade de armazenamento de água.

Page 42: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela• Movendo água pelo papel:

– A mascara de água delimita a região onde ocorre o fluxo da água

– Quando uma região tem seu limite de água ultrapassado ela é transbordada para as regiões vizinhas.

– A textura do papel influência nos fluxos de água.

– As mudanças locais de uma região devem ter influências globais no modelo.

Page 43: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela• Efeitos aplicados na aquarela :

– a) Drybrush :• Quando o pincel está quase seco ele pode ser aplicado de

forma a aplicar tinta somente nas áreas mais altas do papel deixando alguns espaços na pincelada.

– b) Escurecimento das bordas – “Edge Darkening”:• Quando a tinta é aplicada em um papel seco os pigmentos

tendem a migrar para as bordas. A água evaporada na borda é reposta pela água do interior. Este movimento leva os pigmentos para as bordas escurecendo-as.

– c) Backrun :• Quando uma quantidade de água é espalhada em uma região

ainda humida o pigmento é empurrado para fora daquela região.

Page 44: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela• Efeitos (cont.) :

– d) Granulação :• Quando o pigmento utilizado é granulado ele realça as

variações de altura do papel.

– e) Flow patterns : • Quando a tinta é aplicada em um papel molhado a superfície

permite que o pigmento se espalhe livremente.

– g) Color Glazing : • Várias pinceladas muito finas sobrepostas. Cada pincelada é

aplicada depois que a anterior tenha secado. Mistura ótica das cores ao invés de física.

Page 45: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela

• Original :

• Simulação :

Page 46: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela• Os pigmentos são criados utilizando um coeficiente de

absorção e um de espalhamento para cada componente RGB.

• Estes coeficientes são escolhidos pelo usuário especificando a aparência de um pigmento sobre uma região branca e uma região preta.

Page 47: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela

• “Automatic image watercolorization”

• Primeiro deve-se destacar os elementos mais importantes da imagem e escolher um pigmento para cada.

• A conversão é feita em duas etapas:– Color separation– Brushstroke planning

Page 48: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela• Color Separation:

– Algoritmo força-bruta para encontrar um nível de densidade para cada pigmento.

– Dado uma lista ordenada de n pigmentos, a espessura de cada pigmento é divida em m faixas.

– Cada combinação mn é guardada em uma árvore 3D de acordo com seus valores RGB.

– Para cada pixel a separação de cores é computada procurando na árvore o pigmento mais próximo da cor desejada.

– Estes pixels computados são guardado na imagem “target glaze”

Page 49: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela

• Brushstroke planning:– Controla o glaze acrescentando novas

pinceladas– Controla o fluxo da água aumentando ou

diminuindo a pressão da água aonde o pigmento foi adicionado

Page 50: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela

Page 51: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Aquarela

Page 52: Non-Photorealistic Rendering Ricardo Guerra Marroquim

WYSIWYG NPR• Robert Kalnins, Lee Markosian, Barbara Meier,

Michael Kowalski, Joseph Lee, Philip Davidson, Mathew Webb, John Hughes, Adam Finkelstein – “WYSIWYG NPR: Drawing Strokes Directly on 3D Models” – SigGraph 2002

• WYSIWYG – What You See Is What You Get• Estilização automática de um modelo de uma

malha triangular a partir de alguns traços de exemplo

Page 53: Non-Photorealistic Rendering Ricardo Guerra Marroquim

WYSIWYG NPR

Page 54: Non-Photorealistic Rendering Ricardo Guerra Marroquim

WYSIWYG NPR

• Background– Pode escolher a cor ou uma imagem de fundo

• Base coat– Um sombreamento que desenha os triângulos

em um determinado estilo• “Toon shader”

• Solid Color

Page 55: Non-Photorealistic Rendering Ricardo Guerra Marroquim

WYSIWYG NPR• Traços :

– O caminho do traçado é representado como uma spline CatmullRom.

– Renderizados como “triangle strips” que seguem o traçado.

– Como os triangles strips geralmente se misturam um pouco com a superfície não é utilizado o z-buffer.

– A visibilidade é computada utilizando um ID de referencia. Cada face da malha, silhueta e borda é renderizada utilizando uma cor única.

Page 56: Non-Photorealistic Rendering Ricardo Guerra Marroquim

WYSIWYG NPR• Papel

– Utiliza os campos de altura da aquarela

• Simulação de efeitos do papel– Pode ser aplicado efeito

em qualquer primitiva semi-transparente : imagem de fundo, toon shader, ou traço.

– Aonde a altura do papel é maior o pigmento é absorvido mais facilmente

Page 57: Non-Photorealistic Rendering Ricardo Guerra Marroquim

WYSIWYG NPR• Decal Strokes :

– Desenha-se diretamente na superfície do desenho.

– Representado como “Spline Curves” com os pontos de controle projetados na superfície e renderizados como os outros traços.

• Outra forma seria de realizar o texture mapping:– Problemas:

• Seria necessário parametrizar a superfície

• O tamanho do traço dependeria da obliqüidade da superfície

Page 58: Non-Photorealistic Rendering Ricardo Guerra Marroquim

WYSIWYG NPR• As bordas do objeto podem ser redesenhadas a

partir de alguns traços de exemplo.• Uma lista é gerada com cada vértice do traçado e

um deslocamento perpendicular ao pixel gerado.• Os deslocamentos são reduzidos quando a imagem

é distanciada da câmera.

Page 59: Non-Photorealistic Rendering Ricardo Guerra Marroquim

WYSIWYG NPR• Rubber-stamping : Um traçado exemplo é repetido pelo resto

da figura• Geração de novos traços sintetizados a partir de alguns

exemplos– O algoritmo de síntese utiliza uma cadeia de Markov

aonde cada estado corresponde a um deslocamento do traço exemplo

Page 60: Non-Photorealistic Rendering Ricardo Guerra Marroquim

WYSIWYG NPR

• Silhueta, diferentemente das dobras de um objeto, são dependentes do ângulo de visão.

• Um traço padrão de silhueta é desenhado, quando uma aparece ele é usado para desenha-la.

• Utiliza o algoritmo de detecção de silhuetas em malhas de Hertzmann.

Page 61: Non-Photorealistic Rendering Ricardo Guerra Marroquim

WYSIWYG NPR• Structured Hatching

– Sombreamento utilizando linhas paralelas

– O tamanho e quantidade de linhas varia com a distância do objeto da câmera

• Free Hatching– Como não existe padrão

no sombreamento é necessário que seja feito para várias distancias diferentes do objeto

Page 62: Non-Photorealistic Rendering Ricardo Guerra Marroquim

WYSIWYG NPR

• Mobile Hatching– O sombreamento se move na figura de acordo

com a posição da luz– Utiliza-se um modelo de “luz escura” para

calcular o sombreamento.

Page 63: Non-Photorealistic Rendering Ricardo Guerra Marroquim

Bibliografia• C. Curtis, S. Anderson, J. Seims, K. Fleischer, and D. Salesin, 1997.

Computer-generated watercolor. SigGraph 97.

• G. Winkenbach and D. Salesin, 1994. Computer generated pen-and-ink illustration. SigGraph 94.

• J. Lansdown and S. Schofield. Expressive rendering: A review of nonphotorealistic techniques. IEEE Computer Graphics and Applications, 15(3):29-37, Maio 1995.

• R. Kalnins, L. Markosian, B. Meier, M. Kowalski, J. Lee, P. Davidson, M. Webb, J. Hughes, A. Finkelstein. Wysiwyg npr: drawing strokes directly on 3D models. SigGraph 2002.

• A. Mohr, E. Bakke, A. Gardner, C. Herrman, S. Dutcher. NPRQuake, http://www.cs.wisc.edu/graphics/Gallery/NPRQuake/whatIsIt.html

Page 64: Non-Photorealistic Rendering Ricardo Guerra Marroquim

FIM