Anda di halaman 1dari 55

PONTIFCIA UNIVERSIDADE CATLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMTICA CURSOS DE CINCIAS DA COMPUTAO E SISTEMAS DE INFORMAO

JLIA MARA COLLEONI COUTO TIAGO MARCELINO

APLICAO DO ALGORITMO DE PRUSINKIEWICZ NA GERAO DE QUEBRA DE SUPERFCIES EM JOGOS

Porto Alegre 2010

JLIA MARA COLLEONI COUTO TIAGO MARCELINO

APLICAO DO ALGORITMO DE PRUSINKIEWICZ NA GERAO DE QUEBRA DE SUPERFCIES EM JOGOS

Trabalho de concluso de curso de graduao apresentado Faculdade de Informtica da Pontifcia Universidade Catlica do Rio

Grande do Sul, como requisito parcial para obteno do grau de Bacharel em Sistemas de Informao e Cincias da Computao.

Orientadora: Prof. Dr. Soraia Raupp Musse

Porto Alegre 2010

JLIA MARA COLLEONI COUTO TIAGO MARCELINO

APLICAO DO ALGORITMO DE PRUSINKIEWICZ NA GERAO DE QUEBRA DE SUPERFCIES EM JOGOS

Trabalho de concluso de curso de graduao apresentado Faculdade de Informtica da Pontifcia Universidade Catlica do Rio

Grande do Sul, como requisito parcial para obteno do grau de Bacharel em Sistemas de Informao e Cincias da Computao.

Aprovada em _____ de ___________________ de ________.

BANCA EXAMINADORA:

____________________________________

Prof Dr Soraia Raupp Musse


____________________________________

Prof Dr Isabel Manssour


____________________________________

Prof Dr Luiz Gustavo Leo Fernandes

AGRADECIMENTOS

nossa orientadora, Prof. Dr. Soraia Raupp Musse, que no apenas nos ofereceu um trabalho norteado, onde as diretrizes so pr-definidas, mas uma verdadeira parceria na pesquisa, nos apontado um mundo de possibilidades e apoiando nossas decises. Agradecemos imensamente sua generosidade em compartilhar conhecimentos, discutir idias e solues, e sua dedicao ao trabalho de formao de seus alunos. Aos nossos pais que nos incentivaram incondicionalmente, depositando em ns a confiana necessria para enfrentar qualquer dificuldade, e dando-nos o prazer de compartilhar com eles a alegria de nossas conquistas.

Nem tudo que se enfrenta pode ser modificado, mas nada pode ser modificado at que seja enfrentado.

Albert Einstein

RESUMO

Essa monografia apresenta uma adaptao um algoritmo criado por Przemyslaw Prusinkiewicz [Runions, 2005], para utilizao na gerao de crack surface em jogos 2D. O algoritmo mencionado foi desenvolvido originalmente para simular o crescimento vascular em folhas de plantas, onde, a partir de nodos so geradas ramificaes pela folha. Neste trabalho, esse algoritmo foi parametrizado para gerar diferentes formas de cracks. Crack o nome que se utiliza nessa monografia para denominar o processo de quebra ou fissura de superfcies. Esse trabalho prope uma soluo mais realista para o problema de gerao de imagens de quebras de superfcies em jogos 2D, visto que atualmente esse processo gerado a partir de texturas, ou seja, substituio da imagem original por outra imagem onde o objeto aparece j com o resultado intermedirio ou final do crack. Realizou-se um levantamento dos padres de quebras de superfcies mais comuns, bem como um estudo dos algoritmos que podem ser utilizados para simulao de quebras de superfcies. Tambm foi desenvolvido um simulador grfico para gerao de cracks baseado no algoritmo original de Prusinkiewicz [Runions, 2005]. Os resultados obtidos atravs dos experimentos apresentam a possibilidade da aplicao do algoritmo para gerao de quebra de superfcies em jogos, em tempo real. Palavras-chave: Cracking, computao grfica, jogos, algoritmos.

APPLYING PRUZINKIEWICZS ALGORITHM ON GENERATION OF CRACKING SURFACES IN GAMES

ABSTRACT

This work presents a new application to an algorithm proposed by Przemyslaw Prusinkiewicz [Runions, 2005], specifically for using in the generation of crack surface in 2D games. The cited algorithm was originally developed to simulate the growth in leaves of vascular plants, where nodes are distributed through the leaf, generating branches. In this work, we intend to use this algorithm in order to generate different types of cracks. Crack is the name used in this work to denote the process of breaking or cracking surfaces. This work proposes a more realistic solution to the problem of generating images of broken surfaces in 2D games, because this process is currently applied using textures. We conducted a survey of patterns of surface cracks, and a study of algorithms that can be used for simulation of cracking surfaces. In addition, we developed a simulator for the generation of cracks based on original model of Prusinkiewicz [Runions, 2005]. Results show the feasibility of applying the algorithm to generate cracking surfaces in real-time games. Keywords: Cracking, graphics computer, games, algorithms.

LISTA DE ILUSTRAES

FIGURA 1: Exemplo de cracking surface em jogos .................................................. 13 FIGURA 2: Quebra de vidro provocada por um tiro ................................................. 14 FIGURA 3: Padro de desenvolvimento vascular de folhas ...................................... 16 FIGURA 4: Ilustrao do funcionamento do algoritmo .............................................. 18 FIGURA 5: Cracks em um drago de vidro ............................................................... 21 FIGURA 6 e 7: Alteraes no parmetro kill_distance .............................................. 24 FIGURA 8 e 9: Alteraes no parmetro vein_radius ............................................... 25 FIGURA 10 e 11: Alteraes no parmetro num_interaction .................................... 25 FIGURA 12 e 13: Alteraes no parmetro num_lines_grid e num_columns_grid ... 26 FIGURA 14 e 15: Alteraes no parmetro esp_vein ............................................... 27 FIGURA 16 e 17: Alteraes no parmetro line_growth ........................................... 27 FIGURA 18 e 19: Alteraes no parmetro drawnodes ............................................ 28 FIGURA 20 e 21: Alteraes no parmetro drawconnections ................................... 28 FIGURA 22 e 23: Alteraes no parmetro closepoints ............................................ 29 FIGURA 24 e 25: Alteraes no parmetro background ........................................... 29 FIGURA 26: Tarefas realizadas pelo simulador ........................................................ 31 FIGURA 27: Resultado visual de crack de barro ....................................................... 34 FIGURA 28: Resultado visual de crack de concreto ................................................. 34 FIGURA 29: Resultado visual de crack de vidro ....................................................... 35 FIGURAS 30 a 45: Comparaes entre imagens de cracks em barro do simulador e imagens reais .................................................................................................... 37 a 40 FIGURAS 46 a 53: Comparaes entre imagens de cracks em vidro do simulador e imagens reais .................................................................................................... 41 e 42

FIGURAS 54 a 59: Comparaes entre imagens de cracks em concreto do simulador e imagens reais ................................................................................................. 43 e 44 FIGURAS 60 a 69: Comparaes entre as novas imagens de cracks em barro do simulador e imagens reais................................................................................. 46 a 48 FIGURAS 70 a 75: Comparaes entre as novas imagens de cracks em vidro do simulador e imagens reais................................................................................. 49 e 50 FIGURAS 76 a 81: Comparaes entre as novas imagens de cracks em concreto do simulador e imagens reais................................................................................. 51 e 52 FIGURA 82: Mdia de avaliao ............................................................................... 53

LISTA DE TABELAS

TABELA 1: Performance do algoritmo para cada padro de crack ....................... 34

SUMRIO

1 1.1 1.1.1 1.1.2

INTRODUO ........................................................................................... 12 OBJETIVOS ............................................................................................... 15 Objetivo Geral ........................................................................................... 15 Objetivo Especfico .................................................................................. 15

2 2.1 2.1.1 2.2

