• Nenhum resultado encontrado

Jogos 2D em geometrias não euclidianas: um modelo para encapsulamento geometricamente independente

N/A
N/A
Protected

Academic year: 2021

Share "Jogos 2D em geometrias não euclidianas: um modelo para encapsulamento geometricamente independente"

Copied!
82
0
0

Texto

(1)

Universidade Federal da Bahia

Universidade Estadual de Feira de Santana

DISSERTAÇÃO DE MESTRADO

Jogos 2D em geometrias não euclidianas: um modelo para

encapsulamento geometricamente independente

Filipe Deó Guimarães

Mestrado em Ciência da Computação – MMCC

Salvador

29/09/2015

(2)
(3)

FILIPE DEÓ GUIMARÃES

JOGOS 2D EM GEOMETRIAS NÃO EUCLIDIANAS: UM

MODELO PARA ENCAPSULAMENTO GEOMETRICAMENTE

INDEPENDENTE

Dissertação apresentada ao Mestrado

em Ciência da Computação da

versidade Federal da Bahia e

Uni-versidade Estadual de Feira de

San-tana, como requisito parcial para

ob-tenção do grau de Mestre em Ciência

da Computação.

Orientador: Prof. Dr. Vinícius M. Mello

Salvador

29/09/2015

(4)

Sistema de Bibliotecas da UFBA

Guimarães, Filipe Deó.

Jogos 2D em geometrias não euclidianas: um modelo para encapsulamento geometricamente independente / Filipe Deó Guimarães. - 2015.

82 p.: il. Inclui apêndice.

Orientador: Prof. Dr. Vinícius M. Mello.

Dissertação (mestrado) - Universidade Federal da Bahia, Instituto de Matemática, Universidade Estadual de Feira de Santana, Salvador, 2015.

1. Geometria não-Euclidiana. 2. Encapsulamento. 3. Jogos eletrônicos. 4. Topologia. I. Mello, Vinícius M. II. Universidade Federal da Bahia. Instituto de Matemática. III. Universidade

Estadual de Feira de Santana. IV. Título.

CDD - 516.9 CDU - 514.13

(5)

iii

TERMO DE APROVAÇÃO

FILIPE DEÓ GUIMARÃES

JOGOS 2D EM GEOMETRIAS NÃO

EUCLIDIANAS: UM MODELO PARA

ENCAPSULAMENTO GEOMETRICAMENTE

INDEPENDENTE

Esta dissertação foi julgada adequada à ob-tenção do título de Mestre em Ciência da Computação e aprovada em sua forma final pelo Mestrado em Ciência da Computação da UFBA-UEFS.

Salvador, 29 de Setembro de 2015

Prof. Dr. Vinícius M. Mello UFBA - Universidade Federal da Bahia

Prof. Dr. Perfilino E. Ferreira Júnior UFBA - Universidade Federal da Bahia

Prof. Dr. Eduardo M. F. Jorge UNEB/SENAI Cimatec

(6)
(7)

AGRADECIMENTOS

Foram muitas as dificuldades que passei nos últimos anos. Em meio a todos os problemas, algumas pessoas estiveram ao meu lado e me ajudaram, de variadas formas, a não perder o foco. A cada uma delas, o meu muito obrigado.

Especial e primeiramente, a minha eterna gratidão a Deus, pois sei que nada seria possível se não por Ele.

Agradeço aos meus pais, Braz e Elcilene, pelo constante apoio e suporte durante esse tão turbulento período. Sou grato também por toda a dedicação e compreensão que têm por mim desde os primeiros momentos da minha vida. Obrigado por nunca medirem esforços.

Agradeço à minha namorada, Luana, pelo companheirismo e apoio em todos os mo-mentos difíceis e pelas alegrias que recarregam os meus ânimos. Além disso, agradeço a constante motivação e por todo o esforço para compreender, opiniar e ajudar na constru-ção do meu projeto através das tão valiosas revisões de texto.

Agradeço a Andrey Oliveira e Leonardo Xavier pelo auxílio no desenvolvimento das ilustrações. Sem eles, este seria mais um trabalho predominantemente monocromático.

E, finalmente, gostaria de agradecer àqueles que viabilizaram academicamente este trabalho: meus professores. Especialmente ao meu orientador Vinícius Mello, pela solici-tude, compreensão e disponibilidade desde o processo de escolha do tema até o momento final. Ainda, agradeço a Luiz Velho pelo pontapé inicial no diálogo que culminou na ideia deste trabalho, além do incentivo e apoio na publicação e divulgação do jogo desenvolvido como resultado prático deste trabalho.

(8)
(9)

RESUMO

Este trabalho apresenta uma nova abordagem para o desenvolvimento de jogos em geo-metrias não euclidianas com a introdução de um novo modelo de encapsulamento. Nesse modelo, atributos com dependência geométrica são abstraídos de forma a simplificar a implementação e, assim, é possível dissociar a codificação do jogo do espaço geométrico a ser utilizado, seja ele euclidiano, elíptico ou hiperbólico. É considerado, aqui, que um jogo apresenta três características fundamentais: geometria, topologia e mecânica. A partir dessa consideração, um modelo genérico capaz de trabalhar diferentes tipos de geometria é definido e incorporado ao modelo de encapsulamento proposto.

Por fim, como forma de atestar a viabilidade de uso do modelo de encapsulamento, este trabalho apresenta o desenvolvimento de uma versão do jogo Asteroids, disponível nas três geometrias citadas anteriormente. Desta forma, o método de encapsulamento se apresenta ainda como um método prático de contraste entre espaços geométricos, gerando ambientes interativos em diferentes geometrias a partir de uma única implementação. Palavras-chave: Geometria; não euclidiano; encapsulamento; jogos 2D; mecânica geométrica; independência geométrica; integrador variacional.

(10)
(11)

ABSTRACT

This work presents a novel approach for the development of games on non-Euclidean geometries with the introduction of an innovative encapsulation model. In this model, attributes with geometric dependence are abstracted in order to simplify the implemen-tation; hence it is possible to dissociate the coding from the geometric space used in the game, whether it’s euclidean, elliptical or hyperbolic. This work considers that a game is composed of three key features: geometry, topology and mechanics. From this consi-deration, a generic model - able to work with different geometry types - is defined and incorporated into the proposed encapsulation model.

Finally, in order to attest the feasibility of using the encapsulation model, this work presents the game development of an Asteroids version, available in all three abovementi-oned geometries. Thus, the proposed encapsulation model also presents itself as a practi-cal method of comparison between geometripracti-cal spaces, caplable of producing interactive environments in different geometries from a single implementation.

Keywords: Geometry; non-euclidean; game; encapsulation; geometric mechanics; geo-metric independence; variational integrator.

(12)
(13)

SUMÁRIO

Capítulo 1—Introdução 1

1.1 Motivação . . . 2

1.2 Objetivo . . . 3

1.3 Estrutura do trabalho . . . 3

Capítulo 2—Revisão da literatura 5 2.1 Geometrias . . . 5

2.1.1 Geometria euclidiana . . . 6

2.1.2 Geometria não euclidiana . . . 7

2.1.2.1 Teoria da Relatividade . . . 10

2.2 Jogos “euclidianos” . . . 12

2.2.1 Jogos “não euclidianos” . . . 14

2.3 Tecnologias . . . 16

2.3.1 WebGL . . . 16

2.3.2 CoffeeScript . . . 17

2.4 Conclusão . . . 19

Capítulo 3—Adaptação entre geometrias 21 3.1 Modelo de encapsulamento . . . 22

3.2 Geometria . . . 23

3.2.1 Métricas . . . 23

3.2.2 Isometrias . . . 24

3.2.3 Círculo geodésico (O,R) . . . 25

3.3 Topologia . . . 25

3.4 Mecânica geométrica discreta . . . 29

3.4.1 Atualização geodésica . . . 32

3.5 Modelo representativo . . . 32

3.5.1 Shaders . . . 36

Capítulo 4—Metodologia 41 4.1 Experimento prático - Asteroids . . . 41

4.1.1 Objetos . . . 42

4.1.2 Estrutura e funcionalidades . . . 44 xi

(14)

xii SUMÁRIO Capítulo 5—Conclusões 47 5.1 Considerações finais . . . 48 5.1.1 Publicações . . . 48 5.2 Contribuições . . . 49 5.3 Trabalhos futuros . . . 49 Apêndice A—Implementações 51 A.1 Objetos . . . 51

A.2 Estrutura interna . . . 55

(15)

LISTA DE FIGURAS

2.1 Representação geométrica dos postulados de Euclides. . . 6

2.2 Quadrilátero de Saccheri: Utilizado na tentativa de provar o postulado das paralelas através do método de redução ao absurdo (reductio ad absurdum), que é uma prova por contradição. . . 8

2.3 Respectivamente, da esquerda para a direita, triângulos nos espaços elíp-tico, hiperbólico e euclidiano. . . 9

2.4 Representação da trajetória da luz de uma estrela atrás do Sol. . . 11

2.5 Representação da curvatura espacial criada pelos efeitos da gravidade. . . 11

2.6 Possíveis geometrias do universo. . . 12

2.7 Amostra de alguns jogos clássicos. . . 13

