640 likes | 740 Views
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
E N D
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
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.
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 • 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 • 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.
NPRQuake • Grupo sobre a orientação do professor Michael Gleicher da Universidadede 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 • 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 • 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
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