FUNDAMENTAO TERICA ................................................................. 16 MODELO DE PRZEMYSLAW PRUSINKIEVICZ ........................................ 16 Funcionamento do Modelo ...................................................................... 17 CRACKING SURFACE .............................................................................. 18

3 3.1 2.1.1 3.1

MODELO DE QUEBRA DE SUPERFCIES............................................... 23 SIMULADOR DE CRACKING .................................................................... 31 Principais Funes do Simulador ........................................................... 33 CUSTO COMPUTACIONAL ....................................................................... 33

4 4.1 4.1.1 4.1.2 4.1.3 4.2 4.2.1 4.2.2 4.2.3

RESULTADOS ........................................................................................... 36 SURVEY INICIAL ....................................................................................... 36 Cracks em barro ....................................................................................... 36 Cracks em Vidro ....................................................................................... 40 Cracks em Concreto ................................................................................. 42 SURVEY FINAL.......................................................................................... 43 Cracks em barro ....................................................................................... 44 Cracks em Vidro ....................................................................................... 46 Cracks em Concreto ................................................................................. 49

CONCLUSO ............................................................................................ 52

REFERNCIAS .......................................................................................... 53

12

1 INTRODUO

A busca pela representao do comportamento real dos elementos da natureza em computao grfica um dos grandes desafios dos desenvolvedores de jogos. Um dos comportamentos que apresenta dificuldade em prover representao grfica fiel a quebra ou fissura de superfcies. Atualmente esse processo feito de maneira esttica, a partir da utilizao de uma imagem desenhada (textura), e no gerada dinamicamente. Nesse trabalho, objetiva-se estudar a viabilidade de adaptar o algoritmo desenvolvido por Przemyslaw Prusinkiewicz [Runions, 2005] para utiliz-lo no processo de cracking surface (quebra de superfcies), especificamente em jogos. O foco verificar se possvel utilizar esse algoritmo para esse fim, apresentando algumas caractersticas importantes, como por exemplo, processamento em tempo real e qualidade visual dos resultados. Przemyslaw Prusinkiewicz1 pesquisador da Universidade de Calgary, e o foco de seu trabalho a modelagem, simulao e visualizao do desenvolvimento das plantas. Ele procura interligar os conceitos de computao grfica, teoria da linguagem formal e linguagens de programao com Biologia, Matemtica e Fsica. A finalidade de seus algoritmos aplicar conceitos e mtodos da Cincia da Computao para obter uma melhor compreenso do surgimento de formas e padres na natureza. Prusinkiewicz recebeu o SIGGRAPH 1997 - Computer Graphics Achievement Award - por seu trabalho. Seus algoritmos biologicamente motivados j foram adaptados para outros fins, como simulao de comportamento de multides [Rodrigues, 2009], e agora se pretende utiliz-lo para simulao de cracking surface em jogos. Cracking surface o nome utilizado nesse trabalho para designar o processo computacional de quebra ou fissuras em superfcies. Crack uma fissura sistemtica na conexo entre os materiais que formam determinado objeto. Essa fissura forma uma linha contnua. Sua forma varia dependendo do material, da forma geomtrica e de outras variveis externas. Um crack ocorre quando as tenses internas do material so maiores que a resistncia do mesmo. Ocorre a primeira
1

Curriculum Vitae disponvel em http://pages.cpsc.ucalgary.ca/~pwp. Acesso em 25

de junho de 2010.

13

fissura no material devido tenso, ento ocorre uma fissura vizinha, e a prxima, e isso ocorre num efeito domin [Gobron, 2000]. Atualmente, nos jogos para computadores, onde h imagens de tiros ou guerras, h uma deficincia grfica no que tange as respostas das superfcies atingidas. Nessas situaes, observa-se que o usual que, um momento aps a superfcie ser atingida, a imagem seja substituda por uma textura, como um buraco por exemplo, ou que a superfcie simplesmente desaparea. Observa-se esse comportamento em jogos como Final Fight Guy, da CAPCOM2, conforme ilustrado na Figura 1, e no jogo Lethal Inforces, da KONAMI3, conforme Figura 2.

Figura 1. Exemplo de cracking surface em jogos, onde 1 segundo aps o vidro ser atingido por um golpe, a imagem substituda por uma textura igual do vidro da esquerda (imagens extradas do jogo Final Fight Guy).

2 3

Site oficial http://www.capcom.com. Acesso em 25 de junho de 2010. Site oficial http://konami.com. Acesso em 25 de junho de 2010.

14

Figura 2. Quebra de vidro provocado por um tiro (magem extrada do jogo Lethal Inforces KONAMI). Em pesquisas baseadas na leitura de alguns artigos, verifica-se que os algoritmos desenvolvidos at agora, para resolver esse problema, ainda apresentam desafios a serem considerados. Alguns dos trabalhos citados nessa monografia podem simular a quebra de uma superfcie, desencadeada por alguma ao, mas no o fazem em tempo real, e isso essencial para que sua implementao em jogos seja vivel. importante citar que num jogo vrias outras aes esto ocorrendo, impactando o custo computacional. A simulao de cracking, criando a partir dele peas pequenas e interligadas, dando ento mais credibilidade e realismo s cenas, a principal motivao desse trabalho. Criar esses fragmentos de maneira realista e em tempo real desafiador, dada a complexidade do padro dos cracks. Assim, a customizao do algoritmo de Prusinkiewicz [Runions, 2005] a hiptese adotada nesse trabalho para tentar resolver parte dos problemas.

15

1.1 OBJETIVOS Listados nessa seo encontram-se os objetivos geral e especficos desta monografia. 1.1.1 Objetivo Geral O objetivo central deste trabalho aplicar o algoritmo desenvolvido pelo Dr. Przemyslaw Prusinkiewicz [Runions, 2005] para utilizao em quebra de superfcies, para jogos.

1.1.2 Objetivos Especficos Os Objetivos Especficos deste trabalho so:

a)

Estudar a lgica e implementao do algoritmo desenvolvido em [Runions, 2005], bem como outras pesquisas relacionadas cracking surface.

b)

Propor e desenvolver uma adaptao ao modelo original [Runions, 2005] que possa ser utilizada em quebra de superfcies em jogos.

c)

Pesquisar em jogos de computadores imagens que possam ser teis contendo resultados de quebra de superfcies, objetivando comparar os resultados.

d)

Avaliao do algoritmo desenvolvido, em relao aos seguintes parmetros: tempo computacional e qualidade do aspecto visual.

e)

Descrever os modelos e resultados em um trabalho escrito de pesquisa.

16

2 FUNDAMENTAO TERICA Nesse captulo apresenta-se o modelo original que utilizado no desenvolvimento do projeto proposto, bem como uma introduo a alguns trabalhos relacionados cracking. 2.1 Modelo de Przemyslaw Prusinkiewicz No artigo Modeling and visualization of leaf venation patterns [Runions, 2005] apresentada uma classe de algoritmos biologicamente motivados para a gerao de padres de formao vascular das folhas. Sua inteno a constituio de imagens realistas que mostrem o processo de desenvolvimento de veias nas folhas das plantas, objetivando replicar seu padro visual. Para tanto, foi desenvolvida uma ampla pesquisa morfolgica nas folhas mais comuns encontradas na natureza. Dessa maneira, encontraram os padres de formao vascular de folhas que embasaram o desenvolvimento de seus algoritmos. Esses algoritmos serviro de base para a implementao do projeto aqui proposto. O algoritmo baseado na hiptese biologicamente plausvel de que a vascularizao resulta de uma interpolao entre o crescimento da folha, colocao dos hormnios de auxina e desenvolvimento das veias [Runions, 2005]. Cabe esclarecer que a auxina um hormnio das plantas que promove o crescimento de clulas em seus tecidos. Um exemplo inspirador para o desenvolvimento desse trabalho apresentado na Figura 3, retirada de [Runions, 2005], que ilustra as veias secundrias e tercirias formando um padro reticulado irregular.