2.8 Exemplo de alguns jogos atuais, representando a evolução dos conceitos presentes nos jogos apresentados na figura 2.7. . . 13

2.9 Exemplos de jogos que fazem uso de geometrias não euclidianas. . . 15

2.10 Pipeline de renderização WebGL. . . 18

3.1 As diferentes renderizações da prova de conceito, Asteroids, renderizada utilizando respectivamente as geometrias euclidiana, elíptica e hiperbólica. 22 3.2 Descrição por identificação. . . 26

3.3 Demonstração da colagem das superfícies representadas na figura 3.2. A representação da colagem do toro encontra-se na figura 3.8(b). . . 27

3.4 Continuidade do espaço. . . 27

3.5 Interação através da continuidade do espaço. . . 28

3.6 Representação do espaço de recobrimento de um toro. . . 28

3.7 A continuidade do espaço representado é demonstrada para cada uma das diferentes geometrias em uso. . . 29

3.8 Formação de um toro. . . 29

3.9 Formação de um bitoro. . . 30

3.10 Representação visual da formação de um bitoro através da colagem dos lados opostos de um octógono: octógono colado pelos lados diametralmente opostos. . . 30

4.1 Composição da GUI. . . 46

5.1 Implementação do jogo Asteroids. . . 48

(16)
(17)

LISTA DE CÓDIGOS

2.1 Canvas 2D . . . 16

2.2 Canvas WebGL . . . 17

3.1 Cálculo de atualização euclidiana . . . 33

3.2 Cálculo de atualização elíptica . . . 33

3.3 Solução do sistema . . . 34

3.4 Cálculo de atualização hiperbólica . . . 35

3.5 Vertex shader universal . . . 36

3.6 Fragment shader euclidiano . . . 36

3.7 Fragment shader elíptico . . . 37

3.8 Fragment shader hiperbólico . . . 39

4.1 Atualização do objeto . . . 43

4.2 Geometrias . . . 44

A.1 Classe SpaceShip . . . 51

A.2 Classe Bullet . . . 52

A.3 Classe Asteroid . . . 53

A.4 Classe World . . . 53

A.5 Classe Game . . . 55

A.6 Starfield - Vertex Shader . . . 59

A.7 Starfield - Fragment Shader . . . 59

(18)
(19)

Capítulo

1

Este capítulo apresenta as ideias e os conceitos introdutórios referentes a este trabalho. Nele, serão abordados o contexto no qual este estudo foi desenvolvido e as motivações que embasaram este projeto. Por fim, os objetivos desta dissertação serão expostos.

INTRODUÇÃO

A geometria euclidiana está presente em praticamente todos os aspectos da nossa vida. Da nossa forma de pensar em distâncias à maneira como representamos um mundo imaginário num jogo eletrônico, ela está consolidada em nossa sociedade. Entretanto, a geometria euclidiana não é mais que uma fração de um conjunto de outras geometrias que são tão consistentes quanto a própria. A apresentação destas outras geometrias, não euclidianas, costuma ser feita de maneira teórica e, consequentemente, abstrata. Porém, quando novos significados são dados para conceitos clássicos, como o de um círculo ou de uma reta, novos desafios são criados, tornando vantajosa a utilização de maneiras mais adequadas para a introdução desses conceitos. Neste contexto, a utilização de informação visual é de extrema relevância, como discute [Kaleff 2010], observando a importância das imagens visuais e mentais e defendendo o seu uso na representação de “conceitos matemáticos em uma sociedade cada vez mais influenciada pelas mídias visuais”.

A representação visual dos jogos eletrônicos, desde a sua concepção, vem sendo feita predominantemente atráves da geometria euclidiana. Porém, há algum tempo, a utili-zação dessa geometria tem ocorrido não mais por uma limitação técnica, mas por uma simples “convenção”. A capacidade que os jogos têm de introduzir novos conceitos e de gerar engajamento no jogador é única, a ponto de gerar fenômenos como a “gameficação”. Portanto, a utilização de jogos como uma maneira lúdica e intuitiva para apresentar um novo modelo de geometria, não euclidiana, se torna cada vez mais promissor. Interagir com um jogo em diferentes espaços geométricos, sem alterar o conteúdo representado, traz grandes vantagens enquanto forma de aprofundar o conhecimento acerca das geo-metrias utilizadas. Além de gerar uma visão crítica do que passa ao seu redor, [Berro e Minter 2008] afirma que a comparação entre geometrias pode ainda ser empregada para viabilizar um novo olhar sobre aspectos já conhecidos.

(20)

2 INTRODUÇÃO A incorporação dos shaders no pipeline gráfico clássico1 fez com que o seu uso te-nha sido explorado de diversas maneiras, de aplicações em GPGPU (General-Purpose Computation on Graphics Processing Unit) [Owens et al. 2007] a processamento de ima-gens otimizado na GPU (Graphics Processing Unit) [Roodt, Visser e Clarke 2007]. A liberdade proporcionada, hoje, pelos shaders nos permite considerar uma forma de ren-derização completamente independente do que está sendo exibido e, com isso, é possível considerar uma maneira de encapsular o conteúdo de forma que ele possa ser renderizado em mais de uma geometria sem efeitos colaterais. Porém, considerando o caráter intera-tivo de um jogo, qualquer tipo de renderização empregada nele deve estar otimizada de forma que sua execução ocorra em tempo real sem afetar o seu gameplay.

1.1 MOTIVAÇÃO

A falta de conhecimento tanto dos desenvolvedores quanto dos consumidores finais -acerca das geometrias não euclidianas se deve ao fato de que a introdução e o ensino des-sas geometrias ainda acontece de forma precária. Estudos recentes, como [Leivas 2013] e [Santos 2009], retratam um cenário insatisfatório, no qual a maioria dos estudantes de matemática (licenciatura, mestrado e doutorado) desconhece as geometrias não eucli-dianas. Também, [Santos 2009] afirma que professores, questionados em sua pesquisa, acreditam que seria possível abordar este tema desde o ensino fundamental, embora os mesmos professores se sintam inseguros em trabalhar com um tema que não conhecem o suficiente. Ainda neste contexto, o trabalho de [Leivas 2013] conclui que é necessário incluir tópicos a respeito destas geometrias na “formação inicial dos futuros professores, bem como nos cursos de ação continuada”. À medida que docentes deixam de trabalhar noções não euclidianas na formação de seus alunos, é natural que este conhecimento se mantenha cada vez mais restrito. E, se essa deficiência pode ser constatada mesmo en-tre matemáticos, é evidente que essa carência é ainda maior na população geral. O que torna compreensível o distanciamento entre os jogos desenvolvidos atualmente e modelos geométricos não euclidianos.

A quebra do paradigma euclidiano é um dos principais aspectos relacionados ao estudo de geometrias não euclidianas. Representações de modelos geométricos não euclidianos resultam em visualizações inesperadas dentro da lógica euclidiana, e.g., uma reta, que seria linear e contínua, é visualizada como uma curva. A compreensão destes novos mo-delos geométricos incentiva também, ainda que indiretamente, o desenvolvimento lógico e dedutivo daqueles que fazem este tipo de exercício de abstração. No entanto, o enten-dimento de geometrias não euclidianas não representa apenas um exercício mental. Estes modelos geométricos, que vão além da proposta euclidiana, foram de extrema importân-cia para o desenvolvimento da Teoria da Relatividade, de Albert Einstein, e são ideais para se trabalhar com coordenadas na superfície terrestre, entre outros usos. Todavia, a reeducação destes procedimentos mentais, de forma a aceitar uma “nova” forma de considerar o espaço, segundo [Kaleff 2010], se apresenta como um árduo trabalho.

1Em [Luebke e Humphreys 2007] é apresentado o processo evolutivo das GPUs. Nele, destaca-se a

forma como o pipeline gráfico clássico (composto de funções fixas) se tornou flexível à medida que passou a utilizar unidades programáveis (shaders).

(21)

1.2 OBJETIVO 3 A abordagem de [Berro e Minter 2008] para o estudo da geometria hiperbólica incita a comparação de diferentes geometrias como forma de criar um olhar crítico e descons-truir o arquétipo euclidiano. Porém, a dificuldade de visualizar os conceitos envolvidos nas geometrias não euclidianas ainda é a principal barreira para pessoas de fora da área e até mesmo para especialistas, como dito anteriormente. [Camargo 2012] afirma que a Expressão Gráfica é um facilitador na construção e apropriação de novos conceitos, além de ser essencial na transmissão do conhecimento acerca destas geometrias. Assim, é possível inferir que uma forma de trabalhar estes conceitos visualmente seria de grande valia para a introdução destas geometrias tanto para população geral quanto para estu-dantes em um contexto educacional. Enquanto [Cabariti 2004] defende o uso de novas tecnologias no ensino de geometrias não euclidianas, [Lévy e Costa 1993] considera que a capacidade de simular um ambiente e suas reações tem um papel fundamental durante um aprendizado, e é justamente a imersão neste novo ambiente que a utilização de um jogo pode proporcionar. Logo, o uso de jogos como forma de apresentar os conceitos de geometrias não euclidianas, e até mesmo suas diferenças em relação ao modelo euclidiano, parece propício à ideia da utilização de jogos como forma de ensino (Digital Game-Based Learning) [Eck 2006], como é o caso do trabalho apresentado em [Weeks 2014].

