NPR: Pen-and-Ink
Helder Geovane Gomes de Lima
[email protected]
Artigo Original
Computer-Generated Pen-and-Ink
Ilustration
●
●
●
Georges Winkenbach
David H. Salesin
SIGGHRAPH 1994
Introdução
Por que usar ilustrações?
●
●
●
●
●
●
Omitir detalhes
Focar aspectos relevantes
Simplificar as formas
Evidenciar pequenos detalhes
Economia de armazenamento
Fácil reprodução
Introdução
●
●
Por que pen-and-Ink?
– As convenções estão bem documentadas
O que foi produzido?
– Como implementar princípios desta
técnica em um sistema automatizado
Sobre pen-and-Ink...
●
●
●
●
●
●
Cor/tom: não disponíveis
Grandes áreas: demorado para preencher
Clarear um tom: é quase impossível
Para esboços: são ideais devido a
expressividade de cada traço:
– Pressão e regularidade
Tom e textura: Expressos simultaneamente
Em textos: Combinam muito bem
Pen-and-Ink: Traços
●
●
●
●
●
Traços finos: clareza
Traços largos: pouco detalhe
Posição da caneta: muda frequentemente,
podendo girar
Não-mecânicos: é bom variar espessura
Ondulações: para um desenho esquemático
ou apenas um rascunho
Pen-and-Ink: Tons e texturas
●
O tom:
–
–
●
●
●
obtido com diversos traços
razão entre tinta preta/papel branco
Variação entre tons: é mais importante que
a exatidão de um tom
Forma dos traços: indica textura, geometria
e a luminosidade
Basta uma “indicação”: não se deve
preencher toda uma superfície com o mesmo
tom
Pen-and-Ink: Contornos
●
Não existem contornos em imagens reais!
–
●
●
●
Incluídos para indicar a forma, onde não
houver textura, ou sua variação
Basta “indicá-los”: assim como as
texturas
Contornos espessos: sombras e destaques
Extremos: podem ser deslocados para não
parecer mecânico
Implementação
●
Leva em conta a relação tom x textura:
–
–
●
Renderização realística: coisas independentes
NPR com Pen-and-Ink: dados simultaneamente
Combina informações 2D e 3D:
– O tamanho da área projetada:
determina a densidade dos traços por textura
–
O contraste entre regiões adjacentes:
influencia o traçado dos contornos
Pipeline: parte típica
●
●
●
●
Modelo:
– Poligonal em 3d
Textura:
– Stroke Textures em lugar de imagens
Visibilidade:
– BSP Tree
Sombras:
– BSP Tree shadow volumes (Chin & Feiner)
Pipeline: Novidades
●
●
●
●
Sub-divisão espacial 2d das superfícies
visíveis usando uma estrutura de halfedge
Ao renderizar texturas é usado um tipo de
hatching em lugar de scan converting
O clipping é baseado em traços em vez de
pixels, para evitar uma aparência mecânica
Outlining: os contornos são colocados tanto
na fronteira quanto no interior dos polígonos
Uma breve descrição
●
Cálculo de superfícies visíveis e sombras
●
Projeção dos polígonos para NDC
●
Geração de uma BSP tree 2D
●
Renderização de cada superfície visível
●
Associação das texturas procedurais com as
superfícies (com o tom adequado)
●
Clipping dos traços
●
Contornos
O algoritmo
M: modelo (uma coleção de polígonos)
●
BspTree: Representação dos polígonos projetados
para NDC
●
PlanarMap: Uma partição de NDC em vértices, arestas
e faces
procedure RenderScene(M):
(BspTree, PlanarMap) <-- VisibleSurfaces(M)
for each visible surface S in M do
Strokes <-- Texture(S, Tone(S))
for each stroke s in Strokes do
Render (ClippedStroke (s, BspTree))
end for
Render(ConstructMinimalOutline(S, PlanarMap))
end procedure
●
Stroke Textures
●
●
●
●
Stroke texture: uma coleção de traços
Traço S: definido por um caminho P(u)
Forma da caneta: dada pela função N(p)
Ondulação e pressão: indicados através de
funções Cw(u) e Cp(u)
Stroke Textures
●
Uma lista de texturas é usada para obter os
diferentes tons de uma textura
Resolução
●
●
Texturas dependem da resolução
Consegue-se evitar situações como:
“Engrossamento” das
linhas
“Excesso”de
linhas
Resolução
●
Exemplo de textura dependente da
resolução:
Indicação é semi-automática
Indicação é semi-automática
Indicação é semi-automática
Indicação
●
A quantidade de textura em cada ponto, é
determinada pelo campo:
●
O campo é perturbado por um pequeno valor
aleatório para não parecer muito regular
Mais sobre o contorno...
●
Cada stroke texture
está associada com
seu próprio estilo de
contorno
Mais sobre o contorno...
●
Minimiza-se o uso de contornos
●
São acentuados onde há relevos ou sombras
●
Dependem da direção do observador
Resultados
●
Foi usado ThinkC em um Macintosh Quadra 700
●
A ilustração consiste de 1073 polígonos
●
Foi computada e impressa em 30 min.
–
22 min. foram gastos para obter o mapa planar
–
O restante foi gasto na renderização em 600dpi
Resultados
Perguntas?
Download

NPR com Pen-and-Ink