Figura 3. Padro de desenvolvimento vascular de folhas [Runions, 2005]. f, g e h mostram o impacto visual causado pelo nmero de auxinas distribudas nas folhas em cada passo quanto maior o nmero, maior a vascularizao.

17

Esses padres assemelham-se com o que se pretende reproduzir com o simulador desenvolvido, sendo uma das diferenas o fato de que em uma quebra de superfcie, como o vidro, h um ponto central de onde saem as veias por todos os lados. J nas folhas, o crescimento sai do ponto de ligao da folha com o pecolo indo a uma direo determinada.

2.1.1 Funcionamento do modelo A lgica do modelo original a seguinte: as auxinas so distribudas pela folha, e a vascularizao ocorre de maneira que as nervuras/veias tendem a se aproximar desse hormnio. Define-se um ponto inicial de onde se origina a nervura/veia principal, e distribui-se um determinado nmero de auxinas na folha. A partir de ento, o algoritmo seleciona as nervuras mais prximas de cada auxina e calcula vetores direo que indicam o crescimento das nervuras. As auxinas so eliminadas assim que uma veia chega a uma distncia determinada, chamada kill distance. Quando isso ocorre, inicia-se o processo de criao de auxinas nos pontos mais distantes da folha, para assim reiniciar o processo de crescimento vascular e subdiviso dos vasos. Esse processo ilustrado na Figura 4: no estado inicial o sistema vascular da folha, nesse exemplo, constitudo por trs nodos (crculos pretos com centros brancos) e quatro auxinas (crculos vermelhos) (a). Cada auxina associada ao nodo que est mais prximo a ela (b, linhas vermelhas), o que estabelece o conjunto de auxinas que influencia cada n. So encontrados os vetores direo de cada nodo (c, setas pretas). Esses vetores so adicionados e sua soma normalizada novamente (d, setas violetas), fornecendo a base para encontrar os nodos de novo (d, crculos violeta). Os novos nodos so incorporados ao sistema vascular (e). As distncias entre as auxinas e os nodos so verificadas de maneira a eliminar as muito prximas (f, g). A folha cresce (h); neste exemplo assume-se um crescimento marginal, por isso as auxinas existentes e os ns de veia no so movidos. Novas auxinas so colocadas aleatoriamente no interior da folha crescida (i). Auxinas muito prximas das outras so eliminadas (j) e os nodos prximos a essas auxinas so identificados (k). Este o incio da prxima iterao da execuo do algoritmo, com estgios (j) e (k), correspondentes aos estdios (a) e (b) da iterao anterior.

18

Figura 4. Ilustrao do funcionamento do algoritmo [Runions, 2005]. Para utilizao em cracking, ocorrem algumas diferenas. A principal que o campo onde gerado o cracking tem um tamanho fixo, no ocorrendo o crescimento durante o processo de vascularizao como ocorre com as folhas. Outra diferena est no fato de que sero geradas vrias ramificaes em direes diversas, e o tipo de ramificao poder ser parametrizado, podendo ocorrer cruzamento entre as linhas secundrias. De qualquer forma, importante salientar que as definies sobre a adaptao do modelo original em crack sero feitas durante o desenvolvimento desse trabalho, especificamente no captulo 3.

2.2 Cracking Surface Existem diversos trabalhos na literatura versando sobre cracking surfaces, sendo alguns deles citados nessa seo. No artigo de Gobron [Gobron, 2000] so apresentados algoritmos onde a propagao de cracks feita automaticamente, usando um mtodo que eles denominam fsico-intuitivo. Fsico porque do ponto de vista de um cientista da computao o modelo pode aparecer bastante terico, mas o modelo esta longe do ponto de vista realstico de um fsico, por isso intuitivo. Apresentam-se aqui as principais idias desse trabalho. Segundo os autores, uma das dificuldades representar o stress que gera os cracks, visto que ele pode ir a qualquer direo, com intensidades diferentes. Stress uma tenso multidirecional nas clulas formadoras dos materiais, e quando o

19

stress interno do material maior que a resistncia desse material, ocorrem fissuras e podem ocorrer cracks. H uma funo recursiva entre stress e crack. Stress gera crack e estes por sua vez modificam o stress, e o entendimento dessa relao a chave para a gerao e simulao de qualquer tipo de cracks em qualquer material. Mdulos de fissuras so formados por clulas instveis (clulas que contm uma intensidade de stress mais forte que a resistncia do material). Esses mdulos tm direo determinada, e originam as fissuras. Determinar a direo inicial do crack no trivial, ento assume-se que ele sempre inicia com pelo menos duas direes, e quatro padres de crack so definidos abaixo [Gobron, 2000]: I o mais comum, consiste de dois mdulos de fissuras propagados em direes opostas. T so trs mdulos de fissuras, dois similares ao padro I e outro ortogonal a esses. Y tambm trs mdulos de fissuras, mas o da direo inicial forma ngulos de aproximadamente 120. X extremamente raro, e consiste de quatro mdulos de fissuras orientados de maneira que formam ngulos de 90. Baseados nessas idias, Gobron e Chiba conseguiram simular imagens realistas de cracking em materiais diversos, como concreto, cermica, barro e vidro. No artigo [Smith, 2003], utilizada para a simulao de cracks a linguagem de programao vv, que uma extenso de C++. Com esse paradigma de modelagem possvel representar expresses algbricas que acarretam em movimentos entre as malhas de polgonos, que formaro os cracks. Segundo os autores, esse paradigma de modelagem simplifica a implementao de algoritmos individuais, tratando-os como programas de modelagem para mltiplos propsitos. utilizada para a representao grfica de malhas de polgonos a lgebra vertexvertex, que uma classe de sistemas rotatrios vertex-vertex com uma srie de operaes definidas nela, utilizando notao matemtica. Utilizam informaes como forma geomtrica, topologia e coordenao na seqncia das operaes como parmetros para a reproduo de cracks. A relao de vizinhana entre os elementos de uma malha de polgonos e as modificaes locais em objetos estruturados so a essncia do desenvolvimento proposto em [Smith, 2003]. Malhas

20

de polgonos so colees de vrtices, nodos reunidos por pares de vrtices e polgonos feitos por seqncias de nodos e vrtices. So apresentados alguns algoritmos de subdiviso que podem ser representados utilizando o modelo de desenvolvimento proposto por eles. Apresentam algoritmos de insero de vrtices, de subdiviso de poliedros, o esquema de subdiviso que utiliza loops, o algoritmo borboleta e o algoritmo de subdiviso maneira mais completa em [Smith, 2006]. O artigo de [Martinet, 2004] apresenta uma abordagem procedural para a gerao de fragmentos e fissuras em materiais como vidro, metal e pedra. Essa abordagem utiliza a passagem de parmetros possibilitando a gerao de diversos tipos de fissuras. Seu mtodo tambm permite controlar as regies em que as fissuras se propagam e a forma que os fragmentos podem ter. Seu mtodo utiliza a Modelagem de rvore Hbrida, que combina superfcies implcitas como um esqueleto e malhas de tringulos. Suas fissuras e fragmentos so definidos usando operaes booleanas entre o modelo original e volumes talhados ou mscaras de fissuras. O procedimento realizado em trs passos: no primeiro mapeado o padro de fissura em cima do modelo de entrada para gerar um esqueleto. O padro de fissura uma imagem 2D feita em um editor especfico. Essa imagem um grfico que define sua geometria e caractersticas de ramificao. Os nodos do grfico possuem informaes sobre a largura e profundidade da fissura no vrtice correspondente. No artigo Generating Surface Crack Patterns [Iben, 2006] so apresentados alguns mtodos de gerao de padres de quebra de superfcies como lama, cermica e vidros, onde o usurio pode controlar as caractersticas e aparncia da quebra, manipulando alguns parmetros pr-estabelecidos. Dessa maneira, possvel gerar diferentes padres muito prximos da realidade, se comparados com imagens do mundo real. Segundo os autores, a quebra de superfcies depende do material e de fatores externos. A quebra simulada com a triangulao na superfcie dos objetos. Apesar dessa implementao ser eficaz em reproduzir quebra de superfcies com imagens realistas, ela ainda no eficiente para utilizao em tempo real, visto que para simular a quebra de vidro do drago representado na Figura 5 por exemplo . Esses algoritmos so explicados de