1.2 OBJETIVO

Este projeto tem como objetivo a definição de um modelo de encapsulamento capaz de apresentar um jogo 2D qualquer em diferentes geometrias, controlando a representação do espaço geométrico utilizado na renderização do jogo diretamente pela GPU, através do uso de shaders. O ponto mais importante referente à encapsulação do jogo é a dissociação do desenvolvimento do jogo da representação que ele assumirá. Isto posto, teremos um modelo de visualização apto a apresentar um mesmo jogo em diversas geometrias, sem que sejam necessários ajustes específicos para cada uma das representações.

Notoriamente, a melhor forma de apresentar um novo conceito é contrastando-o com algo familiar. Assim, enquanto objetivo secundário, este trabalho propõe a utilização do modelo de encapsulamento na implementação de um jogo clássico, como forma de destacar o impacto que o modelo geométrico em uso tem sobre o jogo. Ou seja, permitir não só a interação com a versão euclidiana, já conhecida, como acrescentar “novos modos de jogo”, onde o jogo será representado dentro de um universo não euclidiano. E, assim, demonstrar tanto as novas possibilidades de interação que surgem ao se fazer uso de outros modelos geométricos quanto comprovar a viabilidade de uso do modelo de encapsulamento aqui proposto.

1.3 ESTRUTURA DO TRABALHO

A disposição do conteúdo deste trabalho se dá em forma de capítulos, contendo, no início de cada, uma pequena descrição das questões abordadas. Neste capítulo 1, foi feita uma introdução às ideias e aos conceitos que serão utilizados nesta dissertação. Ainda, foi discutido o contexto que motivou este projeto e seu escopo.

(22)

4 INTRODUÇÃO Com esse fim, uma apresentação histórica do desenvolvimento das geometrias será dis-posta, seguido de suas implicações nos jogos eletrônicos que são produzidos. Ainda, serão evidenciadas as tecnologias utilizadas nas implementações envolvidas nesta dissertação.

O capítulo 3 introduz a proposta de encapsulamento e discorre sobre as técnicas em-pregadas em sua viabilização. O fundamento da encapsulação consiste no uso de um modelo genérico, apto a representar corretamente diversos espaços geométricos. Finali-zando o capítulo, o modelo de representação, associado à encapsulação, é introduzido.

O capítulo 4 descreve a metodologia utilizada no desenvolvimento deste trabalho. Ademais, será discutida a prova de conceito deste trabalho.

O capítulo 5 apresenta a conclusão desta dissertação. Nele, serão discutidas as con-tribuições deste trabalho bem como os possíveis trabalhos futuros.

Por fim, o apêndice A apresenta alguns códigos utilizados na implementação da prova de conceito discutida no capítulo 4.

(23)

Capítulo

2

Neste capítulo, será apresentada a revisão da literatura e a fundamentação teórica que justifica este trabalho. Para tanto, serão abordados aspectos pertinentes às diferentes geometrias e suas utilizações, conceitos ligados a jogos e, por fim, dados relativos à implementação, como a API (Application Program-ming Interface) WebGL e a linguagem CoffeeScript.

REVISÃO DA LITERATURA

“Lines that are parallel meet at Infinity!” Euclid repeatedly, heatedly,

urged. Until he died,

and so reached that vicinity:

in it he found that the damned things diverged.

– Piet Hein, Grooks VI

2.1 GEOMETRIAS

Embora não haja um momento histórico exato para o início do estudo da geometria, sabe-se que a sua origem relaciona-sabe-se diretamente aos hábitos cotidianos, como a delimitação de uma área para o plantio ou a realização de alguma construção, tendo como fundamento o cálculo de áreas, superfícies e volumes [Presmic 2014]. Dessa forma, o estudo da geometria evoluiu naturalmente, em paralelo às necessidades do dia a dia e impasses científicos, até o momento em que a geometria euclidiana se mostrou insuficiente para as necessidades existentes. A popular Teoria da Relatividade, de Albert Einstein, é um dos muitos exemplos que só puderam ser desenvolvidos graças ao uso de geometrias não euclidianas. Nesta seção, será apresentada uma abordagem histórica do estudo da geometria, dos silogismos de Euclides à aceitação e utilização de geometrias não euclidianas.

(24)

6 REVISÃO DA LITERATURA 2.1.1 Geometria euclidiana

... by natural selection our mind has adapted itself to the conditions of the external world. It has adopted the geometry most advantageous to the species or, in other words, the most convenient. Geometry is not true, it is advantageous.

– Henri Poincaré, Science et méthode

Aproximadamente em 600 a.C., com Tales de Mileto, há registros das primeiras ten-tativas de dedução dos fatos geométricos. Seu aperfeiçoamento, entretanto, ocorreu com a publicação do livro Os Elementos, de Euclides, por volta de 300 a.C. A grande evolução por parte de Euclides foi apresentar a geometria de uma maneira sistemática e dedu-tiva, sendo assim o primeiro grande esforço para organizar esse assunto em um sistema axiomático [Gardner 1997].

Considerando a abordagem de dedução lógica a partir de informações anteriores, uti-lizada por Euclides, fez-se necessário um ponto de partida simples, sem demonstração, capaz de fundamentar esta sucessão de inferências. Assim, ele apresentou dois grupos de afirmações definidos como as noções comuns e os postulados, figura 2.1. Segundo [Presmic 2014], as noções comuns e os postulados não têm uma distinção clara, mas considera-se que as noções comuns seriam hipóteses aceitáveis a todas as ciências e os postulados seriam hipóteses próprias da geometria. Não convém, porém, a este trabalho se apro-fundar nas noções comuns ou nos postulados estabelecidos por Euclides n’Os Elementos. Contudo, com estas afirmações, foi criado o primeiro e mais duradouro modelo para o espaço físico, ensinado e estudado até hoje, do ensino fundamental aos cursos superiores: a geometria euclidiana.

(a) Postulado I. (b) Postulado II. (c) Postulado III. (d) Postulado IV. (e) Postulado V. Figura 2.1: Representação geométrica dos postulados de Euclides.

O modelo estabelecido por Euclides foi tido como perfeito por muitos anos, até que estudos mais minuciosos sobre sistemas axiomáticos apontaram algumas deficiências. Se-gundo [Presmic 2014], um sistema axiomático deve atender às propriedades de Comple-tude, Consistência e Independência. Ao considerar os fundamentos da teoria axiomática, fica claro que o trabalho apresentado por Euclides, com demonstrações carregadas de hipóteses implícitas e intuições, carecia de revisão.

A reconstrução do trabalho de Euclides veio por meio de David Hilbert (1862-1943), em sua obra Fundamentos da Geometria, na qual apresentou novas propostas de noções primitivas e axiomas, estabelecendo o primeiro conjunto completo de axiomas da geo-metria euclidiana, tendo como conceitos primitivos o ponto, a reta e o plano. Já em

(25)

2.1 GEOMETRIAS 7 1904, a geometria euclidiana proposta por Hilbert foi considerada tão consistente quanto a aritmética.

Postulados de Euclides. .

• I - Fique postulado traçar uma reta a partir de todo ponto até todo ponto. (Fi-gura 2.1(a).)

• II - Também prolongar uma reta limitada, continuamente, sobre uma reta. (Fi-gura 2.1(b).)

• III - E, com todo centro e distância, descrever um círculo. (Figura 2.1(c).) • IV - E serem iguais entre si todos os ângulos retos. (Figura 2.1(d).)

• V - E, caso uma reta, caindo sobre duas retas, faça os ângulos interiores e do mesmo lado menores do que dois retos, sendo prolongadas as duas retas, ilimitadamente, encontrarem-se no lado no qual estão os menores do que dois retos. (Figura 2.1(e).) Dos postulados de Euclides, o quinto parece não satisfazer às condições de simplicidade necessárias para ser a base de um sistema axiomático. [Presmic 2014] afirma, inclusive, que, por ser tão pouco evidente, durante vários séculos, inúmeras tentativas de demonstrar o quinto postulado como se fosse um teorema foram feitas.

O axioma de Playfair, do matemático escocês John Playfair (1748-1819), se tornou o mais conhecido equivalente do quinto postulado, mas muitos outros foram definidos ao longo dos anos. A simples existência de outros postulados, análogos ao quinto, torna mais evidente o quanto este não é óbvio. Por outro lado, ao negá-lo, juntamente com todos os postulados similares, é possível chegar a geometrias exóticas tão coerentes quanto a euclidiana.

2.1.2 Geometria não euclidiana

One geometry cannot be more true than another; it can only be more convenient.

– Henri Poincaré, La Science et l’Hypothèse

A abordagem do jesuíta Girolamo Saccheri (1667-1733) para a demonstração do pos-tulado das paralelas foi através do argumento de redução ao absurdo, publicada em seu livro Euclides ab omni naevo vindicatus. Esse método assume como hipótese uma propo-sição falsa a ser demonstrada. Caso alguma contradição venha a ser notada, isso implica que a proposição é verdadeira [Presmic 2014].

