4
PROCESSO DE DETECÇÃO E SÍNTES DE CONTORNOS NO CEL SHADING UTILIZANDO FILTROS DIGITAIS Daker Fernandes Pinheiro CIn - UFPE ABSTRACT Non-photo-realistic methods are becoming more usual in many media formats. Cel Shading is one of the most used techniques which transforms 3D models into non-photo- realistics images used in the market. This article aims to show one of the most eficient techniques based on digital filtering for the detection and synthesis of contours in Cel Shading and its limitations. Index TermsCel Shading, Rendering, Edge Detection, Digital Filter, Ink Synthesis ABSTRACT Métodos de vizualização não foto-realísticas são cada vez mais comuns nos diversos tipos de mídia. O Cel Shading é uma das principais técnicas de transformar modelos 3D em imagens não foto-realísticas utilizadas no mercado. Esse ar- tigo visa mostrar uma das técnicas mais eficientes baseada no uso de filtros digitais para a detecção e síntese de contornos de objetos no Cel Shading e suas limitações. Index TermsCel Shading, Renderização, Detecção de Arestas, Filtros Digitais, Síntese de Linhas 1. INTRODUÇÃO O Cel Shading é uma técnica de visualização de modelos 3D que não tem o foto-realismo como foco, tentando incorpo- rar elementos de imagens desenhadas no processo de shading [1]. O principal passo para uma técnica de shading ser con- siderada um cel shading é a quantização da cor sobre uma palheta de cores [3]. Essa técnica é aplicada a filmes e jogos para dar um ar mais lúdico a mídia com a vantagem de pou- par o trabalho de fazer ilustrações manualmente. No caso dos jogos, é um fator ainda mais crucial porque fazer jogos mais complexos sem modelos 3D é impraticável. Para realizar um Cel-Shading existem várias técnicas co- nhecidas mas a que quase todas as implementações involvem três passos bem estabelecidos. A primeira é a renderização do modelo 3D utilizando alguma técnica de shading qualquer como por exemplo Flat, Gouraud, Phong ou Ray Tracing [4]. Com a cena renderizada o próximo passo é a quantização das cores da cena, isso ajuda a dar um ar cartoon a cena já que os objetos ficarão com áreas grandes com cores uniformes, Fig. 1. Cena do jogo Viewtiful Joe que utiliza Cel Shading [5]. Fig. 2. Cena do filme Iron Giant que também utiliza a técnica [6]. como se fossem desenhados [2]. O último passo é o desenho do contorno, ou síntese de linhas, dos objetos da cena para dar a ideia da tinta das linhas feitas à mão seja ela com um lápis, caneta, pincel ou até mesmo feito por uma pessoa desenhando em um editor gráfico 2D. Para o desenho de contorno de objetos existem diver- sas técnicas de detecção e desenho dentre as quais duas são as mais utilizadas. Uma dessas técnicas é o "backface cul- ling"que utiliza a geometria dos objetos para criar as regiões de bordas como o shading. A outra técnica utiliza processa- mento de imagem para criar o efeito de bordas nos objeto. Esse artigo irá focar nas estrategias de desenho de bordas para o modelo 3D utilizando técnicas de detecção de arestas baseada em filtros digitais seletores de frequência. Este artigo traz na seção 2 uma análise das informações que podem obtidas por adaptações dos algoritmos de renderi- zação já existentes para detecção e síntese de arestas. A seção 3 traz a descrição do processo de detecção de arestar a par-