21

foram necessrias 2.7 horas de processamento computacional. Nesse caso, o tempo computacional despendido seria invivel para aplicao em jogos.

Figura 5. Cracks em um drago de vidro [Iben, 2006] No artigo de [Shen, 2007], os autores enfrentaram o desafio de representar de maneira realista os movimentos de fluidos, como o mar, uma pia com gua, gelia caindo sobre um po, etc. Os resultados podem ser vistos no filme de animao longa metragem Ratatouille4, da Disney em parceria com a Pixar. Na simulao de movimento de partculas, como um fluido, o nmero de partculas pequeno demais para dar a aparncia de uma superfcie contnua. Para resolver isso, foi desenvolvida uma tcnica para simular de maneira eficiente temporal e espacialmente, superfcies de partculas coerentes, com uma parametrizao que permite visualizar os detalhes de textura, que so posteriormente adicionadas na composio. Foram construdas funes implcitas que definem os campos de distncia assinados para o fluido de superfcies. Para um ponto de avaliao, a tcnica faz consultas de um conjunto de partculas em uma determinada regio de apoio, em seguida, cria uma partcula de referncia com uma posio mdia ponderada e raio. A distncia entre o ponto de avaliao e o ponto mais prximo da partcula de referncia atribuda como o valor da funo implcita. Usando uma estrutura de dados hierrquica, por exemplo, uma rvore KD [de Berg, 2008], o tempo computacional do modelo pode ser significativamente melhorado. Esta funo implcita ento processada por um procedimento de contorno, tais como marching

Site oficial http://disneydvd.disney.go.com/ratatouille.html/. Acesso em 25 de junho de 2010.

22

cubes [Lorensen, 1987] que extrai o contorno em uma malha de tringulos. Quando essa tcnica foi aplicada a cada frame em uma simulao de movimento de partculas, foram extradas uma seqncia de superfcies para animao de fluidos. Para criar detalhes de superfcies similares aos que ocorrem na natureza, so utilizados alguns parmetros que influenciam na aparncia das malhas formadoras dos objetos. Todos os artigos citados mostram pesquisas atuais no campo de quebras de superfcies, e alguns deles contriburam de alguma maneira para a adaptao do modelo de [Runions, 2005] no desenvolvimento desse trabalho.

23

3 MODELO DE QUEBRA DE SUPERFCIES O modelo desenvolvido nesse trabalho apresenta algumas modificaes em relao ao modelo original proposto por Prusinkiewicz [Runions, 2005]. A principal alterao que no modelo original utilizado, no clculo do posicionamento das auxinas, uma adaptao do algoritmo denominado dart-throwing (lanamento do dardo) [Cook 1986; Mitchell 1987]. Neste algoritmo, h um gerador aleatrio de amostras e um validador, de forma que os pontos so gerados randomicamente e dispostos de maneira uniforme sobre a rea a ser preenchida. Quando a distncia de um ponto em relao aos demais na rea for menor do que um ou mais limites predefinidos, esse ponto rejeitado. Satisfeitas as restries, o ponto adicionado rea e o processo continua. Este processo repetido at que novos pontos no possam ser adicionados rea, conforme adaptado por [Runions, 2005] para lanar dardos a cada iterao. No modelo original, para controlar a regularidade do padro de nervuras, o usurio define o nmero de dardos por unidade de rea da folha, a cada passo do algoritmo. O problema que esse algoritmo computacionalmente caro, visto que sua inteno simular padres bem prximos da realidade. Por esse motivo, o algoritmo dart-throwing foi susbtituido por uma estrutura similar a uma malha, de modo que a rea de desenho dividida em linhas verticais e horizontais e as auxinas so colocadas na interseco dessas linhas, ainda de maneira aleatria e respeitando uma quantidade mxima pr-definida de auxinas. Dessa maneira a performance aumentou significativamente no processo de criao de auxinas, conforme mostrado no captulo 3.2 de custo computacional. A base para o algoritmo desenvolvido para este trabalho apresentada em [Runions, 2005]. O modelo original gera imagens que simulam o crescimento vascular em folhas de plantas. A partir de um ponto central, chamado de VeinNode, tem incio o crescimento do crack para todos os lados a partir da orientao do crescimento dos VeinNodes atrados pelos pontos chamados de auxinas. As auxinas so espalhadas dentro de uma rea quadrada e limitada. Para a gerao de padres de crack diferentes foram definidos parmetros que alteram o

comportamento de crescimento e ligao dos nodos. Os seguintes dados so entradas do modelo:

24

KILL_DISTANCE: Distncia mnima entre um VeinNode e uma auxina para que a auxina seja morta. Quanto menor o seu valor mais ramificaes existiro no modelo, porque as auxinas morrero mais tarde; quanto maior esse parmetro, menos ramificaes sero geradas, conforme ilustrado nas Figuras 6 e 7. Esse parmetro faz parte do algoritmo original. Na Figura 6 ( esquerda), o valor de kill_distance 0.01, na Figura 7 0.1. As auxinas so mostradas como pontos azuis. Outros parmetros utilizados na formao dessas figuras: EspVein = 0.2, Raio VeinNode = 0.9, Nmero de Iteraes = 100, Nmero de linhas e nmero de colunas = 7.

Figuras 6 e 7. Alteraes no parmetro kill_distance VEIN_RADIUS ou Raio Vein Node: o raio ao redor da auxina no qual ela pode afetar os VeinNodes que esto ao seu alcance, a fim de escolher o mais prximo e influenciar seu crescimento. Esse parmetro faz parte do algoritmo original. Quanto menor o valor desse parmetro, as imagens apresentam curvas mais suaves, conforme ilustrado na Figura 8, que foi gerada com vein_radius = 0.5. J na Figura 9, utilizase vein_radius = 20, formando linhas mais retas. Outros parmetros utilizados: EspVein = 0.2, Nmero de Iteraes = 100, Nmero de linhas e nmero de colunas = 20, kill distance = 0.1.

25

Figuras 8 e 9. Alteraes no parmetro vein_radius NUM_INTERACTION: esse parmetro indica quantas vezes ser executado o algoritmo principal para criar as ramificaes. No algoritmo original a parada do crescimento se d pelo trmino das auxinas existentes. Na Figura 10, foi atribudo o valor de 100 a esse

parmetro, dessa maneira gerando mais ramificaes. Na figura 11, sendo atribudo o valor de 10, o crack gerado no tem muitas ramificaes. Outros parmetros utilizados na formao dessas figuras: EspVein = 0.2, Raio VeinNode = 0.9, Kill distance = 0.08, Nmero de linhas e nmero de colunas = 20.

Figuras 10 e 11. Alteraes no parmetro num_interaction NUM_LINES_GRID e NUM_COLUMNS_GRID: esses parmetros indicam quantas linhas e colunas tero na rea de crescimento (grid). A rea de crescimento dividida em linhas e colunas, nas quais a interseco das mesmas o ponto de referncia para a criao das auxinas. Esses parmetros no existem no algoritmo original de Prusinkiewicz [Runions, 2005], pois o posicionamento das auxinas se d pela utilizao do algoritmo de lanamento de dardos(Dart Throwing). A utilizao de linhas e colunas melhorou a performance.

26

