Texturização de Imagens Digitais Realistas: Comparativo entre as Técnicas de Bump Mapping e Ray Tracing Aplicadas a um Modelo em Três Dimensões da Face Humana. Rafael de A. Soares, Alex Telocken, Patricia Mozzaquatro Chicon Abstract. This paper explores the use of the techniques of Ray Tracing and Bump Mapping in the synthesis of realistic images in order to compare them and qualify them both applied in the animation of a human face in three dimensions, this context is possible only fair that the two techniques, but apply different effects, have the same goal which is the realistic representation of the face. Thus it is necessary to obtain the results modeling and the creation of a computer system that will allow qualitative assessment techniques. Resumo. Este trabalho explora a utilização das técnicas de Ray Tracing e Bump Mapping na texturização na síntese de imagens realistas, a fim de compara-las e qualifica-las ambas aplicadas na animação de uma face humana em três dimensões, este contexto se torna possível justo que as duas técnicas, embora apliquem efeitos diferentes, possuem o mesmo objetivo que é a representação realista da face. Deste modo se faz necessário para a obtenção dos resultados a modelagem e a criação de um sistema computacional que permitirá a avaliação qualitativa das técnicas. 1. INTRODUÇÃO Com os avanços em termos de hardware e software, a computação gráfica vem ocupando cada vez mais espaço no cotidiano do ser humano, seja ela na forma de entretenimento, medicina, geologia, astronáutica e os mais variados ramos da informática. A síntese de imagens esta interligada intimamente com esses avanços, pois desde seu surgimento instiga a criação de novas tecnologias que possam reproduzir virtualmente o mundo real. As técnicas de texturização de imagens digitais são fundamentais para similar realismo em animações, jogos e efeitos especiais, dentre elas cita-se a técnica de Ray Tracing que é utilizada para simular sombreamento, reflexão, iluminação e transparência em aplicações gráficas de acordo com Glassner (1989) e o método de Bump Mapping, que utiliza uma abordagem mais simples de acordo com Azevedo e Conci (2003), tendo como objetivo perturbar a normal, fazendo com que a superfície do objeto adquira um aspecto rugoso, o que para a visão humana torna mais realista a sua representação. O presente trabalho trata de uma análise comparativa entre estas duas premissas, a fim de verificar qual possui melhor qualidade de realismo, aplicados em um ambiente gráfico, modelado em três dimensões. Está analise se dará através da implementação de um Sistema que permitirá aplicar e demonstrar as técnicas em duas modalidades, uma individualmente e a outra de forma unificada, a fim de capturar a opinião dos usuários em função do nível de realismo apresentado em cada modalidade. Em termos computacionais, este estudo possibilitará identificar por meios qualitativos qual das técnicas, levando-se em consideração o contexto proposto, é a mais viável e passível de ser utilizada. Pelo âmbito social, percebe-se que o realismo em texturas é um aspecto essencial, além da movimentação e sonorização, para aperfeiçoar a qualidade das animações, efeitos visuais, simulações e representações virtuais do mundo real, sendo assim justifica-se a análise qualitativa dos resultados que serão obtidos. 2. COMPUTAÇÃO GRÁFICA O surgimento da computação gráfica (C.G.) aconteceu com a criação dos dispositivos gráficos por volta da década de 50, onde o primeiro computador a possuir recursos de visualização gráfica de dados foi desenvolvido, no intuito de representar graficamente informações numéricas. Na década de 60 surge o conceito da C.G. interativa da forma como conhecemos hoje, isso possibilitou a criação de programas de modelagem gráfica para as indústrias automobilísticas, aeronáuticas e aeroespaciais, o que trouxe um dos precursores dos sistemas Computer Aided Design (CAD). (COHEN; MANSSOUR, 2006). Um marco no histórico da C.G foi à evolução dos circuitos integrados, o que proporcionou a popularização dos computadores pessoais (PCS) juntamente com os aplicativos integrados, como os editores gráficos. Outro fato importante foi o crescimento da capacidade dos PCS e das placas de processamento gráfico o que permitiu a geração e processamento de imagens com alto nível de realismo em tempo real. (COHEN; MANSSOUR, 2006). A C.G. pode ser vista como uma forma de arte não convencional utilizada para ultrapassar as técnicas tradicionais de desenho e modelagem, unindo a matemática, tecnologia e senso artístico, proporcionando ao artista um alto poder de abstração e criação de imagens complexas até então não imaginadas, segundo Azevedo e Conci (2003). Atualmente a C.G. de acordo com Azevedo e Conci (2003) está presente em muitos ramos do conhecimento, dentre eles cita-se a medicina, aeronáutica, cinema, construção civil entre outras, ela pode ser compreendida em três grandes subáreas: o processamento, a análise e a síntese de imagens digitais. O processamento tem por objetivo utilizar técnicas de transformação, para melhorar ou realçar características visuais de uma imagem de acordo com a sua finalidade. A análise por sua vez tem como característica a obtenção de dados muitas vezes após o processamento, como se observa no uso de imagens de satélite para definição de condições climáticas. A síntese de imagens pode ser descrita como visualização científica ou computacional, pois é voltada para a representação gráfica da informação, facilitando o entendimento de dados muitas vezes complexos. Como afirma Azevedo e Conci (2003), se o ser humano pode imaginar algo, isto pode ser feito com a computação gráfica. Em outras palavras, tudo que pode ser imaginado pelo ser humano, hoje pode ser representado pela computação gráfica através das suas 20 técnicas de modelagem, texturização, animação, extração e captura de informações visuais, o que a torna algo muito presente e importante para evolução tecnológica. 3. SÍNTESE E TEXTURIZAÇÃO DE IMAGENS A síntese de imagens digitais é uma área da computação gráfica responsável pela criação e representação do mundo real através de imagens digitais realistas, é principalmente usada em aplicações onde há a necessidade de simular virtualmente fenômenos e objetos que podem ser muito caros e complexos de serem criados fisicamente, porém sua utilização se propaga em variados meios como o do entretenimento, educação, dentre outros, conforme afirma Pozzer (2000). 3.1 Técnicas de texturização Segundo o estudo de Pozzer (2000), a texturização de imagens se caracteriza pela geração de texturas e sua aplicação nos objetos, ela se divide entre a não-procedural e procedural. A não-procedural se caracteriza por inserir texturas anteriormente projetadas aos objetos, sem a utilização de nenhum método algorítmico. Por outro lado, a geração de texturas procedural se refere à utilização de algoritmos e técnicas para criar, aplicar e modificar as texturas de acordo com o objeto e a cena, transferindo o trabalho de criação e programação visual para o computador. 3.1.1 Bump Mapping O Bump Mapping é uma técnica de texturização de imagens que tem por objetivo perturbar os pixels de uma imagem a fim de promover o aspecto de uma superfície irregular, promovendo pequenas modificações na direção do vetor normal da superfície antes que seja aplicado o processo de iluminação, simulando visualmente mudanças no relevo do objeto, tais como rugosidades, sem a necessidade de uma modelagem geométrica e com a vantagem de que com ele é possível utilizar outras técnicas de texturização, para aumentar o nível de realismo da imagem, segundo Blinn (1978). De acordo com Azevedo e Conci (2003), esta técnica adiciona realismo a determinadas texturas sem que ocorram modificações na geometria dos objetos da cena, adicionando um sombreamento nos pixels, fazendo com que ocorra uma modificação simulada no objeto renderizado. O autor afirma que a intensidade da cor de um objeto é formada pelo ângulo do vetor normal de uma superfície e a direção da luz, além disso, em superfícies lisas o vetor normal é sempre o mesmo, sendo assim a cor da superfície também será sempre a mesma. O Bump Mapping trabalha diretamente com este vetor, perturbando-o, a fim de provocar uma mudança de cor em vários pontos desta superfície, dando a ilusão que algumas áreas do objeto estariam elevadas ou rebaixadas, conforme ilustra a figura 1. Figura 1 - Ilusão de relevo provocada pelo Bump Mapping Fonte: Azevedo e Conci (2003) Utilizando o conceito de ilusão de relevo, tal técnica tem finalidade de promover o aspecto áspero, rugoso, perfurado ou dentado produzindo um efeito visual muito realista, principalmente em texturas de faces humanas (como ilustra a figura 2) que não são homogêneas. (BATISTA, 2011). Figura 2 - Bump Mapping aplicado a uma parte da face Fonte: Adaptado de Reschenhofer (2015). Como descrito nesta seção a técnica do Bump Mapping trabalha na perturbação das cores dos objetos, simulando a existência de relevo, em contrapartida a seção a seguir descreve as características, conceitos e algoritmos que fazem parte da técnica do Ray Tracing que será comparado neste trabalho. 3.1.2 Ray Tracing A técnica de Ray Tracing surgiu como um estudo militar onde se buscava um algoritmo capaz de simular a trajetória de projeteis balísticos e de partículas nucleares, tal estudo é datado na década de 1960. Com base nesses estudos, a técnica passou a ser utilizada em computação gráfica, como uma forma para o cálculo das sombras nas superfícies. Junto aos avanços de hardware ela pode ser aprimorada, assim em 1980 já pôde ser utilizada para a síntese de imagens com sombra, reflexão e refração, como afirma Azevedo e Conci (2003). O Ray Tracing é uma das mais utilizadas técnicas de síntese de imagens de fácil aplicação, pois possibilita a representação de cenas complexas com vários objetos e efeitos (sombras, e muitos tipos de reflexão e refração) possuindo como princípio a simulação óptica de um raio de luz que viaja no espaço da cena e suas interações com o ambiente. (AZEVEDO; CONCI, 2003), a figura 3 ilustra uma cena texturizada. Figura 3 - Cena texturizada utilizando a técnica de Ray Tracing Fonte: adaptado de Stanford (2015) De acordo com Glassner (1989), a técnica do Ray Tracing, tem como base o disparo de raios que partem de um observador até a cena, deste modo são feitos testes de intersecção para definir se o raio ira ou não interceptar os elementos primitivos da cena, logo se ocorre uma intersecção a cor do pixel será definida pela normal do ponto de intersecção e das configurações do material da primitiva juntamente com a incidência de luzes presentes na cena. Nesta seção a técnica do Ray Tracing foi caracterizada pela capacidade de criação de efeitos de sombreamento, reflexão e refração, sendo ela capaz de atuar na texturização completa de uma cena, aumentando assim o nível de realismo existente de acordo com seu contexto. 4. METODOLOGIA A pesquisa desenvolvida classifica-se, de acordo com Silva e Menezes (2005), como qualitativa, pois considera dados obtidos de forma numérica passiveis de análise e aspectos descritivos para interpretação voltados a qualidade. O projeto está subdividido nas seguintes etapas: Etapa 1 – Projeto Estudo teórico referente aos métodos de texturização Bump Mapping e Ray Tracing. Pesquisa sobre modelagem 3D utilizando a biblioteca gráfica OpenGL integrada à linguagem C++; Estudo sobre análise qualitativa em função do realismo em imagens. Estudo sobre modelagem de faces humanas em três dimensões e a utilização de efeitos visuais para o realismo em animações; Etapa 2 – Desenvolvimento Modelagem de uma face humana em três dimensões utilizando os softwares Make Human juntamente com o sofware Blender para criação do modelo. Exportação do modelo para um ambiente de programação em C++ utilizando a biblioteca Open GL Criação de um diagrama de caso de uso do sistema proposto. Implementação de um software onde as técnicas de Bump Mapping e Ray Tracing serão aplicadas sobre a face modelada para a obtenção dos resultados. Etapa 3 – Validação Validação quantitativa por meio de pesquisa de opinião com o auxílio dos discentes do curso de ciência da computação da Universidade de Cruz Alta, por meio de demonstração das animações através de um software, utilizando ambos os métodos em relação ao realismo, onde cada discente irá avaliar individualmente as animações, cada uma delas utilizando uma técnica de texturização descrita e também com ambas, com o objetivo de obter o nível de realismo que a animação apresenta para cada técnica. A etapa 1 que tratava sobre a fundamentação teórica e conceituação das técnicas já foi desenvolvida, atualmente o projeto está na etapa 2, onde foi realizadas a modelagem da imagem a ser texturizada. 5. RESULTADOS PARCIAIS E DISCUSSÕES Para a realização deste trabalho abordou-se a conceituação da computação gráfica, sua importância, e as subáreas que a envolvem dando-se foco para a síntese de imagens e suas etapas para a criação de imagens digitais realistas. A texturização de imagens foi definida através de seu principal conceito, e dividida entre as duas técnicas principais abordadas neste trabalho, são elas o Ray Tracing e o Bump Mapping. As duas técnicas foram conceituadas e exemplificadas, contextualizando com o objetivo proposto da modelagem e texturização de imagens digitais realistas. Atualmente o projeto encontra-se na segunda etapa que se refere a criação da imagem, modelagem e implementação do sistema. A criação da imagem a ser texturizada foi feita através da utilização do software Blender juntamente com o software Make Human, ambos softwares de modelagem 3D e detalhamento de modelos. A figura 4 ilustra a criação do modelo com a utilização do software Make Human Figura 4 - Modelo elaborado com a utilização do Make Human Após a criação do modelo foi feita a importação para o software Blender onde foi criada a imagem que será utilizada para a aplicação das técnicas de texturização. A figura 5 ilustra a imagem a ser utilizada. Figura 5 - Imagem modelada com o Blender A próxima etapa do trabalho será com foco na modelagem, implementação e validação de um sistema capaz de comparar as técnicas descritas em cima de um ambiente 3D modelado com o OpenGL, para a utilização dos alunos da UNICRUZ na obtenção dos resultados qualitativos. 6. REFERÊNCIAS AZEVEDO, Eduardo; CONCI, Aura; Computação Gráfica Teoria e Prática. Vol. I. Editora Campus, 2003. BATISTA, Mônica de Lourdes Souza; Simulação de emoções em faces humanas utilizando os algoritmos de Bump Mapping e Morphing implementados em GPU. Dissertação de Mestrado em Computação, Universidade Federal Fluminense – UFF, 2011. BLINN, James F.: Simulation of Wrinkled Surfaces, Computer Graphics, Vol. 12 (3), pp. 286–292 SIGGRAPH-ACM, 1978. COHEN, Marcelo; MANSSOUR, Isabel Harb; Introdução à Computação Gráfica. RITA, Volume XIII, Número 2, 2006. GLASSNER, Andrew S. An Introduction to Ray Tracing. Academic Press Ltd., London, 1989. GLASSNER, Andrew S.. Principles of digital image synthesis. San Francisco: Morgan Kaufmann, 1995. POZZER, Cesar T., Uso de Técnicas de Síntese de Imagens Aplicadas a um Ambiente de Representação de Superfícies Liquidas Estáticas e Dinâmicas. Dissertação de Mestrado em Engenharia eletrônica e computação, Instituto Tecnológico de Aeronáutica, 2000. RESCHENHOFER. Florian. HumanSkin shader Disponível em : <http://docs.cryengine.com/display/SDKDOC2/HumanSkin+shader#HumanSkinshad er-Bumpmap(Normalmap)> . Acesso em 21 de junho de 2015. SILVA, Edna Lúcia da; MENEZES, Estera Muskat. Metodologia da pesquisa e elaboração de dissertação. 4ª ed. rev. e atual. Florianópolis: Laboratório de Ensino à Distância da UFSC, 2005. STANFORD. Ray Tracing Limited to 10 Recursive Bounces. Disponível em: <http://stanford.edu/~bmild/raytracing/main.html> . Acesso em 1 de junho de 2015.