Ao apresentar o quadrilátero de Saccheri ABCD, figura 2.2, no qual os ângulos C e D são retos e os lados CA e DB são congruentes, a demonstração, aprofundada em [Presmic 2014], levou à consideração de três possibilidades para os ângulos A e B: ambos poderiam ser retos, obtusos ou agudos. Uma vez que a primeira possibilidade coincide com o quinto postulado de Euclides, tentou-se mostrar a contradição para os dois casos restantes. Assim, enquanto a hipótese dos ângulos obtusos se mostrou uma contradição, já que

(26)

8 REVISÃO DA LITERATURA o quadrilátero apresentaria uma soma maior do que 360°, a terceira hipótese trouxe à tona uma série de resultados coerentes apenas com os quatro primeiros postulados de Euclides. Estes resultados iniciais se enquadrariam em uma geometria não euclidiana e foram o início deste novo arquétipo.

(a) Respectivamente: reto, obtuso e agudo.

Figura 2.2: Quadrilátero de Saccheri: Utilizado na tentativa de provar o postulado das paralelas através do método de redução ao absurdo (reductio ad absurdum), que é uma prova por contradição.

Assim como Saccheri, Johann Heinrich Lambert (1728-1777) também utilizou um quadrilátero em sua abordagem, com três ângulos retos, o quadrilátero de Lambert. A sua demonstração foi semelhante à de Saccheri, não encontrando contradição ao tentar demonstrar a hipótese do ângulo agudo. Dentre as proposições de Lambert, destaca-se a deficiência ou excesso do triângulo, que apresenta um papel fundamental na geometria hiperbólica e na geometria elíptica [Presmic 2014], enquanto na geometria euclidiana essa deficiência ou excesso é sempre zero.

Mesmo com resultados intrigantes de trabalhos como os de Saccheri e Lambert, a descrença na possibilidade da existência de alguma geometria que não a euclidiana foi suficiente para tirar o foco destas descobertas. Apenas em 1820, quando Janos Bolyai (1802-1860) realizou a sua tentativa de negar - e não provar - o quinto postulado de Euclides, a possibilidade de existir uma geometria geral passou a ser considerada. Com isso, a geometria euclidiana passaria de uma verdade universal a um mero subconjunto de algo maior.

No entanto, foi apenas por meio de Friedrich Gauss (1777-1855) que esta nova geome-tria foi intitulada como não euclidiana. Todavia, as descobertas de Gauss não chegaram a ser publicadas por ele e são conhecidas, em sua maioria, pelas anotações e correspon-dências que ele manteve [Presmic 2014].

Juntamente com o russo Lobachewsky (1792-1856), acredita-se que Gauss e Janus Bolyai trabalharam na geometria não euclidiana na mesma época. No entanto, destes, Lobachewsky foi o primeiro a publicar suas descobertas e foi somente após a morte de Gauss, com a divulgação de suas anotações, que a comunidade científica passou a cogitar tais considerações acerca de uma nova geometria [Presmic 2014].

Grandes nomes da matemática deram continuidade e contribuiram com os estudos da geometria não euclidiana, mas foi Bernhard Riemann (1826-1866), aluno de Gauss, que definiu uma geometria geral composta dos estudos desses matemáticos: a geometria riemanniana. Essa geometria é válida para qualquer espaço de curvatura constante

(27)

[Pres-2.1 GEOMETRIAS 9 mic 2014]. Como esperado, a aceitação deste novo arquétipo foi lenta, até que, em 1868, Eugenio Beltrami (1835-1900) comprovou que não era possível provar o quinto postu-lado [Presmic 2014]. Demonstrando, assim, que a geometria hiperbólica é tão consistente quanto a euclidiana.

Para qualquer superfície, existe um número de Euler χ que diz respeito a sua topologia global [Weeks 2001]. A fórmula de Gauss-Bonnet determina a relação entre o número de Euler1de uma superfície com sua área e sua curvatura. Como uma superfície admite apenas uma única geometria homogênea, a curvatura κ, de uma superfície de geometria homogênea qualquer, deve ter o mesmo sinal do número de Euler referente à superfície [Weeks 2001]. Assim, uma superfície de área A, número de Euler χ e curvatura gaussiana constante κ possui a fórmula de Gauss-Bonnet representada por κA = 2πχ, onde κ = −1, 0ou +1, de acordo com a seguinte classificação:

• Espaço hiperbólico: curvatura do espaço é negativa. • Espaço euclidiano: curvatura é igual a zero.

• Espaço elíptico: curvatura é positiva. O espaço esférico é um caso especial deste espaço.

Esta classificação pode ser melhor compreendida através da análise do comportamento de um triângulo nos três modelos geométricos, figura 2.3.

(a) A soma dos ângulos internos de um triângulo é afetada pelo espaço onde o triângulo está inserido. Assim, a soma é maior que 180° no espaço elíptico, menor que 180° no espaço hiperbólico e exatamente 180° no espaço euclidiano.

Figura 2.3: Respectivamente, da esquerda para a direita, triângulos nos espaços elíptico, hiperbólico e euclidiano.

Graças aos novos modelos geométricos, a comunidade científica pôde iniciar estudos acerca de fenômenos que antes seriam impossíveis. Em especial, o conceito intrínseco de curvatura do espaço, presente nestas geometrias, foi fundamental para que Albert Einstein (1879-1955) desenvolvesse a Teoria da Relatividade, um dos fundamentos da física moderna, no qual a curvatura do espaço é afetada pela matéria que o preenche.

1O número de Euler (ou característica de Euler) é um invariante topológico representado através de

um número inteiro χ, tal que χ = v − e + f, onde v representa o número de vértices, e o número de arestas e f o número de faces referentes à divisão da superfície em questão.

(28)

10 REVISÃO DA LITERATURA 2.1.2.1 Teoria da Relatividade A expressão Annus mirabilis, ano maravilhoso, foi utilizada pelo inglês John Dryden (1631-1700), em seu poema de mesmo título, em 1667 [Dryden 1915]. Nele, o poeta utiliza a expressão para indicar que, em meio a todas as adversidades ocorridas em Londres naquele ano, as consequências poderiam ter sido muito piores e considera o ano de 1666 como uma dádiva divina. Segundo [Oxford Dictionaries 2015], esse foi o primeiro indício do uso da expressão na língua inglesa. A partir de então, ao longo dos anos, a expressão passou a ser utilizada para indicar um ano significante ou impactante de alguma forma, particularmente para o desenvolvimento do conhecimento humano.

Em especial, o ano de 1905 é considerado por muitos o Annus mirabilis de Einstein. Nesse ano, ao longo de sete meses, ele publicou quatro artigos onde abordou: o com-portamento do fóton como uma partícula [Einstein 1905]; o movimento browniano dos fluidos [Einstein 1905]; a teoria da relatividade especial (ou restrita) [Einstein 1905]; e a equivalência massa-energia [Einstein 1905].

A relatividade restrita recebeu esse nome por considerar apenas um caso especial, no qual os efeitos da gravidade são ignorados. Através da relatividade restrita, Einstein propôs o conceito de espaço-tempo como uma entidade geométrica única, indo de encontro aos conceitos newtonianos de espaço e tempo independentes [Pesic 2007]. Desta forma, Einstein considerou o espaço-tempo como um variedade quadridimensional, composta de três dimensões espaciais e uma temporal.

A Teoria da Relatividade, como hoje é conhecida, é composta pela relatividade restrita e um segundo trabalho, publicado - também por Einstein - em 1915: a relatividade geral. A partir da relatividade geral, os efeitos da gravidade são levados em consideração. Isso introduz a ideia de um espaço-tempo curvo, pela gravidade, e implica na propagação da luz através de geodésicas, e não mais em linhas retas, figura 2.4. A relatividade geral considera, ainda, que a matéria tem efeito direto sobre a curvatura do espaço-tempo, e essa relação se dá justamente por meio da gravidade, figura 2.5. Assim, [Wheeler e Ford 2000] resume a teoria geral da relatividade da seguinte forma: “o espaço-tempo diz à materia como se mover, a materia diz ao espaço-tempo como se curvar”.

A descrição do espaço-tempo só é possível graças às geometrias não euclidianas, ca-pazes de representar satisfatoriamente um espaço com curvatura. A figura 2.5 demonstra o efeito do potencial gravitacional da matéria no espaço-tempo, através da deformação do seu sistema de coordenadas, o tecido2 do espaço-tempo. É possível compreender essa ideia facilmente ao imaginar o espaço-tempo como um lençol esticado. Ao colocar um objeto sobre o “lençol”, o efeito - natural - que ocorre é o “lençol” se curvar naquele ponto. Assim, a figura 2.5(a) exemplifica essa ideia ao evidenciar o Sol curvando o “lençol”, de forma que o raio de luz sofre um decaimento na sua rota, graças à curvatura do “lençol”. Quando Alexander Friedmann (1888-1925) aplicou a Teoria da Relatividade à ideia de um universo em expansão, ele encontrou uma relação entre a densidade da matéria e a curvatura do espaço [Weeks 2001]. Nas equações de Friedmann, é possível determinar a geometria geral do universo a partir do parâmetro de densidade Ω, usado para indicar a curvatura do universo. Esse parâmetro é definido pela proporção entre a densidade do

(29)

2.1 GEOMETRIAS 11

(a) Exemplo da propagação geodésica da luz, afetada pelo potencial gra-vitacional do Sol. Neste exemplo, um observador na Terra tem a ilusão de que a estrela está em outra posição.