Quanto maiores os valores de linhas e colunas mais auxinas sero criadas na rea de crescimento do crack, mas isso gera um aumento no custo computacional: a Figura 12 levou 0,14 segundos para formarse, enquanto a Figura 13 levou 11,439 segundos. Isso ilustrado na Figura 12, onde foi utilizado o valor nmero de linhas e colunas igual a 7, e Figura 13, onde foi atribudo o valor 40. Outros parmetros utilizados na formao dessas figuras: EspVein = 0.2, Raio VeinNode = 0.9, Nmero de Iteraes = 100 e Kill distance = 0.08

Figuras 12 e 13. Alteraes nos parmetros num_lines grid e num_columns_grid ESPVEIN: define um valor que ser aplicado distncia de um VeinNode (ponto geradono grid) em relao ao que deu origem a ele. Dependendo do valor atribudo a esse parmetro, podero ser criados VeinNodes muito prximos ou muito distantes, quanto maior este valor, mais longe ser criado o VeinNode. Quando esse parmetro recebe um valor pequeno cria pontos mais prximos uns dos outros, assim como valores altos criam pontos mais distantes. Esse parmetro bastante til na gerao de cracks em barro. Na Figura 14, utiliza-se espvein = 0.1, enquanto na Figura 15 o valor atribudo a esse parmetro igual a 4.0. Esse parmetro tambm causa impacto no custo computacional, visto que a Figura 14 leva 8,164 segundos para ser gerada, enquanto a Figura 16 leva 0,198 segundos. Outros parmetros utilizados na formao dessas figuras: Raio VeinNode = 0.9, Nmero de Iteraes = 100, Kill distance = 0.08 e Nmero de linhas e nmero de colunas = 20.

27

Figuras 14 e 15. Alteraes nos parmetros esp_vein LINEGROWTH: o parmetro da taxa de crescimento da espessura das ramificaes pai. Cada vez que uma linha se ramifica para linhas filho, a linha pai engrossada, recebendo o valor de sua espessura mais a taxa de crescimento multiplicada pelo nmero de filhos. Esse parmetro utilizado na Figura 17, onde foi atribudo o valor de 0.5, e na Figura 16 foi atribudo o valor zero. Para a gerao dessas figuras, foi desmarcado o parmetro drawnodes, que desenha as auxinas, para uma melhor visualizao do resultado. Outros parmetros utilizados na formao dessas figuras: EspVein = 0.2, Raio VeinNode = 0.9, Nmero de Iteraes = 100, Kill distance = 0.08 e Nmero de linhas e nmero de colunas = 20.

Figuras 16 e 17. Alteraes nos parmetros linegrowth DRAWNODES: este parmetro foi criado para que possa ser visualizado onde esto as auxinas criadas, e caso ele seja marcado na tela do gerenciador (Desenhar Pontos) ele desenha os pontos (auxinas) em azul antes de gerar os cracks. Os parmetros utilizados

28

na formao dessas figuras so: EspVein = 0.2, Raio VeinNode = 0.9, Nmero de Iteraes = 100, Kill distance = 0.08 e Nmero de linhas e nmero de colunas = 20. Na Figura 18 esse parmetro, que um booleano, recebeu valor falso, enquanto na figura 19 foi marcado como verdadeiro.

Figuras 18 e 19. Alteraes nos parmetros drawnodes DRAWCONNECTIONS: este parmetro utilizado para

simular cracks de vidro, ligando os pontos de maneira semelhante a uma circunferncia crescente. Ele liga novos VeinNodes a cada iterao do algoritmo. Os parmetros utilizados na formao dessas figuras so: EspVein = 0.2, Raio VeinNode = 100, Nmero de Iteraes = 80, Kill distance = 0.02 e Nmero de linhas e nmero de colunas = 20. Na Figura 20, o parmetro drawconnections, que do tipo booleano, teve atribudo valor falso, enquanto na figura 21 foi marcado como verdadeiro.

Figuras 20 e 21. Alteraes nos parmetros drawconnections

29

CLOSEPOINTS: Forma ilhas aleatrias entre os cracks. Para tanto, ele liga novos VeinNodes um VeinNode mais prximo. Os parmetros utilizados na formao das Figuras 22 e 23 so: EspVein = 0.2, Raio VeinNode = 100, Nmero de Iteraes = 80, Kill distance = 0.02 e Nmero de linhas e nmero de colunas = 20. Na Figura 20, o parmetro closepoints, que do tipo booleano, teve atribudo valor falso, enquanto na figura 21 foi marcado como verdadeiro.

Figuras 22 e 23. Alteraes nos parmetros closepoints BACKGROUND: usado para colocar imagens de fundo, conforme ilustrado na Figura 25; produz imagens mais realistas. A cada vez que iniciada a execuo do programa, a imagem de fundo carregada. Na figura 24, a imagem levou 0,039 segundos, enquanto a figura 25 foi formada em 1,998 segundos. Parmetros utilizados na formao das Figuras 24 e 25: EspVein = 1.0, Raio VeinNode = 0.4, Nmero de Iteraes = 100, Kill distance = 0.08 e Nmero de linhas e colunas = 7.

Figuras 24 e 25. Alteraes nos parmetros background

30

A simulao executada em dois passos: a leitura dos parmetros de configurao e a execuo do algoritmo principal. Na figura 6 est a arquitetura do modelo. Na fase de configurao, o simulador l os parmetros do arquivo "config.xml", que gerado pelo Gerenciador de Parmetros. Caso tenha sido definida uma figura de fundo, no parmetro BACKGROUND, nessa fase que a figura desenhada. A fase de criao de auxinas utiliza os parmetros

NUM_LINES_GRID e NUM_COLUMNS_GRID para criar e posicionar as auxinas na rea de crescimento. A posio base para a criao de uma auxina o vrtice entre linha e coluna; porm se essa fosse sempre a mesma posio, as imagens de crack geradas seriam sempre as mesmas. Para isso foi includo um clculo randmico para posicionamento das auxinas ao redor da interseco de acordo com o nmero randmico gerado. Caso o parmetro DRAWNODES esteja marcado, as auxinas geradas sero desenhadas na tela em sua posio final. Na fase de crescimento, iniciado o loop principal do modelo, onde para cada auxina "viva" buscado o VeinNode mais prximo ela, com uma distncia mnima definida pelo parmetro VEIN_RADIUS. Depois de encontrado, a auxina modifica o vetor de influncia desse nodo somando o vetor que existe entre a auxina e o VeinNode ao vetor de influncia j existente do prprio VeinNode. Dessa maneira mais de uma auxina pode influenciar o crescimento de um VeinNode. Aps todas as auxinas terem influenciado algum VeinNode iniciada a criao de novos VeinNodes, e para isso todos os que possuem um vetor de influncia com tamanho diferente de zero tm esse vetor normalizado e multiplicado pelo parmetro ESPVEIN. Dessa maneira criado um novo VeinNode na posio encontrada, e ento esse vetor de influncia zerado novamente.

31

Figura 26: Tarefas realizadas pelo simulador Terminada a fase de crescimento hora de verificar se alguma auxina deve ser removida da rea de crescimento. Todas as auxinas so verificadas para descobrir se esto a uma distncia igual ou inferior ao parmetro KILL_DISTANCE; caso estejam, essa auxina removida. Quanto mais tarde uma auxina for removida

32

da rea de crescimento mais VeinNodes ela ir influenciar em seu crescimento at que seja removida. Aps terem sido efetuadas as fases de crescimento e destruio de auxinas, realizado o desenho das conexes entre os VeinNodes, objetivando formar as linhas de crack. Nessa fase, caso o parmetro LINEGROWTH tenha um valor definido, a grossura da linha entre um VeinNode e seus "filhos" ser dada pelo valor do parmetro multiplicado pelo nmero de filhos. As duas ltimas fases descritas so o desenho de conexes e o fechamento de pontos. Essas fases opcionais no fazem parte do algoritmo principal, pois so implementaes feitas para gerar padres especficos, como vidro e barro. O desenho de conexes, parmetro DRAWCONNECTIONS, liga os ltimos pontos gerados para fechar um crculo entre eles, esse crculo foi visto nas figuras de vidro pesquisadas. O fechamento de pontos, parmetro CLOSEPOINTS, ocorre com

