A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Non-Photorealistic Rendering

Apresentações semelhantes


Apresentação em tema: "Non-Photorealistic Rendering"— Transcrição da apresentação:

1 Non-Photorealistic Rendering
Ricardo Guerra Marroquim

2 Apresentação Motivação Detecção de Silhuetas Pen-and-Ink Illustration
NPRQuake Watercolor WYSIWYG NPR Bibliografia

3 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?

4 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]

5 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?

6 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

7 Exemplos

8 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.

9 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

10 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.

11 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.

12 Combinando Depth Map e Normal Map

13 Combinando Depth Map e Normal Map

14 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.

15 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.

16 Detecção de Silhuetas em Superfícies
As superfícies são geralmente aproximações ou interpolações de uma malha

17 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:

18 Detecção de Silhuetas em Superfícies
Depois conecta-se todos os pontos encontrados formando uma curvas de silhuetas

19 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

20 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.

21 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

22 Pen-and-Ink Illustration

23 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.

24 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.

25 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.

26 Pen-and-Ink Illustration

27 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.

28 Pen-and-Ink Illustration

29 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

30 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

31 NPR Quake

32 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

33 NPR Quake

34 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

35 NPR Quake

36 Aquarela Cassidy Curtis, Sean Anderson, Joshua Seims, Kurt Fleischer, David Salesin – “Computer-Generated Watercolor” – SigGraph 97 Como simular os efeitos de uma aquarela automaticamente.

37 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.

38 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.

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

40 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.

41 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.

42 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.

43 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.

44 Aquarela Efeitos (cont.) : d) Granulação : e) Flow patterns :
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.

45 Aquarela Original : Simulação :

46 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.

47 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

48 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”

49 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

50 Aquarela

51 Aquarela

52 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

53 WYSIWYG NPR

54 WYSIWYG NPR Background Base coat
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

55 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.

56 WYSIWYG NPR Papel Simulação de efeitos do 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

57 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

58 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.

59 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

60 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.

61 WYSIWYG NPR Structured Hatching Free 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

62 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.

63 Bibliografia C. Curtis, S. Anderson, J. Seims, K. Fleischer, and D. Salesin, Computer-generated watercolor. SigGraph 97. G. Winkenbach and D. Salesin, 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,

64 FIM


Carregar ppt "Non-Photorealistic Rendering"

Apresentações semelhantes


Anúncios Google