Figura 2.4: Representação da trajetória da luz de uma estrela atrás do Sol.

(a) Trajetória geodésica de um raio de luz.

Imagem retirada de [Pe’er 2013]. (b) A deformação gerada por cada corpoé proporcional à sua massa. Imagem reti-rada de [Britannica 2007].

Figura 2.5: Representação da curvatura espacial criada pelos efeitos da gravidade. universo, ρ, e a densidade crítica, ρc:

Ω = ρ ρc

. (.)

Deste modo, caso Ω < 1, a curvatura do universo será negativa. Se Ω = 1, a curvatura do universo será plana. Já no caso de Ω > 1, a curvatura do universo será positiva. A figura 2.6 retrata essas condições.

(30)

12 REVISÃO DA LITERATURA

(a) Imagem retirada de [Team 2011].

Figura 2.6: Possíveis geometrias do universo.

2.2 JOGOS “EUCLIDIANOS”

Quando os primeiros jogos eletrônicos utilizaram recursos gráficos para representar seus elementos, eles sofriam de severas limitações relativas à capacidade de processamento disponível para uma representação gráfica satisfatória. Neste cenário, as representações visuais, desde as mais básicas, contavam com algum grau de abstração por parte do jogador para a sua compreensão [Wolf 2003]. Logo, utilizar o espaço euclidiano era mais do que natural; era necessário. Até mesmo a movimentação de um objeto na tela, elementar para a dinâmica de um jogo3, tendia a movimentos majoritarimente verticais devido à rasterização utilizada na época e à dificuldade de se implementar movimentos horizontais. A figura 2.7 traz alguns exemplos de jogos clássicos.

Mesmo com a evolução da capacidade gráfica, que deixou boa parte das limitações iniciais para trás, a geometria euclidiana ainda se mantém como uma constante na vasta maioria dos jogos atuais, figura 2.8. Segundo [Wolf 2003], a primeira tarefa de um jo-gador, frente a um novo jogo, é identificar os diferentes elementos apresentados na tela e entender seus comportamentos e como funcionam. Assim, é essencial para a curva de aprendizado do jogador que ele consiga distinguir o papel e função de cada elemento exposto, independentemente de serem menos intuitivos ou mais abstratos, para que seja capaz de compreender plenamente o jogo em questão.

Ao mencionar a compreensão de um jogo por parte do jogador, é interessante defini-lo. E, ao tentar responder o que faz de um jogo um jogo, o mais antigo debate na comunidade gamer é trazido à tona: a definição de jogo. Em parte, esta dificuldade deriva da própria palavra “jogo”, sem a conotação de jogos eletrônicos, que varia de dicionário a

3 Sempre que o termo ‘jogo’ for empregado neste trabalho, estará se referindo aos jogos eletrônicos.

(31)

2.2 JOGOS “EUCLIDIANOS” 13

(a) PONG, desenvolvido pela

Atari, Inc. em 1972. (b) Space Invaders,desenvolvido pela Taito em 1978.

(c) Asteroids, desenvolvido pela Atari, Inc. em 1979

(d) Pac-Man, desenvolvido

pela Namco em 1980. (e) Donkey Kong, desenvolvidopela Nintendo em 1981. (f) Frogger, desenvolvido pelaKonami em 1981. Figura 2.7: Amostra de alguns jogos clássicos.

(a) Grand Slam Tennis 2, pu-blicado pela EA SPorts em 2012.

(b) StarCraft II: Wings of Li-berty, publicado pela Blizzard Entertainment em 2010.

(c) Donkey Kong Country: Tropical Freeze, publicado pela Nintendo em 2014.

Figura 2.8: Exemplo de alguns jogos atuais, representando a evolução dos conceitos presentes nos jogos apresentados na figura 2.7.

dicionário, englobando qualquer tipo de passatempo e até mesmo ações individuais que sejam consideradas prazerosas para o indivíduo que as executa. [Parlett 1999] apresenta

(32)

14 REVISÃO DA LITERATURA o seguinte comentário, em tradução livre, a respeito da palavra jogo: “A palavra é usada para tantas atividades diferentes que não vale a pena insistir em nenhuma definição proposta. Contudo, ela é um termo lexicológico instável, com muitos amigos e relações em diversos campos.”, e.g., jogos de carta, jogos de tabuleiro, jogos de azar, jogos de interpretação, jogos eletrônicos, teoria dos jogos, jogar futebol, jogos olímpicos, jogos de guerra etc.

Ao voltar a análise para os jogos eletrônicos, uma situação semelhante pode ser no-tada: jogos de FPS (first person shooter), de ação, de puzzle, de aventura, de point and click, de esporte, de simulação, de RPG (role playing game), de plataforma etc. Os gê-neros disponíveis para classificação são quase tão diversificados quanto a oferta dos jogos disponíveis para representar cada um deles e, mesmo assim, toda essa diversidade de rótulos ainda falha em distinguir um jogo de outra aplicação interativa qualquer. No entanto, para o contexto deste trabalho, a definição de jogo não é tão importante quanto a definição do que compõe um jogo.

Definição 1. Este trabalho utilizará a ideia de universo de jogo, ou simplesmente uni-verso, como um objeto abstrato que encapsula todas as definições relativas à formação de um jogo. As formas de utilização e o propósito do conceito de universo serão aprofunda-dos no capítulo 3 e sua aplicação prática será demonstrada no capítulo 4. Inicialmente, é suficiente pensar no universo de jogo através de seus três pilares fundamentais:

• Geometria: descrita através de uma métrica específica.

• Topologia: definida por uma regra de colagem capaz de representar em tela a topologia do espaço.

• Mecânica: evolução dos objetos no espaço de acordo com o espaço geométrico utilizado, resultando na dinâmica e cinemática do universo.

Através do conceito de universo, é possível realizar um comparativo diferenciado entre jogos existentes. Porém, a geometria euclidiana ainda é uma constante na grande maioria dos jogos que poderiam ser considerados, sendo utilizada primariamente como forma de manter a navegação e a representação do espaço intuitiva para o jogador. Entretanto, uma vez que o uso desta geometria não é mais imposto por limitações de hardware, jogos que utilizam outras geometrias vêm quebrando esse paradigma ao trazer uma nova forma de ver o mundo no qual o jogador se encontra.

2.2.1 Jogos “não euclidianos”

HyperRogue é um dos jogos comerciais mais populares a deixar a normatividade da geometria euclidiana de lado. Dando lugar a um “estranho mundo não euclidiano”, como anuncia em sua descrição, HyperRogue faz uso de um plano hiperbólico para representar o espaço onde o jogo se passa [HyperRogue 2015]. A representação de mundo neste jogo se dá através do disco de Poincaré, embora ele faça uso do modelo de hiperbolóide de Minkowski para cálculos internos, como os de métrica [HyperRogue Programming 2015], figura 2.9(a).

(33)

2.2 JOGOS “EUCLIDIANOS” 15 Como resultado do uso do plano hiperbólico, quanto mais próximo da borda se está, maior é a distância representada por um determinado pixel em comparação com um pixel que se encontra mais próximo do centro. Como na geometria hiperbólica o limite de um círculo de raio r é exponencial a r, contrastando com a linearidade que seria encontrada em um plano euclidiano, HyperRogue torna quase impossível que o seu jogador consiga retornar a um lugar em que já esteve [Eye of Hydra 2015].

(a) HyperRogue (b) Jogos hiperbólicos de Jeff Weeks

Figura 2.9: Exemplos de jogos que fazem uso de geometrias não euclidianas. A definição do que é um jogo é uma questão ainda em debate, como mencionado na seção anterior. Ciente desta conjuntura, [Byce 2012] diz que, se fosse forçado a responder esta questão, definiria um jogo como “um software concebido para permitir que um usuá-rio experimente um cenáusuá-rio único, com um conjunto própusuá-rio de regras e sistemas, e um game design significativo” (tradução livre). A essência de um jogo, de acordo com [Bur-gun 2012], está ligada às “decisões ambíguas” presentes nele. Neste contexto, “decisões ambíguas” se refere ao fato de que o nível de experiência de um jogador com relação a jogos anteriores é irrelevante para decisões tomadas em um novo jogo. Para [Burgun 2012], a autonomia que um novo jogo possui, em relação a conhecimentos prévios, é o que os torna algo tão empolgante. Quando um jogo inovador atinge seu público alvo, ele exercita a mente do jogador de novas formas, forçando-o a tomar decisões de acordo com as novas circunstâncias apresentadas [Burgun 2012].

Talvez, o conceito mais importante para a experiência de um jogo seja a suspensão de descrença ou, ainda, a de encenação de crença, discutida por [Fragoso 2013]. Ao se inserir no universo proposto pelo jogo, o jogador está se submetendo às mecânicas que o regem e, assim, subconscientemente, se predispõe a aceitá-lo. Esta característica dos jogos ratifica as vantagens de utilizá-los pedagogicamente.

(34)