todos os VeinNodes que no possuam ramificaes, neste caso buscado o VeinNode mais prximo outro e desenhada uma ligao entre eles. Esse comportamento ocorre em todas as iteraes da simulao. Se o nmero de iteraes definidas no parmetro NUM_INTERACTION tenha sido alcanado a simulao termina, caso contrrio repetido o processo a partir do bloco de crescimento.

3.1 Simulador de Cracking

O simulador possui 7 classes, Auxin, ComparerListA, ComparerListB, ComparerListC, ComparerListD, Simulador e Coordenada. O programa foi desenvolvido em .net C++, e o gerenciador de parmetros em C# .net, verso 3.5, usando a biblioteca OpenGL para gerenciar a parte grfica do software (classes glut.h e glu.h), bem como todos as funes de mostrar os resultados na tela. As classes ComparerListA, ComparerListB, ComparerListC, ComparerListD so utilizadas para fazer o padro circular que ocorre nas imagens de crack de vidro. Como o prprio nome diz, so classes de comparao, que visam ordenar as listas dos pontos de forma que sejam geradas imagens numa circunferncia.

33

Os parmetros que influenciam na gerao dos cracks foram descritos no captulo anterior. 3.1.1 Principais funes do simulador GeraAuxina: Funo que diz se deve gerar uma auxina ou no; h 75% de chance de gerar. insideCircuference: Mtodo para verificar a existncia de um ponto dentro do alcance de uma circunferncia. DrawLineByDeepness: Mtodo que desenhar as linhas; gera o padro de crescimento da espessura da linha, conforme o nmero de filhos. DrawWeb: cria o padro de ligao circular entre os nodos, em cada iterao do algoritmo, com randomicidade igual a 50 %. GetLeaveNodes: pega os ltimos nodos folhas que no possuem filhos, nele utilizado o parmetro closePoints, gerando as ilhas do padro de barro. Configura: gera um arquivo XML com parmetros padro de inicializao do programa. Caso no haja o arquivo ele cria, caso contrrio carrega as configuraes indicadas pelo usurio.

3.2 Custo Computacional

De acordo com os testes realizados com os parmetros que compem a Tabela 1, verifica-se que o custo computacional para a gerao de imagens de cracks de concreto Figura 28 - o mais baixo. Um dos motivos que este padro utiliza menos pontos de orientao auxinas pois possui um grid de tamanho menor 7 linhas por 7 colunas.O padro gerado para o vidro, ilustrado na Figura 29, o mais custoso computacionalmente pois utiliza um grid maior, 20 linhas por 20 colunas, alm de utilizar um algoritmo adicional para a gerao as circunferncias do vidro. O pado para gerar cracks de barro fica com um valor intermedirio. Para obter estes resultados utilizou-se um netbook com um processador de 1,6 Ghz e 2Gb de memria RAM.

34

Tabela 1: Performance do algoritmo para cada padro de crack Padro de crack KILL_DISTANCE VEIN_RADIUS NUM_INTERACTION NUM_LINES_GRID NUM_COLUMNS_GRID Barro ESPVEIN LINEGROWTH DRAWNODES DRAWCONNECTIONS CLOSEPOINTS BACKGROUND KILL_DISTANCE VEIN_RADIUS NUM_INTERACTION NUM_LINES_GRID Concreto NUM_COLUMNS_GRID ESPVEIN LINEGROWTH DRAWNODES DRAWCONNECTIONS CLOSEPOINTS BACKGROUND KILL_DISTANCE Vidro VEIN_RADIUS NUM_INTERACTION Varivel Valor atribu do 0.08 0.4 100 20 20 0.8 0.5 false false false false 0.08 0.4 100 7 7 1 1 false false false false 0.02 100 80 Figura 28 0,78 Figura 27 3,14 Tempo de execuo em segundos Resultado visual

35

NUM_LINES_GRID NUM_COLUMNS_GRID ESPVEIN LINEGROWTH DRAWNODES DRAWCONNECTIONS CLOSEPOINTS BACKGROUND

20 20 0,03 0 6,59 false true false false Figura 29

36

4 RESULTADOS

Nesse captulo, apresentam-se alguns resultados de imagens geradas pelo simulador, que foram avaliados por 84 voluntrios. O grupo de pessoas que respondeu s duas pesquisas so parecidos: colegas da Faculdade de Informtica, amigos e familiares dos autores e da orientadora. O objetivo da avaliao foi identificar como estava a aceitao das imagens geradas pelo simulador, bem como saber o que deveria ser revisado objetivando a gerao de cracks mais realistas. 4.1 Survey Inicial Foi feita uma pesquisa inicial, qual 48 participantes responderam entre os dias 24 de maio a 04 de junho de 2010, s seguintes questes: 1. Similaridade entre as imagens de crack em barro reais e as do simulador 2. Similaridade entre as imagens de crack em vidro reais e as do simulador 3. Similaridade entre as imagens de crack em concreto reais e as do simulador Foi escolhido realizar simulao de cracks de barro, vidro e concreto devido a facilidade de encontrar-se imagens desses trs tipos disponveis na internet. Como resposta s perguntas, havia uma escala de 1 a 5, onde 1 significa Totalmente Diferente e 5 significa Muito semelhante. As imagens de comparao estavam hospedadas em http://crackingsurface.blogspot.com/, e havia um formulrio do Google Docs armazenando as respostas. Tambm foi enviado por email um arquivo do tipo apresentao de slides para melhor visualizao das imagens. Abaixo, as figuras avaliadas na primeira etapa da pesquisa. Foram colocadas lado a lado imagens do simulador imagens reais para a avaliao. 4.1.1 Cracks em barro Para gerao das imagens de barro, utiliza-se os seguintes parmetros: EspVein: 0.8 NumIteration: 100 VeinRadius: 0.4

37

KillDistance: 0.08 NumLinesGrid: 20 NumColunsGrid: 20 DrawNodes: false BackGround: barro.bmp ou false (quando o fundo branco).

Mostra-se as comparaes entre cracks de barro do simulador e reais da Figura 30 at a Figura 45. Imagens do Simulador Imagens Reais

Figura 30

Figura 315

Figura 32
5

Figura 336

Disponvel

em

http://www.maureenwilksdigitalfineart.com/Original%20Photos/Mud%20Cracks%2002.JPG.
6

Disponvel

em

http://2.bp.blogspot.com/_cXPcg6ZxQ7U/SLQJTfIiAsI/AAAAAAAAAmY/R8SYKU0_6Kc/s400/cracks.jp g

38

Imagens do Simulador

Imagens Reais

Figura 34

Figura 357

Figura 36

Figura 378

Figura 38

Figura 399

7 8 9

Disponvel em http://upload.wikimedia.org/wikipedia/commons/2/2c/Desiccation-cracks_hg.jpg Disponvel em http://www.pensionriskmatters.com/uploads/image/Cracks.jpg Disponvel em http://neriah-stock.deviantart.com/art/Nasty-Cracks-IV-82744169

39

Imagens do Simulador

Imagens Reais

Figura 40

Figura 4110

Figura 42

Figura 4311

10

Disponvel em http://www.public-domain-photos.com/free-stock-photos-3/miscellaneous/cracks-in-

dry-mud-2.jpg.
11

Disponvel em http://pespmc1.vub.ac.be/Photos/MudCracks.jpg

40

Imagens do Simulador

Imagens Reais

Figura 44

Figura 4512