PROCESSO DE DETECÇÃO E SÍNTES DE CONTORNOS ...cin.ufpe.br/~dfp/files/PG/cel-shading.pdfde bordas como o shading. A outra técnica utiliza processa-mento de imagem para criar o efeito

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • PROCESSO DE DETECÇÃO E SÍNTES DE CONTORNOS NO CEL SHADING UTILIZANDOFILTROS DIGITAIS

    Daker Fernandes Pinheiro

    CIn - UFPE

    ABSTRACTNon-photo-realistic methods are becoming more usual inmany media formats. Cel Shading is one of the most usedtechniques which transforms 3D models into non-photo-realistics images used in the market. This article aims toshow one of the most eficient techniques based on digitalfiltering for the detection and synthesis of contours in CelShading and its limitations.

    Index Terms— Cel Shading, Rendering, Edge Detection,Digital Filter, Ink Synthesis

    ABSTRACTMétodos de vizualização não foto-realísticas são cada vezmais comuns nos diversos tipos de mídia. O Cel Shading éuma das principais técnicas de transformar modelos 3D emimagens não foto-realísticas utilizadas no mercado. Esse ar-tigo visa mostrar uma das técnicas mais eficientes baseada nouso de filtros digitais para a detecção e síntese de contornosde objetos no Cel Shading e suas limitações.

    Index Terms— Cel Shading, Renderização, Detecção deArestas, Filtros Digitais, Síntese de Linhas

    1. INTRODUÇÃO

    O Cel Shading é uma técnica de visualização de modelos 3Dque não tem o foto-realismo como foco, tentando incorpo-rar elementos de imagens desenhadas no processo de shading[1]. O principal passo para uma técnica de shading ser con-siderada um cel shading é a quantização da cor sobre umapalheta de cores [3]. Essa técnica é aplicada a filmes e jogospara dar um ar mais lúdico a mídia com a vantagem de pou-par o trabalho de fazer ilustrações manualmente. No caso dosjogos, é um fator ainda mais crucial porque fazer jogos maiscomplexos sem modelos 3D é impraticável.

    Para realizar um Cel-Shading existem várias técnicas co-nhecidas mas a que quase todas as implementações involvemtrês passos bem estabelecidos. A primeira é a renderizaçãodo modelo 3D utilizando alguma técnica de shading qualquercomo por exemplo Flat, Gouraud, Phong ou Ray Tracing [4].Com a cena renderizada o próximo passo é a quantização dascores da cena, isso ajuda a dar um ar cartoon a cena já queos objetos ficarão com áreas grandes com cores uniformes,

    Fig. 1. Cena do jogo Viewtiful Joe que utiliza Cel Shading[5].

    Fig. 2. Cena do filme Iron Giant que também utiliza a técnica[6].

    como se fossem desenhados [2]. O último passo é o desenhodo contorno, ou síntese de linhas, dos objetos da cena para dara ideia da tinta das linhas feitas à mão seja ela com um lápis,caneta, pincel ou até mesmo feito por uma pessoa desenhandoem um editor gráfico 2D.

    Para o desenho de contorno de objetos existem diver-sas técnicas de detecção e desenho dentre as quais duas sãoas mais utilizadas. Uma dessas técnicas é o "backface cul-ling"que utiliza a geometria dos objetos para criar as regiõesde bordas como o shading. A outra técnica utiliza processa-mento de imagem para criar o efeito de bordas nos objeto.Esse artigo irá focar nas estrategias de desenho de bordaspara o modelo 3D utilizando técnicas de detecção de arestasbaseada em filtros digitais seletores de frequência.

    Este artigo traz na seção 2 uma análise das informaçõesque podem obtidas por adaptações dos algoritmos de renderi-zação já existentes para detecção e síntese de arestas. A seção3 traz a descrição do processo de detecção de arestar a par-

  • tir dos dados obtidos conforme específicados na seção 2. Aseção 4 mostra como as informações das arestas obtidas na se-ção 3 podem ser combinadas para síntetizar linhas na imagemfinal. Por fim temos uma análise sobre a área e este artigo.

    2. INFORMAÇÕES DISPONÍVEIS PARA DETECÇÃODE CONTORNOS

    Duas informações valiosas que podem ser extraídas de mo-delos geométricos de objetos são as o normais da superfíciedo objeto e a distância entre objetos, que o sistema ótico hu-mano utiliza para consiguir distinguir objetos. Essa distinçãodos objetos como peças separadas são expressas pelo homemquando vai desenhar objetos. A detecção de arestas de ima-gens fotográficas é um problema bastante complexo devido agrande perda de informação de distâncias e forma da superfí-cie dos objetos reais. Os dispositivos de captura de imageminserem esse erro devido a projeção (perspectiva ou ortogo-nal) que devem ser impostas a cena para ser transformada emimagem. Apesar das informações de superfície e distânciasentre os objetos serem perdidas na captura de cenas reais, es-sas informações podem ser facilmente extraídas no processode renderização de uma cena virtual já que o que está sendomanipulado são modelos geométricos precisos. A informa-ção de arestas extraída diretamente da imagem serem úteispara encontrar regiões de contorno, no entanto podem con-fundir regiões de contorno com diferenças de textura dentrode um objeto, tornando o uso de filtros de diferenciação diretona imagem muito menos confiáveis.

    2.1. Mapa de profundidade

    As implementações existentes de Phong e Gouraud Shaddinggeralmente utilizam o algoritmo de visualização Z-Bufferpara decidir conflitos de quais objetos devem aparecer nafrente dos outros [7][8]. O Z-Buffer mapeia cada pixel daimagem com a profundidade do objeto correspondente ao pi-xel para decidir se um outro objeto, dada a sua pronfundidade,se ele deve ficar na frente ou não do pixel que já está no bufferde renderização. Como produto do algoritmo temos o mapade profundidade da cena em mãos, o que é uma informaçãopreciosa para definir regiões de contorno. Algoritmos maisrebuscados como o Ray Tracing e suas variações não utilizamo Z-Buffer, porém o mapa de profundidade pode facilmenteser computado.

    2.2. Mapa de normais

    O mapa de normais (ınormal map) de uma cena é uma cons-trução similar ao mapa de profundidade, mas ao invés de ma-pear a profundidade do pixel pintado, o mapeamento é feitoem relação ao vetor normal da superfície que o pixel em ques-tão representa. Ao contrário do Z-Buffer que já nos dá o mapa

    Fig. 3. Representação gráfica do mapa de profundidade emuma cena a luminânica da cor é proporcional a distancia doponto em relação a camera.

    de profundidade como subproduto. O mapa de normais nor-malmente não é armazenados, porém o cálculo das mesmassão realizados para calcular a cor da superfície em pontos es-pecíficos, então o do mapa de normais poderá ser facilmenteadaptado a qualquer um dos algoritmos de visibilidade. Valeressaltar que o vetor normal da superfície é armazenado comoo seu versor.

    Fig. 4. Representação gráfica do mapa de normais de objetosdiversos, onde as componentes de cor definem a direção dovetor normal de cada pixel.

    3. TÉCNICAS DE DETECÇÃO DE CONTORNO EMMODELOS 3D

    Com o mapa de normais e o de profundidade em mãos, atarefa de encontrar as regiões de contorno se tornam muitomais plausível do que se tivéssemos apenas a imagem comoinformação. Para efetuar a detecção das arestas os dois ma-pas são análisados separadamente (possívelmente em para-lelo). Quando as informações não puderem ser extraídas deum mapa poderão ser extraídas de um dos mapas. O outromapa servirá como complemento para extrair tais informa-ções. A seguir mostrarei como ocorre a detecção em cadamapa.

  • 3.1. Detecção de contornos a partir do mapa de profun-didade

    Sempre que temos objetos em cena uma forma de descobrir-mos que são objetos distintos é examinar quando a distânciadeles é diferente, ou seja, um objeto vai estar sobreposto ouocludido em parte por outro objeto da cena. Com o mapa dedistância, se deterctarmos mudança brusca de distâncias en-tre a distâncias de dois pixels da imagem, então aquilo denotao limite entre objetos. Para encontrar esse tipo de variação,um filtro de Sobel geralmente é utilizado, porém qualquer ou-tro filtro de detecção de arestas é adequado para essa aplica-ção. Após a aplicação do filtro, é necessário um valor de cortepara estabelecer se o valor do mapa de profundidade corres-ponde ou não uma aresta. Quanto maior o valor no pixel, maisbrusca foi a transição de distância entre os pontos da imagem.Esse valor deve ser testado para vários ângulos e situaçõespara que haja a minimização tanto das falsas arestas sendodetectadas quanto das arestas que não foram detectadas. Esseprocesso de discretizar uma imagem em menos informaçõesé chamado de quantização e também é bastante útil em outrastécnicas de processamento de imagem.

    Fig. 5. Aplicação do filtro de Sobel sem quantização em ummapa de profundidade com valor de corte arbitrário.

    3.2. Detecção de contornos a partir do mapa de normais

    O mapa de normais nos auxilia a detectar arestas porque con-tém a informações das transições bruscas entre os vetores nor-mais da superfície que significa que temos na imagem umaregião de objetos com bordas "pontudas"que faz a normalde um ponto modificar bastante o ângulo em uma pequenadistância do espaço. A detecção de arestas no mapa de nor-mais é bem similar ao que é realizado no mapa de profun-didade, a diferença é que o mapa de normais é composto detrês camadas, cada uma representando a coordenada x, y e zdo versor da normal em cada pixel. A diferença deve apa-recer como o ângulo entre os vetores normais da superfície:cos(u, v) = 〈u, v〉. Como o fator de discretização deve serapenas um threshold, então podemos utilizar a distância eu-clidiana entre pontos que a função cosseno está diretamenterelacionada. Como o espaço de versores pode ser visto como

    a superficie de uma esfera de raio r, onde r = 1, afirma-ção anterior se aplica, mesmo a relação distância-ângulo nãosendo linear, porém uma é crescente em função da outra, e oque necessitamos é apenas da informação de quem está acimaou abaixo de um dado limiar.

    Uma forma mais rápida de fazer a análise de mudançabrusca de direção é aplicar o mesmo processo de filtragemutilizado no mapa de profundidade para cada camada e somaras camadas e aplicar a quantização binária. Note que isso ébem similar ao processo descrito anteriormente só que ele jácalcula a contribuição de cada camada do mapa de normaispara a mudança de ângulo e depois combina com uma soma(como no cálculo de distância).

    É importante notar que pode ocorrer aliasing quando umaregião é muito detalhada ou está muito distante do observa-dor. Para minimizar os efeitos colaterais da filtragem no mapade normais seria utilizar um filtro adaptativo que levasse emconta a profundidade do pixel no processo de filtragem domapa de normais. Outra alternativa é não utilizar as arestasdetectadas por esse processo quando a distância do pixel pas-sar uma distância limiar, para evitar inserir esse tipo de errona cena. Apesar desses erros serem bastante comuns em ce-nas genéricas, porém as cenas onde o cel-shading é aplicadocostuma ser minimalista, já que a intenção é parecer algo feitoa mão.

    Fig. 6. Aplicação do filtro de Sobel sem quantização em ummapa de normais.

    4. COMBINANDO AS INFORMAÇÕES

    Com os mapas de contorno gerados a partir dos mapas denormais e de profundidade basta fazer uma operação de ORbinário para cada pixel dos mapas de contornos e gerar comoresultado o mapa de contorno identificados pelas duas formas.Agora basta executar uma multiplicação pixel a pixel com omapa de cores para adicionar as bordas pretas ao desenho. Opasso de desenho de arestas funciona com ou sem a quanti-zação da imagem, porém a quantização ajuda mais a dar o arcartoon às imagens geradas.

    As regiões de contorno nem sempre são geradas de uma

  • Fig. 7. Overview do processo de obtenção do mapa de con-tornos. Retirado de [2].

    forma que ficariam como se tivessem sido desenhados a mão.Para esse problema não existe solução definitiva apesar dejá termos bons resultados como por exemplo o jogo Okami[9]. O que normalmente é feito é um pós processamento ma-nual ou supervisionado para corrigir defeitos da automaçãodo cel shading em filmes e animações, mas em aplicações emtempo real não é possível corrigir. Existem algumas aborda-gens como em [10] que tentam descrever um padrão de comoa tinta interage com papel e o como é o padrão de traços eforça que seres humanos exercem no papel ou tela quandodesenham.

    Fig. 8. Combinação do mapa de cores com o mapa de contor-nos para gerar a imagem final.

    5. CONCLUSÃO

    Apesar do Cel Shading como um todo ser uma técnica quejá é bem aplicada na indústria, boa parte do processo aindanão é automatizavel com perfeição de forma a tornar o de-senho das arestas mais natural. A área de síntese realistade linhas merece mais investigações para encontrar mode-los que descrevem a interação tinta-homem-papel de maneiramais próxima ao natural. Algumas informações mais precisascomo a correlação distância-orientação da superfície poderiaser melhor utilizada para obter melhores sínteses. Outra in-formação que geralmente é deixada de fora é a morfologiadas curvas dos contornos dos objetos, que pode acentuara di-ferença da síntese de partes mais curvas ou retas de um de-senho, como ocorre quando desenhamos um desenho ondedetalhamos mais algumas partes do que outras.

    6. REFERENCES

    [1] Wikipedia Cel Shading Article. Disponívelem http://en.wikipedia.org/wiki/Cel-shaded_animation.

    [2] Cartoon-Looking Rendering of 3D-Scenes Philippe De-caudin. June 1996.

    [3] Real-Time Rendering of Cartoon Smoke and Clouds Mor-gan McGuire, Andi Fein. June 2006.

    [4] Super Cel Shader 1.00 Tips and Tricks. Disponí-vel em http://www.celshader.com/classic/celshade.html.

    [5] Jogo Viewtiful Joe. Informações disponíveis em http://www.capcom.com/vj/.

    [6] Filme Iron Giant. Informações disponíveis em http://www.warnervideo.com/irongiantdvd/.

    [7] OpenGL & OpenGL Utility Specifications. Disponível emhttp://www.opengl.org/documentation/specs/.

    [8] Phong Shading and Gouraud Shading XichunJennifer Guo e Bruce Land. Disponível emhttp://www.nbb.cornell.edu/neurobio/land/oldstudentprojects/cs490-95to96/guo/report.html. 1996.

    [9] Jogo Okami. Informações disponíveis em http://www.okami-game.com/.

    [10] Simple Cellular Automaton-based Simulation of InkBehaviour and Its Application to Suibokuga-like 3D Ren-dering of Trees Qing Zhang, Youetsu Sato,Jun-ya Ta-kahashi, Kazunobu Muraoka and Norishige Chiba. 1999John Wiley & Sons, Ltd.