16 REVISÃO DA LITERATURA é apresentada uma coletânea de jogos que abordam a geometria hiperbólica de uma forma mais lúdica, retratando jogos de labirintos, sinuca ou mesmo sudoku em superfícies hi-perbólicas, esféricas ou planas, figura 2.9(b). O projeto tem como objetivo introduzir estudantes de geometria e topologia a efeitos inerentes à curvatura da geometria como a holonomia ou a convergência/divergência geodésica [Weeks 2014]. Ainda, as diferentes possibilidades de visualização do plano hiperbólico da aplicação demonstram que os dife-rentes modelos de Beltrami-Klein e Disco de Poincaré representam respectivamente uma projeção central, na origem, e uma projeção estereográfica de uma mesma superfície, de raio fixo, no espaço de Minkowski [Weeks 2014].

2.3 TECNOLOGIAS

Nesta seção, as principais tecnologias empregadas no desenvolvimento deste trabalho de dissertação serão apresentadas. A escolha dessas tecnologias se deu de forma a possibilitar um desenvolvimento multiplataforma utilizando HTML5, embora o modelo de encapsu-lamento proposto, descrito na seção 3.1, esteja apto a ser integrado em outros ambientes de desenvolvimento.

2.3.1 WebGL

A ampla utilização do HTML5 trouxe diversas vantagens para os desenvolvedores e, indiretamente, para todos os usuários finais. Recursos multimídia, que antes dependiam de um plug-in ou mesmo de uma aplicação à parte, hoje possuem elementos próprios para áudio, vídeo e tela (canvas). Em particular, o elemento canvas é um padrão que define uma API (Application Programming Interface) gráfica de modo imediato [Levkowitz e Kelleher 2012]. Esse elemento permite que desenvolvedores manipulem imagens 2D e até animações, utilizando apenas HTML e JavaScript. A marcação HTML define um DOM (Document Object Model) que pode ser acessado e manipulado dinamicamente por um código JavaScrit. O código 2.1 é um exemplo simples do traço de uma reta, mas nele é possível observar a instanciação básica para a utilização do canvas.

Código 2.1: Canvas 2D 1 <canvas id="myCanvas" width="100" height="100" > </canvas> 2 <script>

3 var canvas = document.getElementById("myCanvas"); 4 var ctx = canvas.getContext("2d");

5 ctx.moveTo(0,0); 6 ctx.lineTo(100,100); 7 ctx.stroke(); 8 </script>

No entanto, é o uso do canvas em um outro contexto que traz um dos maiores avanços no HTML5: o WebGL. A utilização do canvas para o WebGL é simples e pode ser vista no código 2.2. O WebGL é um padrão na web, multiplataforma e isento de royalties, de uma API de baixo nível para gráficos 3D baseado no OpenGL ES 2.0 [Marrin 2011]. O OpenGL ES (Embedded Systems) 2.0 é uma adaptação da API do OpenGL voltada

(35)

2.3 TECNOLOGIAS 17 para aparelhos com poder de processamento inferior, como celulares ou tablets [Evans et al. 2014]. Desenvolvido pelo Khronos Group, a mesma organização responsável pelo OpenGL, o WebGL se consolidou através do WebGL Working Group - grupo formado pela Apple, Google, Mozilla e Opera. Desta forma, atualmente todos os principais browsers dão suporte ao WebGL. Assim, uma das maiores vantagens do WebGL é a sua capacidade de se integrar naturalmente a outros conteúdos web.

Código 2.2: Canvas WebGL 1 <canvas id="myCanvas" width="100" height="100" > </canvas>

2 <script>

3 var canvas = document.getElementById("myCanvas");

4 // Caso haja algum problema com o contexto padrão, o experimental é utilizado. 5 var ctx = canvas.getContext("webgl") || canvas.getContext("experimental-webgl"); 6 //Criar shaders...

7 //Criar buffers... 8 //Inicializar shaders... 9 //Renderizar...

10 </script>

Por permitir que desenvolvedores utilizem o potencial de renderização e processamento paralelo, as operações de renderização do OpenGL ES, e consequentemente do WebGL, costumam definir um array de vértices na CPU (Central Processing Unit) para posterior processamento na GPU. O uso da API pura do WebGL, analogamente ao OpenGL, permite que haja um controle profundo do processo de renderização e, consequentemente, exige mais do desenvolvedor tanto no processo de aprendizagem quanto na codificação. O WebGL segue o mesmo pipeline do OpenGL ES, sendo baseado em shaders, figura 2.10. Desta forma, é mandatório que o desenvolvedor faça uso de shaders próprios para controle dos vértices e fragmentos. Os shaders utilizados são definidos em GLSL (OpenGL Shading Language), uma linguaguem de alto nível. Com relação a variáveis, existem basicamente três tipos de declarações principais envolvidos no uso de shaders:

• Uniform: contém valores constantes durante toda a renderização do frame. Um uniform é enviando tanto para o vertex shader quanto para o fragment shader e é a maneira utilizada para se comunicar com os shaders.

• Attribute: contém valores específicos para cada vértice, não é global. Só está dis-ponível no vertex shader.

• Varying: atua como interface, exclusivamente, do vertex shader para o fragment shader, permitindo o compartilhamento de informações.

2.3.2 CoffeeScript

“A regra de ouro do CoffeeScript é: É apenas JavaScript.” , é assim que o CoffeeScript se apresenta em seu website [Ashkenas 2009]. Criado em 2009 por Jeremy Ashkenas, foi apenas em 2010 que o CoffeeScript atingiu sua primeira versão estável, e tem se

(36)

18 REVISÃO DA LITERATURA

(a) Processo de renderização WebGL

Figura 2.10: Pipeline de renderização WebGL.

popularizado grandemente desde então. O CoffeeScript é uma linguagem transcompilável para JavaScript, i.e., o código fonte em CoffeeScript serve como entrada para o seu compilador, que gera o código equivalente JavaScript como saída. Graças a isso, não há a necessidade de interpretação em tempo de execução. Inclusive, de acordo com [MacCaw 2012], o código gerado pelo compilador CoffeeScript, além de legível, tende a executar mais rápido do que um código equivalente em JavaScript escrito por uma pessoa. Ainda, é possível realizar o caminho inverso e converter códigos JavaScript para CoffeeScript através de projetos como o popular js2coffee, que realiza a transcompilação bidirecional [Cruz 2012].

Jeremy Ashkenas, em sua página oficial do GitHub [Ashkenas 2015], descreve o Cof-feeScript como Unfancy JavaScript, ou simplesmente “JavaScript descomplicado”. A sin-taxe do CoffeeScript herdou alguns dos recursos de linguagens que a inspiraram, como Ruby e Python [MacCaw 2012], e visa tanto a brevidade quanto a legibilidade do código. Focando em um código sucinto e conciso, o CoffeeScript utiliza, inclusive, espaços em branco significativos, como indentações, em sua sintaxe no lugar de parênteses e chaves desnecessárias. A otimização obtida é tal que ( [MacCaw 2012] chega a afirmar que) um código em CoffeeScript sofre uma redução de um terço a até metade do tamanho em relação a seu original em JavaScript.

Outro ponto importante, ao considerar a utilização do CoffeeScript, são as bibliote-cas. É possível utilizar qualquer biblioteca JavaScript em um projeto CoffeeScript sem problemas, ou mesmo bibliotecas CoffeeScript em um projeto JavaScript, isto pode sim-plificar bastante a integração com projetos já existentes [Ashkenas 2009]. As aplicações do CoffeeScript não se limitam ao navegador (web browser), como observa [MacCaw 2012], também é possível utilizá-lo em implementações server-side.

Entretanto, a adição de mais um compilador, entre o desenvolvedor e o JavaScript, não é a única desvantagem apresentada pelo CoffeeScript, como aponta [MacCaw 2012]. Quando comparado a linguagens mais estabelecidas, o CoffeeScript não apresenta uma comunidade tão grande. Porém, o número de adeptos tem apresentado um crescimento constante e, como prova de sua ampla utilização e integração, [MacCaw 2012] indica até mesmo o fato do CoffeeScript ter se tornado um padrão no Ruby on Rails 3.1.

Para novos desenvolvedores, o website oficial do CoffeeScript [Ashkenas 2009] -apresenta uma ótima introdução. Lá, é possível executar alguns códigos demonstrativos

(37)

2.4 CONCLUSÃO 19 no próprio browser, além de realizar alterações livres nos exemplos disponibilizados.

2.4 CONCLUSÃO

A partir da apresentação das geometrias discutidas no início deste capítulo e da breve discussão acerca do desenvolvimento de jogos, é possível compreender melhor a utilização do método de encapsulação especificado no capítulo 3. Nesse capítulo, será discutido o processo de desenvolvimento de um jogo de forma a abstrair a geometria em uso, permitindo que a implementação seja feita de forma unificada enquanto possibilita que o jogo seja representado em diferentes modelos geométricos.

(38)
(39)

Capítulo

3

Este capítulo descreve a proposta para adaptação entre espaços geométricos. Nele, será apresentado o modelo de encapsulamento proposto e seu funcionamento interno, composto por um paradigma genérico, capaz de adaptar a geometria, topologia e mecânica de um espaço de acordo com as necessidades de uso. Por fim, o modelo de representação será introduzido.

ADAPTAÇÃO ENTRE GEOMETRIAS