Figuras 30 a 45: comparaes entre imagens de cracks em barro do simulador e imagens reais 4.1.2 Cracks em vidro Com os parmetros geram-se as imagens de cracks de vidro representadas nas Figuras 46, 48, 50 e 52: EspVein: 2 NumIteration: 100 VeinRadius: 0.9 KillDistance: 0.08 NumLinesGrid: 20 NumColunsGrid: 20 DrawNodes: false BackGround: false

As Figuras 47, 49, 51 e 53 mostram as imagens reais de cracks de vidro que foram utilizadas na comparao.

12

Disponvel em http://pespmc1.vub.ac.be/Photos/HumiditySeepingCracks1405-W.jpg

41

As notas que foram atribudas pelos participantes s imagens de vidro utilizadas nessa pesquisa inicial, mostraram que essa era a maior deficincia do modelo, fazendo com que na segunda parte da pesquisa o tenha sido includo o padro de circunferncia. Imagens do Simulador Imagens Reais

Figura 46

Figura 4713

Figura 48

Figura 4914

13 14

Disponvel em http://www.faqs.org/photo-dict/photofiles/list/2134/2794cracks.jpg. Disponvel em

http://image.shutterstock.com/display_pic_with_logo/98964/98964,1245494257,3/stock-photo-there-isa-broken-car-glass-of-windscreen-with-hole-in-picture-center-32348800.jpg

42

Imagens do Simulador

Imagens Reais

Figura 50

Figura 5115

Figura 52

Figura 5316

Figuras 46 a 53: comparaes entre imagens de cracks em vidro do simulador e imagens reais 4.1.3 Cracks em concreto Para imagens de cracks de vidro utilizam-se os seguintes parmetros:
15

NumIteration: 100 VeinRadius: 0.4 KillDistance: 0.08

Disponvel

em

http://www.istockphoto.com/file_thumbview_approve/9820572/2/istockphoto_9820572-broken-carglass-of-windscreen.jpg
16

Disponvel http://farm4.static.flickr.com/3039/2312963468_15636583df.jpg.

43

NumLinesGrid: 7 NumColunsGrid: 20 DrawNodes: false BackGround: false

Com esses parmetros, consegue-se gerar as Figuras 54, 56 e 58. As Figuras 55, 57 e 59 mostram comparativos com imagens de cracks de concreto reais.

Imagens do Simulador

Imagens Reais

Figura 54

Figura 5517

Figura 56

Figura 5718

17 18

Disponvel em http://th.physik.uni-frankfurt.de/~hossi/Bilder/BR/cracks_small.jpg. Disponvel em

http://primerestorationinc.com/images/ConcreteRestoration&Repair/CrackedConcreteSample.jpg

44

Imagens do Simulador

Imagens Reais

Figura 58

Figura 5919

Figuras 54 a 59: comparaes entre imagens de cracks em concreto do simulador e imagens reais Como resposta s imagens de barro, houve mdia igual a 3,17, o nmero que mais se repetiu (moda) foi 4, e o desvio padro foi 1,00. Isso significa que os resultados foram satisfatrios, concentrando-e entre os nmeros 2,17 (imagens parcialmente semelhantes) e 4,17 (muito semelhantes). Como resposta s imagens de crack em vidro, tivemos uma mdia de 2,46, com uma moda de 2 e desvio padro de 1,21; foi a mdia de notas mais baixa, porm foi tambm a de maior desvio padro, ou seja, houve maior discordncia entre as respostas dadas. As avaliaes concentraram-se entre 0,71 e 4,71, ou seja, de imagens totalmente diferentes a muito semelhantes, Para as imagens de concreto, tivemos uma maior aceitao, com mdia de 3,70, moda de 4 e desvio padro de 1,15. As avaliaes variaram de 2,55 a 4,85, sendo avaliadas como parcialmente semelhantes a muito semelhantes.

4.2 Survey Final Aps analisarmos as respostas dadas sobre as imagens do simulador na primeira fase da pesquisa, foram feitas alteraes no simulador, com o intuito de
19

Disponvel em http://www.elated.com/res/Image/imagekits/137/cracks-in-rocks-2.jpg.

45

deixar as imagens mais realistas. essa segunda pesquisa,

38 participantes

responderam entre os dias 06 a 19 de junho de 2010, s mesmas questes feitas anteriormente. A seguir, colocamos as imagens que foram enviadas por email para anlise dos participantes da pesquisa. Para melhorar as imagens geradas, foram includos os parmetros NumColumnsGrid (para gerao de imagens com nmero de colunas diferente do nmero de linhas), LineGrowth (para engrossar a linha pai cada vez que ele tiver um filho) e DrawConnections (para gerar o padro de ilhas entre os nodos filhos).

4.2.1 Cracks em barro Para gerao das Figuras 60, 62, 64, 66 e 68 mostradas a seguir, foram utilizados os seguintes parmetros: EspVein: 0.8 NumIteration: 100 VeinRadius: 0.4 KillDistance: 0.08 NumLinesGrid: 20 NumColunsGrid: 20 DrawNodes: false BackGround: marrom.bmp, cinza.bmp ou bege.bmp LineGrowth: 0.5 DrawConnections: false ClosePoints: false

As Figuras 61, 63, 65, 67 e 69 so as imagens reais selecionadas para comparao. As referncias bibliogrficas so repetidas a partir daqui porque as imagens reais utilizadas na segunda parte do survay so as mesmas da primeira parte.

46

Imagens do Simulador

Imagens Reais

Figura 60

Figura 6120

Figura 62

Figura 6321

20

Disponvel

em

http://www.maureenwilksdigitalfineart.com/Original%20Photos/Mud%20Cracks%2002.JPG.
21

Disponvel

em

http://2.bp.blogspot.com/_cXPcg6ZxQ7U/SLQJTfIiAsI/AAAAAAAAAmY/R8SYKU0_6Kc/s400/cracks.jp g

47

Imagens do Simulador

Imagens Reais

Figura 64

Figura 6522

Figura 66

Figura 6723

22 23

Disponvel em http://www.pensionriskmatters.com/uploads/image/Cracks.jpg. Disponvel em http://neriah-stock.deviantart.com/art/Nasty-Cracks-IV-82744169.

48

Imagens do Simulador

Imagens Reais

Figura 68

Figura 6924

Figuras 60 a 69: comparaes entre as novas imagens de cracks em barro do simulador e imagens reais 4.2.2 Cracks em vidro Para gerao das Figuras 70, 72 e 74 mostradas a seguir, foram utilizados os seguintes parmetros: EspVein: 0.3 NumIteration: 80 VeinRadius: 100 KillDistance: 0.02 NumLinesGrid: 20 NumColunsGrid: 20 DrawNodes: false BackGround: C:\ vidro.bmp LineGrowth: 0 (para linhas pretas) ou 0.5 (para linhas brancas) DrawConnections: false (para linhas pretas) ou true (para linhas brancas) ClosePoints: false

24

Disponvel em http://pespmc1.vub.ac.be/Photos/MudCracks.jpg.

49

Para comparao com as imagens do simulador, foram utilizadas as Figuras 71, 73 e 75. Imagens do Simulador Imagens Reais

Figura 70

Figura 7125

Figura 72

Figura 7326

25

Disponvel em http://www.faqs.org/photo-dict/photofiles/list/2134/2794cracks.jpg.

50

Imagens do Simulador

Imagens Reais

Figura 74

Figura 7527

Figuras 70 a 75: Comparaes entre as novas imagens de cracks em vidro do simulador e imagens reais 4.2.3 Cracks em concreto Para gerao das Figuras 76, 78 e 80 mostradas a seguir, foram utilizados os seguintes parmetros:
26

EspVein: 1 NumIteration: 100 VeinRadius: 0.4 KillDistance: 0.08


em

Disponvel

http://image.shutterstock.com/display_pic_with_logo/98964/98964,1245494257,3/stock-photo-there-isa-broken-car-glass-of-windscreen-with-hole-in-picture-center-32348800.jpg.
27

