Non-Photorealistic Rendering
Ricardo Guerra Marroquim
Apresentação
•
•
•
•
•
•
•
Motivação
Detecção de Silhuetas
Pen-and-Ink Illustration
NPRQuake
Watercolor
WYSIWYG NPR
Bibliografia
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?
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]
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?
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
Exemplos
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.
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
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.
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.
Combinando Depth Map e Normal Map
Combinando Depth Map e Normal Map
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.
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.
Detecção de Silhuetas em Superfícies
• As superfícies são geralmente aproximações
ou interpolações de uma malha
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:
Detecção de Silhuetas em Superfícies
• Depois conecta-se todos os pontos
encontrados formando uma curvas de
silhuetas
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
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.
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
Pen-and-Ink Illustration
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.
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.
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.
Pen-and-Ink Illustration
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.
Pen-and-Ink Illustration
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
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
NPR Quake
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
NPR Quake
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
NPR Quake
Aquarela
• Cassidy Curtis, Sean Anderson, Joshua
Seims, Kurt Fleischer, David Salesin –
“Computer-Generated Watercolor” –
SigGraph 97
• Como simular os efeitos de uma aquarela
automaticamente.
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.
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.
Aquarela
• A simulação do fluído é realizada em três
camadas:
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.
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.
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.
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.
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.
Aquarela
• Original :
• Simulação :
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.
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
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”
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
Aquarela
Aquarela
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
WYSIWYG NPR
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
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.
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
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
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.
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
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.
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
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.
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
FIM
Download

Non-Photorealistic Rendering