Esforços que fogem do padrão de texto e fórmulas, como ferramentas de ensino matemá-tico, ainda são, em sua maioria, atípicos. Todavia, a exposição [Um Olhar nos Espaços de Dimensão 3 2015] se distancia do usual ao introduzir “noções matemáticas sem fórmulas e com um mínimo de textos”. A exposição combina arte e interatividade em suas instalações como forma de possibilitar que o público adentre os ambientes tridimensionais discutidos. A abordagem sensorial, através de elementos audiovisuais, expõe aspectos geométricos de maneira clara e acessível para qualquer pessoa, sem a necessidade de definições ma-temáticas complexas. Este foi o método escolhido, pelos curadores da exposição, como forma de apresentar ao grande público os resultados do trabalho de Grigori Perelman, matemático contemporâneo responsável pela resolução da Conjectura de Poincaré [Um Olhar nos Espaços de Dimensão 3 2015].

Paralelamente, [Gunn 2010] apresenta um trabalho distinto, introduzindo o conceito de neutralidade métrica. A abordagem deste trabalho fez uso da geometria projetiva e, assim, conseguiu desenvolver um sistema de visualização metricamente neutro. O sistema posto suporta interação e imersão em métricas euclidianas, elípticas e hiperbólicas, tal como a exposição [Um Olhar nos Espaços de Dimensão 3 2015]. Ainda, [Gunn 2010] se aprofunda na explicação de como mesmo GPUs desatualizadas são capazes de lidar com as isometrias necessárias dos modelos projetivos de geometrias não euclidianas, conse-quentemente sendo capaz de integrar uma renderização em tempo real a um sistema de visualização metricamente neutro.

Como mencionado na seção 1.2, o objetivo primário deste trabalho é apresentar um modo eficaz de abstrair parte da complexidade envolvida no desenvolvimento de jogos não euclidianos através do uso de um modelo de encapsulamento, possibilitando até mesmo a utilização de geometrias distintas. A estruturação aqui proposta consiste em encapsular um determinado jogo de forma que seu desenvolvimento e manuntenção sejam

(40)

22 ADAPTAÇÃO ENTRE GEOMETRIAS independentes de uma geometria específica. De igual modo, as geometrias utilizadas na representação final do jogo ficam livres para sofrer alterações sem afetar o conteúdo representado. Diferentemente do trabalho apresentado por [Weeks 2014], o objetivo final deste projeto vai além de visualizar mais de uma geometria, o intuito é que, ao final do processo, exista uma nova representação do jogo para cada nova geometria utilizada que permaneça convidativa e estimulante ao jogador [Prensky 2001].

3.1 MODELO DE ENCAPSULAMENTO

Para que seja possível transpor um jogo entre diferentes espaços geométricos, é necessário que a sua composição seja conhecida. Assim, a encapsulação faz uso do conceito de universo, Definição 1, estabelecido na seção 2.2, como forma de definir os elementos que compõem o universo representado no jogo. Uma vez que esta definição ocorre, é possível extrapolar individualmente a geometria (seção 3.2), topologia (seção 3.3) e mecânica (seção 3.4), de forma a compor um modelo genérico capaz de converter corretamente o universo de um jogo para outro desejado.

Para que a renderização em múltiplas geometrias ocorra sem afetar o funcionamento correto do jogo, a implementação de funções, como detecção de colisão ou controle de mo-vimentação, são feitas tomando como base um modelo geométrico genérico para métricas internas e atualizações. O controle de qual geometria específica é utilizada nos cálculos internos se dá por meio da curvatura κ. Desta forma, todos os aspectos funcionais do jogo são associados ao tipo de geometria utilizado à medida que a geometria é definida, sem que seja necessária uma implementação para cada modelo geométrico.

Assim como seus controles internos, a renderização do jogo funciona de forma indepen-dente, através do uso de shaders em um ambiente WebGL. Uma vez definida a geometria em uso, existe um par de vertex shader e fragment shader distinto responsável pela ren-derização do jogo de acordo com as características geométricas daquela representação, figura 3.1.

(a) Espaço euclidiano. (b) Espaço elíptico. (c) Espaço hiperbólico. Figura 3.1: As diferentes renderizações da prova de conceito, Asteroids, renderizada utilizando respectivamente as geometrias euclidiana, elíptica e hiperbólica.

(41)

3.2 GEOMETRIA 23

3.2 GEOMETRIA

Para se criar um modelo de encapsulamento geometricamente genérico apto a transpor entre diferentes espaços geométricos, o primeiro passo é definir um modelo geométrico genérico. Comumente, abordagens top-down são empregadas ao lidar com geometrias, de forma que, ao considerar a geometria euclidiana, a métrica euclidiana já está implí-cita naquele espaço geométrico. No entanto, visando um modelo geométrico genérico, uma abordagem bottom-up surge como uma alternativa promissora para a definição da geometria em uso. Assim, nesta seção, será apresentada uma métrica genérica, capaz de descrever corretamente uma geometria específica através da curvatura do espaço relativa a tal geometria, seja ela euclidiana ou não. Posteriormente, será introduzido um conjunto de isometrias genéricas que preservam as propriedades intrínsecas da geometria em uso a partir de sua curvatura. Por fim, dando continuidade ao desenvolvimento do modelo genérico, uma análise topológica dos espaços geométricos utilizados será feita na seção seguinte.

3.2.1 Métricas

Geometrias não euclidianas fazem uso de métricas que vão além da noção euclidiana de distância por linhas retas. Nesta seção, serão expostas algumas métricas gerais que podem ser adaptadas para diferentes geometrias de forma trivial.

O conceito de métrica se formaliza pela ideia de distância entre dois pontos, d(p1, p2), tal que, geometricamente, d seja a curva de menor comprimento entre os pontos p1 e p2. A métrica hiperbólica,

ds2 = dx

2+ dy2

(1 − x2− y2)2, (.)

atende apenas às representações que façam uso da geometria hiperbólica, mas repre-senta um ponto de partida interessante ao se considerar uma métrica genérica. Assim, considerando a curvatura κ, é possível reescrever a equação . da seguinte forma1:

ds2 = 4(dx 2+ dy2) (1 + κ(x2+ y2))2 = 4dzdz (1 + κ |z|2)2. (.) Dada a equação: arctanκ(z) = ∞ X n=0 κnz2n+1 2n + 1 , (.)

é preciso definir a sua atuação para cada curvatura κ possível. Assim, considerando os espaços hiperbólico, euclidiano e elíptico, teremos respectivamente os seguintes compor-tamentos: =      arctanh(z), se κ = −1 z, se κ = 0 arctan(z), se κ = 1 . (.)

1 Observa-se que o 4 é utilizado como fator de normalização, de forma a uniformizar curvaturas não

(42)

24 ADAPTAÇÃO ENTRE GEOMETRIAS E, desta forma, a distância entre dois pontos, (z1, z2), pode ser dada pela equação2:

d(z1, z2) = 2 arctanκ z1− z2 1 + κz1z2 . (.) 3.2.2 Isometrias

Transformações geométricas básicas também precisam ser adaptadas para uma forma única, compatível com os três modelos geométricos considerados anteriormente. Portanto, a curvatura do espaço é considerada em algumas das isometrias apresentadas nesta seção. Isometrias têm como característica preservar as propriedades métricas de uma superfície, [Doria 2010] aponta a área de regiões da superfície, a curvatura3e a distância entre pontos como algumas das propriedades conservadas.

As isometrias apresentadas nesta seção foram obtidas através de uma análise guiada pelo raciocínio apresentado em [Needham 1998]. Assim, fazendo uso de um pacote de computação simbólica (e.g., Mathematicar), é possível facilmente demonstrar todas as propriedades destacadas nas isometrias a seguir.

A definição de uma translação (a → 0), de um ponto z no plano complexo, se dá pela seguinte função:

Ta(z) =

z − a

1 + κza. (.)

A rotação faz uso da fórmula de Euler4e é dada pela função Rθ(z) = ez, na qual e representa a base dos logaritmos naturais; i, a unidade imaginária; θ, o ângulo a ser rotacionado, e; z, o ponto em questão.

A reflexão não é uma isometria direta, mas uma isometria inversa. Expressa em coordenadas complexas, a função é definida por R(z) = −z, realizando a reflexão pelo eixo imaginário.

O espelhamento (a ↔ 0) se distingue da reflexão ao apresentar mais do que uma mera reflexão de um ponto através de um eixo específico. Nessa função, não só um determinado ponto a é espelhado, mas, dado o eixo de espelhamento, o elemento que se encontra no destino de a após o espelhamento, 0, também será espelhado no local de origem de a. Assim, a equação de espelhamento M(z) pode ser definida como:

M (z) = a 2 |a|2

a − z

1 + κaz. (.)

A mediatriz 0a pode ser encontrada utilizando a seguinte equação, que leva a curvatura do espaço em consideração:

κ |a|2(x2+ y2) + 2axx + 2ayy = |a|2. (.)

2 O fator de normalização introduzido na equação (.), embora contraintuitivo, tem importância

também no caso euclidiano. A utilização desta correção faz com que as três curvaturas tenham medidas de distância similares na vizinhança da origem, desconsiderando um pequeno erro, tornando a visualização dos três espaços relativamente uniforme.

3 Teorema Egregium de Gauss

