1 / 64

Non-Photorealistic Rendering

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

kevyn
Télécharger la présentation

Non-Photorealistic Rendering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

More Related