Disponvel

em

http://www.istockphoto.com/file_thumbview_approve/9820572/2/istockphoto_9820572-broken-carglass-of-windscreen.jpg.

51

NumLinesGrid: 7 NumColunsGrid: 7 DrawNodes: false BackGround: C:\ concreto.bmp LineGrowth: 1.0 DrawConnections: false DrawPoints: false

Para comparao, utiliza-se as Figuras 77, 79 e 81.

Imagens do Simulador

Imagens Reais

Figura 76

Figura 7728

Figura 78

Figura 7929

28 29

Disponvel em http://th.physik.uni-frankfurt.de/~hossi/Bilder/BR/cracks_small.jpg. Disponvel em

http://primerestorationinc.com/images/ConcreteRestoration&Repair/CrackedConcreteSample.jpg.

52

Imagens do Simulador

Imagens Reais

Figura 80

Figura 8130

Figuras 73 a 78: comparaes entre as novas imagens de cracks em concreto do simulador e imagens reais

Para melhorar a aparncia das imagens de barro, foi utilizado o parmetro LINEGROWTH, que engrossa a linha pai a cada filho que ele tem. Com a utilizao desse parmetro, a mdia baixou de 3,17 para 2,71, sendo o valor 2 o nmero mais repetido e tendo 1,25 como desvio padro. Isso significa que as notas concentraramse entre 1,46 e 3,96 variando de totalmente diferentes a muito semelhantes. Pode-se supor, analisando as respostas, duas coisas: ou o parmetro que engrossa a linha pai no ficou bem colocado nesse tipo de crack, ou as imagens de vidro e concreto ficaram melhores que anteriormente, fornecendo uma nova referncia de avaliao para as pessoas que responderam,e baixando o conceito para os cracks de barro. Em relao s imagens de crack em vidro, com a utilizao do parmetro DRAWCONNECTIONS para gerar o padro de circunferncia ao redor dos cracks. Dessa maneira, a mdia subiu de 2,46 na primeira pesquisa para 3,45, sendo 4 o valor mais repetido e tendo um desvio padro de 1,11. A maior concentrao de notas ficou entre os valores 2,34 e 4,56, sendo considerados semelhantes muito semelhantes. Quanto s imagens de concreto, representadas nas Figuras 73 a 78, continuaram sendo as imagens melhor avaliadas, com mdia de 3,97, moda igual a
30

Disponvel em http://www.elated.com/res/Image/imagekits/137/cracks-in-rocks-2.jpg.

53

4 e desvio padro de 0,88. As avaliaes variaram de 3,09 a 4,86, sendo avaliadas como semelhantes a muito semelhantes. Mostram-se dois grficos, Figuras 59 e 60, onde visualiza-se uma melhora significativa nas avaliaes dos padres de vidro e concreto, e tambm uma diferena observada no padro de barro.

Figura 82: Mdia de avaliao atribuda aos cracks

54

5 CONCLUSO

Nesse trabalho foi proposto um modelo para simulao de gerao de cracking surface em jogos. Aspectos como apresentao visual e similaridade com cracks reais so abordados. O custo computacional melhorou ao remover-se o algoritmo dart throwing. Ao utilizar-se de um algoritmo para dividir a rea de distribuio das auxinas como uma malha de linhas horizontais e verticais, houve melhora significativa n a performance de gerao das imagens. A partir de pesquisas iniciais realizadas com algumas pessoas, descobriu-se que os padres gerados pelo simulador precisavam ser aprimorados para que pudessem reproduzir fielmente imagens de cracks. A pesquisa e o desenvolvimento baseados no algoritmo de Prusinkiewicz [Runions, 2005] mostraram que possvel a utilizao desse algoritmo para uso em gerao de cracks surface em jogos, mas para tanto foi necessrio um trabalho de aprimoramento e otimizao. Uma das melhorias que foram feitas em relao proposta dessa monografia, foi fazer com que as ramificaes fossem desenhadas com linhas em substituio aos pontos. Outra melhoria implementada e que gerou bastante diferena visual foi o acrscimo do parmetro LINEGROWTH, que permite que sejam gerados cracks com linhas pais mais grossas que as linhas filho. Tambm o parmetro

DRAWCONNECTIONS permitiu que fossem gerados padres de cracks de vidro bastante semelhantes com os reais. Ao iniciar-se esse trabalho, tinha-se a hiptese de que o algoritmo de Prusinkiewicz [Runions, 2005] poderia ser utilizado para gerao de cracks em materiais como vidro, barro e concreto. Conclumos que a adaptao desse algoritmo para a gerao de cracks vivel, e que com as modificaes estruturais que foram implementadas, o modelo referenciado pde ser utilizado para simulao de cracking surface em jogos.

55

REFERNCIAS

[Bohn, 2005] Bohn, S; Platkiewicz, J; Andreotti, B; Adda_Bedia, M; Couder, Y. Hierarchical crack pattern as formed by successive domain divisions. II From disordered to deterministic behavior. Physical Review E 71, 2005. [Cook, 1986] Cook, R. L.. Stochastic sampling in computer graphics. In: ACM Transaction on Graphics 5, 1, pp 225240, 1986. [de Berg, 2008] de Berg, Mark et al. Computational Geometry: Algorithms and Applications, 3rd Edition, pp 99-101. Springer, 2008. [Gobron, 2000] Gobron, Stphane; Chiba, Norishige. Crack pattern simulattion based on 3D surface cellular automata. In: Proc. Of the International Conference on Computer Graphics, pp. 153-162, 2000. [Iben, 2006] Iben, Haylen N.; OBrien, James F.. Generating Surface Crack Patterns. In: ACM SIGGRAPH Symposium on Computer Animation, 2006. [Lorensen, 1987] Lorensen, William E; Cline, Harvey E.: Marching Cubes: A high resolution 3D surface construction algorithm. In: Computer Graphics, Vol. 21, Nr. 4, July 1987 [Martinet, 2004] Martinet, Aurlien; Galin, Eric; Desbenoit, Brett; Akkouche, Samir; Alpes, ArtisGRAVIR INRIA Rhne; Lyon 1, LIRIS CNRS UCB. Procedural Modeling of Cracks and Fratures. In: International Conference on Shape Modeling and Applications, pp 346-349, 2004. [Mitchell, 1987] Mitchell, D. 1987. Generating antialiased images at low sampling densities. In Computer Graphics, vol. 21, 6578. (Proceedings of SIGGRAPH 1987) [Rodrigues, 2009] Rodrigues, Rafael; Paravisi, Marcelo; Bicho, Alessandro; Jung, Claudio; Magalhaes, Leo Pini; Musse, Soraia. Tree Paths: A New Model for Steering Behaviors. In IVA 2009 Intelligent Virtual Agents, Amsterdam. [Runions, 2005] Runions, Adam; Fuhrer, Martin; Lane, Brendan; Federl, Pavol; RollandLagan, AnneGalle; Prusinkiewicz, Przemyslaw. Modeling and visualization of leaf venation patterns. ACM Transactions on Graphics 24(3), pp. 702711, 2005. [Shen, 2007] Shen, Chen; Shah, Apurva. Extracting and parametrizing temporally coherent surfaces from particles. In: ACM SIGGRAPH 2007 Sketches. [Smith, 2003] Smith, Colin; Prusinkiewicz, Przemyslaw; Samavati, Faramarz. Local Specification of Surface Subdivision Algorithms. In: Proceedings of AGTIVE 2003, vol. 3062 of Lecture Notes in Computer Science, pp 313-327. [Smith, 2006] Smith, Colin. On Vertex-Vertex Systems and Their Use in Geometric and Biological Modelling. Tese submetida Universidade de Calgary como requisito parcial para obteno de doutorado em filosofia, 2006.

Anda mungkin juga menyukai