4e= cosθ+isenθ, uma discussão aprofundada acerca da fórmula de Euler pode ser lida em [Needham

(43)

3.3 TOPOLOGIA 25 No entanto, para os casos particulares em que κ 6= 0, podemos reescrever a equação (.) da seguinte maneira:  x + κ ax |a|2 2 +  y + κ ay |a|2 2 = 1 |a|2 + κ. (.)

Finalmente, o ponto médio m da mediatriz 0a pode ser definido pela seguinte função: m =    1 2a, se κ = 0 κ √ 1+κ|a|2−1 |a|2 a . (.)

3.2.3 Círculo geodésico (O,R)

O conceito clássico de um círculo se aplica apenas a um caso especial, o do plano euclidi-ano. Ao considerar curvaturas do espaço diferentes de zero, se torna necessário reescrever as equações responsáveis por esta definição. Assim, a fórmula do círculo geodésico de centro O pode ser escrita, considerando a curvatura do espaço em questão, como:

 x − Ox(1 + κp 2) 1 − p2κ2|O|2 2 +  y − Oy(1 + κp 2) 1 − p2κ2|O|2 2 = p(1 + κ |O| 2 ) 1 − p2κ2|O|2 !2 . (.)

Tendo p definido por:

p = tanκ  R

2 

, (.)

onde R representa o raio e a função tanκ, analogamente à equação (.), se comporta da seguinte forma: =      tanh(z), se κ = −1 z, se κ = 0 tan(z), se κ = 1 . (.) 3.3 TOPOLOGIA

Uma vez que o universo do jogo possua um modelo geométrico associado, o próximo passo é definir sua topologia, afinal, devido ao foco bidimensional deste trabalho, a topologia de uma superfície é de extrema importância para a sua renderização. Ainda, a compreensão da topologia de um universo, juntamente com sua curvatura, é considerada compulsória por [Cornish e Weeks 1998] como forma de entender a geometria global do universo.

Uma superfície pode ser considerada fechada (finita) ou aberta (infinita). Entretanto, é importante notar que, ao considerar uma superfície, seja ela fechada ou aberta, não só sua finitude - ou infinitude - é estabelecida como também fica implícito que a variedade em questão não possui bordas [Weeks 2001].

Visto que qualquer superfície fechada pode ser dotada de uma métrica de curvatura constante, uma superfície pode ser classificada de acordo com sua equivalência topológica (homeomorfismo):

(44)

26 ADAPTAÇÃO ENTRE GEOMETRIAS • Se a superfície for topologicamente equivalente (homeomorfa) a uma esfera, sua

curvatura é constante e positiva.

• Se a superfície for homeomorfa a um toro, sua curvatura é zero.

• Se a superfície for homeomorfa a um bitoro5, tritoro etc., sua curvatura é constante e negativa.

Por definição, a topologia de uma superfície determina quais propriedades desta su-perfície são mantidas após uma deformação qualquer, sem que haja ruptura. Desta forma, topologicamente, é correto afirmar que um elipsoide é equivalente a uma esfera, ou mesmo a um cubo. Esta maneira de considerar objetos espaciais, independentemente de sua representação ou mesmo do espaço em que eles estão inseridos, apresenta diversas vantagens. Segundo [Cornish e Weeks 1998], para estudar a topologia de um universo, é preciso medir como o seu espaço é conectado. E essa possibilidade de analisar a maneira como uma superfície se conecta, sem levar sua forma em consideração, é de grande valia no momento de representar um espaço geométrico para apresentação.

Para exemplificar a aplicação da descrição topológica, [Abbena, Salamon e Gray 2006] destaca algumas superfícies básicas que são obtidas através da identificação de arestas em um quadrado. Utilizando o sentido da seta como forma de identificação de colagem, as figuras 3.2(a) e 3.2(b) demonstram respectivamente a formação de um cilindro e da fita de Möbius. Desta forma, é simples notar que a partir de um mesmo quadrado é possível obter duas superfícies distintas de acordo com a orientação utilizada durante a colagem das arestas identificadas.

(a) Cilindro. (b) Fita de

Mö-bius. (c) Toro. (d) GarrafaKlein. de (e) Plano proje-tivo. Figura 3.2: Descrição por identificação.

Dando continuidade às possibilidades de colagem, desta vez realizando-a também ver-ticalmente, as figuras 3.2(c), 3.2(d) e 3.2(e) apresentam, de modo respectivo, a formação de um toro, da garrafa de Klein e do plano projetivo. Exemplos das colagens das super-fícies representadas na figura 3.2 podem ser vistos na figura 3.3. A figura 3.3(d) é uma versão resumida da explicação do processo de colagem do plano projetivo encontrada em [Weeks 2001].

5Neste trabalho, foi utilizado o bitoro para representar o espaço de curvatura negativa. Porém, outras

(45)

3.3 TOPOLOGIA 27

(a) Cilindro. (b) Fita de Möbius. (c) Garrafa de Klein. (d) Plano projetivo. Figura 3.3: Demonstração da colagem das superfícies representadas na figura 3.2. A representação da colagem do toro encontra-se na figura 3.8(b).

Um recurso interessante de alguns jogos de arcade, presente inclusive em Asteroids da Atari, Inc., é a ausência de um limite definido pelas bordas da tela. Assim, quando um objeto passa por uma borda, ele retorna pela borda oposta, e.g., ao passar pela parte esquerda da tela, o objeto reaparece na parte direita da tela e vice-versa, figura 3.4. Graças a esse comportamento, é possível interagir de formas não usuais com os objetos representados no espaço, figura 3.5. Esta representação da continuidade do espaço, na qual bordas não representam um limite real, pode ser considerada matematicamente como uma colagem [Weeks 2001]. Desta forma, a principal manifestação da topologia do universo do jogo se dá pela definição de uma “regra de colagem” específica para cada espaço geométrico retratado.

(a) Direção da nave. (b) Movimentação da nave.

Figura 3.4: Continuidade do espaço.

A ideia abstrata da colagem pode ser facilmente visualizada na prática ao consi-derar uma tesselação (aplicação contínua) composta pela superfície em questão (toro), figura 3.6. A essa aplicação contínua do espaço topológico dá-se o nome de espaço de recobrimento, esse conceito e suas implicações são aprofundados em [Lima 2003]. Desta forma, a figura 3.6 é uma representação do espaço de recobrimento de um toro.

Com este pensamento, ao colar os lados opostos de um quadrado (figura 3.8(a)), um toro é obtido. Esta superfície é o toro bidimensional plano, figura 3.8(b), e ela é utilizada como superfície orientável para a representação do jogo no espaço euclidiano,

(46)

28 ADAPTAÇÃO ENTRE GEOMETRIAS

(a) Através da colagem, é possível

intera-gir de novas formas. (b) Exemplo de como um tiro pode atingirum asteroide. Figura 3.5: Interação através da continuidade do espaço.

(a)

Figura 3.6: Representação do espaço de recobrimento de um toro.

figura 3.7(a). A continuidade que existe para o espaço euclidiano também pode ser observada no espaço elíptico e no hiperbólico, figura 3.7(b) e 3.7(c). Para o espaço elíptico, usa-se uma representação do plano elíptico em um disco visualmente similar ao disco de Poincaré mas com comportamento distinto, figura 3.7(b).

E, finalmente, para a representação no espaço hiperbólico, utiliza-se um bitoro, i.e., a soma conexa6 de dois toros, figura 3.9(a). Entretanto, é necessário que essa superfície seja planificada para ser representada em tela. Assim, foi utilizado um octógono hiperbólico para representar o jogo no espaço hiperbólico, figura 3.9(b). O octógono hiperbólico é exibido dentro de um disco de Poincaré, um espaço bidimensional definido pelo disco x ∈ R2 : |x| < 1. É válido ressaltar que os limites do octógono gerado pelo bitoro usual-mente seguem o padrão da figura 3.9(b), e isso se deve à forma que o bitoro é cortado

6 Uma soma conexa consiste da união entre duas (ou mais) variedades. Essa união se dá através do

“corte” de um disco em cada variedade, seguido da “colagem” das bordas criadas pelo corte inicial [Weeks 2001].

Referências

Documentos relacionados

ip nat inside source list 1 interface BVI1 overload !--- Enable the dynamic translation of addresses permitted by !--- the access-list to the address specified in the BVI

O segmento de SALÃO DE JOGOS NÃO ELETRÔNICOS, assim entendido pela CNAE/IBGE (Classificação Nacional de Atividades Econômicas) 9329-8/03 como a atividade de exploração

As espécies encontradas em níveis mais altos em ambos os grupos foram as três do complexo vermelho (P. Os indivíduos não-tabagistas e tabagistas apresentaram perfis

o Participação no debate sobre “Casamento entre pessoas do mesmo sexo” organizado pela Associação de Estudantes da Faculdade de Direito de Lisboa, Lisboa, Maio de 2006. o

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

indeferidos deverão, para efetivar sua inscrição no concurso, acessar o endereço eletrônico www.esaf.fazenda.gov.br e imprimir o respectivo boleto para efetuar o pagamento da taxa

Para essa implementação deve-se observar que muitos sistemas têm sido construídos baseados exclusivamente em requisitos técnicos, deixando a arquitetura implícita

• Lista de argumentos tipados como uma função; • Resposta tipada declarada ou inferida;. • Captura de contexto no escopo onde foi declarado; • Modificar o contexto no escopo