projeto de um framework para auxilio no desenvolvimento de aplicações com gráficos 3d e...

Upload: lordspy

Post on 30-May-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    1/198

    UNIVERSIDADE FEDERAL DE SO CARLOS

    CENTRO DE CINCIAS EXATAS E DE TECNOLOGIA

    PROGRAMA DE PS-GRADUAO EM CINCIA DA COMPUTAO

    Projeto de um frameworkpara auxilio no desenvolvimento

    de aplicaes com grficos 3D e animao.

    Rodrigo de Godoy Domingues

    So Carlos

    Julho / 2003

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    2/198

    Ficha catalogrfica elaborada pelo DePT daBiblioteca Comunitria da UFSCar

    Domingues, Rodrigo de GodoyD628pf Projeto de um frameworkpara auxilio no desenvolvimento de

    aplicaes com grficos 3D e animao. / Rodrigo de GodoyDomingues So Carlos : UFSCar, 2003.

    200 p.

    Dissertao (Mestrado) -- Universidade Federal de So Carlos,2003.

    1. Computao grfica. 2. Jogos por computador. 3. Animao porcomputador. 4. Renderizao em tempo real.I. Ttulo.

    CDD: 006.6 (20)

    2

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    3/198

    A maioria das disciplinas no se destina a liberar

    e sim a limitar. No pergunte por qu. Seja

    cauteloso com o como. O por qu conduz

    inexoravelmente ao paradoxo. O como o

    aprisiona num universo de causa e efeito. Ambos

    negam o infinito.

    Frank Herbert.

    A memria nunca apreende a realidade. A

    memria a reconstri. Toda reconstruo

    modifica o original, tornando-se uma estrutura

    externa de referncia que inevitavelmente

    apresenta falhas.

    Frank Herbert

    3

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    4/198

    Aos meus pais, por toda ateno e incentivo prestados;

    A lvaro Fonseca e Silva Jr., por me mostrar que a vida pode ser mais agradvel

    quando vista atravs de um espelho distorcido em uma sala dos espelhos.

    A todos os criadores de sonhos, pois eles nos fornecem algo pelo que lutar.

    4

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    5/198

    Agradecimentos

    A Roberto Batista, Marina Batista, Paulo Dias e Olavo Dantonio, pela amizade

    existente entre ns e por fazerem minha estada em So Carlos ser mais agradvel.

    Ao meu professor e orientador, Andr Luiz Battaiola, atualmente professor no

    departamento de Design da Universidade Federal do Paran, pela confiana

    depositada, pela orientao e alm de tudo por sua amizade e compreenso.

    Aos professores do Departamento de Informtica da Universidade Federal de

    Uberlndia, pelo incentivo busca de desafios, pelo conhecimento transmitido e

    principalmente pela amizade.

    A Mamede Lima Marques, por me incentivar na rea de pesquisa, por me fazer

    gostar de aprender, por me auxiliar em integrar conhecimentos, pelo auxlio na

    deciso em cursar o mestrado e por sua amizade.

    A meu amigo Marcus Henrique Lopes Falco, por me ensinar que na vida

    precisamos no apenas ser especialistas, mas tambm lutar pela aquisio de

    conhecimento em outras reas.

    Aos professores do Departamento de Computao da Universidade Federal de

    So Carlos, em especial ao professor Jos Hiroki Saito, por todo auxlio prestadodireta ou indiretamente.

    A Rodrigo Assaf e Daniel Gomes de Almeida, pelo auxlio prestado no projeto,

    por se interessarem pelo aprendizado e acima de tudo pela amizade e

    companheirismo.

    A Adriano Cunha, Daniel Caetano, Ricardo Jurckzyk e a todos os outros amigos

    ligados ao microcomputador MSX,.pelas horas de diverso, pela troca de idias e

    por ajudarem a manter vivo um sonho. Universidade Federal de So Carlos e CAPes, pelo auxlio financeiro durante

    todo o perodo de curso.

    A todos vocs o meu

    Muito Obrigado

    5

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    6/198

    Resumo

    O avano das tcnicas algortmicas de produo de grficos e de hardware

    dedicados a renderizao e processamento geomtrico proporcionou odesenvolvimento de tcnicas avanadas em animao e a exibio de grficos cadavez mais realistas, impulsionando o mercado tanto de visualizao cientfica quantoo de entretenimento. Porm, apesar dessas tcnicas e algoritmos estarem muitobem definidos, a comunidade de computao grfica e animao, muitas vezes,ignora os processos de planejamento e projeto, objetivando acelerar odesenvolvimento de um projeto especfico, obrigando aos desenvolvedores realizaro mesmo trabalho de codificao de classes, ou rotinas, repetidas vezes em projetosdiferentes, contrariando os princpios de engenharia de software. Nesse contextofaz-se necessrio o projeto de um framework, objetivado tanto criao deaplicaes grficas quanto criao de aplicaes de animao. Apesar de

    existirem diversos frameworks para grficos dinmicos, a grande maioria ou voltada produo de grficos bidimensionais ou foram propostos para sistemascomputacionais de estaes grficas caras e voltadas unicamente produo detrabalhos acadmicos ou cinematogrficos. Nesse contexto este trabalho apresentaum estudo sobre as tcnicas de computao grfica, aplicadas a renderizao emtempo real e animaes atravs do levantamento de caractersticas e requisitosobjetivando aplicaes de simulaes visuais, jogos por computador e aplicaesmultimdia; analisa diversos motores de jogos para justificar alguns desses requisitose, dentro desse contexto, apresenta um conjunto de classes de maneira a comporum framework cuja finalidade facilitar o desenvolvimento de aplicativosconfigurveis, independentes de plataforma e que necessitem de renderizao 3Dou animao.

    6

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    7/198

    Abstract

    The graphics algorithm techniques and geometrical rendering dedicated hardware

    advance leaded the development of advanced animation techniques and photorealistic graphics, impelling both the scientific visualization and the entertainmentmarkets. However, even this techniques and algorithms being well defined, theanimation and computer graphics community ignores, the most of time, the planningand design processes, aiming the earlier release of a project, forcing the developersto do the same classes or routine coding repeated times in different projects, ignoringthe software engineering principles. In this context the design of a framework, aimedeither to graphical or animation applications, is made necessary. Despite the manydynamic graphics frameworks existence, many of them is aimed to bi-dimensionalgraphics production or were proposed to expensive graphical workstations andaimed only to scientific or cinematographic production. In this context, this work

    presents a study about computer graphics and animation techniques gatheredthrough the characteristics and features aiming visual simulations, computer gamesand multimedia applications; analyses several game engines to justify these featuresand, in this context, presents a set of classes to compose a frameworkto ease theplatform independent configurable applications that needs 3D rendering or animation.

    7

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    8/198

    ndice

    AGRADECIMENTOS.............................................................................................................5

    RESUMO................................................................................................................................. 6

    ABSTRACT.............................................................................................................................. 7

    NDICE..................................................................................................................................... 8

    NDICE DE FIGURAS..........................................................................................................13

    NDICE DE TABELAS......................................................................................................... 15

    CAPTULO 1. - INTRODUO......................................................................................... 16

    1.1. MOTIVAOE RELEVNCIA............................................................................................... 171.2. OBJETIVOS...................................................................................................................... 211.3. ORGANIZAODO TRABALHO............................................................................................ 23

    CAPTULO 2. - JOGOS ELETRNICOS.......................................................................... 25

    2.1. CLASSIFICAO QUANTOAO TIPO...................................................................................... 261.1. ESTRATGIA.....................................................................................................................261.2. SIMULAO..................................................................................................................... 261.3. AO............................................................................................................................. 27

    1.4. HISTRIAS INTERATIVAS (RPG)......................................................................................... 271.5. ADVENTURES................................................................................................................... 281.6. INFANTIS......................................................................................................................... 282.2. CLASSIFICAO VISUAL.................................................................................................... 281.7. 1 PESSOA....................................................................................................................... 291.8. 3 PESSOA (GOD VIEWOU GODSEYES)............................................................................. 292.3. CLASSIFICAOPORAMBIENTAO.................................................................................... 311.9. AMBIENTES INTERNOS....................................................................................................... 311.10. AMBIENTES EXTERNOS.................................................................................................... 321.11. ESPAO SIDERAL............................................................................................................ 321.12. AMBIENTES MISTOS........................................................................................................332.4. A ESTRUTURADEUM JOGO................................................................................................ 34

    CAPTULO 3. - JOGOS COMO APLICAES MULTIMDIA..................................... 35

    3.1. VDEO............................................................................................................................. 363.2. UDIO............................................................................................................................ 403.3. DISPOSITIVOSDE ENTRADA................................................................................................ 421.13. TECLADO.......................................................................................................................431.14. JOYSTICK.......................................................................................................................431.15. GAME PAD....................................................................................................................431.16. MANCHE....................................................................................................................... 431.17. SISTEMAAUTOMOBILSTICO.............................................................................................. 441.18. TRACKBALL.................................................................................................................. 44

    8

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    9/198

    1.19. MOUSE......................................................................................................................... 441.20. RECONHECIMENTODE VOZ...............................................................................................45

    CAPTULO 4. - GRFICOS................................................................................................. 46

    4.1. RENDERIZADOR................................................................................................................ 471.21. ESTGIODE APLICAO.................................................................................................. 501.22. ESTGIODE GEOMETRIA..................................................................................................511.23. ESTGIODE RASTERIZAO............................................................................................. 541.24. PERFORMANCEEM SISTEMASDE RENDERIZAO.................................................................56

    CAPTULO 5. - PROCESSAMENTO GEOMTRICO.................................................... 58

    5.1. OBJETOS GRFICOS.......................................................................................................... 591.25. ESTRUTURA VETORIAL.................................................................................................... 591.26. CONJUNTODE FACES...................................................................................................... 601.27. ORDENAODE VRTICES............................................................................................... 61

    1.28. ESTRUTURA PARAMTRICA...............................................................................................625.2. PROCESSAMENTODE VISIBILIDADE...................................................................................... 631.29. PARTICIONAMENTODO ESPAO......................................................................................... 641.30. OCTREES....................................................................................................................... 641.31. PARTIO BINRIADO ESPAO (BSP)..............................................................................661.32. CONJUNTODE VISIBILIDADE POTENCIAL (PVS)..................................................................681.33. REDUODE COMPLEXIDADE GEOMTRICAE VISUAL......................................................... 701.34. NVELDE DETALHE (LOD)............................................................................................ 701.35. MIPMAPPING.................................................................................................................73

    CAPTULO 6. - ANIMAES.............................................................................................. 75

    6.1. TRADICIONAL................................................................................................................... 786.2. PROCEDIMENTAL............................................................................................................... 796.3. ESTRUTURAL.................................................................................................................... 801.36. ANIMAODEOBJETOSARTICULADOS................................................................................ 801.37. ANIMAODEOBJETOS MALEVEIS:................................................................................. 836.4. ESTOCSTICA................................................................................................................... 846.5. COMPORTAMENTAL............................................................................................................ 856.6. CONTROLEDE BAIXO NVEL.............................................................................................. 851.38. SISTEMASDE SCRIPT.......................................................................................................851.39. QUADROS CHAVE........................................................................................................... 861.40. PARAMTRICAS...............................................................................................................87

    CAPTULO 7. - BIBLIOTECAS GRFICAS..................................................................... 88

    7.1. DIRECTX........................................................................................................................ 887.2. OPENGL........................................................................................................................ 907.3. OUTRAS.......................................................................................................................... 92

    CAPTULO 8. - MOTORES DE JOGOS............................................................................. 93

    8.1. MOTORES 2D.................................................................................................................. 948.2. MOTORES 3D.................................................................................................................. 951.41. ANLISEDOS MOTORES...................................................................................................951.42. GOLGOTHA.................................................................................................................... 96

    1.43. CRYSTAL SPACE............................................................................................................. 98

    9

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    10/198

    1.44. GNESIS 3D.................................................................................................................. 991.45. FLY 3D...................................................................................................................... 1001.46. FORGE V8.................................................................................................................. 101

    CAPTULO 9. - DADOS INERENTES A MOTORES DE JOGOS................................106

    9.1. OBJETOS GRFICOS....................................................................................................... 1061.47. SPRITES.......................................................................................................................1071.48. OBJETOS 3D................................................................................................................1071.49. OBJETOSNOARTICULADOS........................................................................................... 1081.50. OBJETOS ARTICULADOSOU DEFORMVEIS........................................................................1091.51. BILLBOARDS/IMPOSTORS............................................................................................... 1101.52. TERRENOS....................................................................................................................1111.53. TEXTURAS................................................................................................................... 1141.54. ESTTICAS...................................................................................................................1151.55. ANIMADAS...................................................................................................................116

    1.56. DINMICAS..................................................................................................................1179.2. OBJETOS EMPRICOS........................................................................................................1171.57. SISTEMADE PARTCULAS............................................................................................... 1181.58. CONTROLADORES (OSSOS).............................................................................................. 1191.59. ILUMINAO................................................................................................................ 1201.60. EMPRICA.................................................................................................................... 1211.61. MAPASDE ILUMINAO.................................................................................................1221.62. ESTTICA.................................................................................................................... 1231.63. DINMICA................................................................................................................... 1231.64. GRAFODE CENA.......................................................................................................... 1241.65. CMERAS.................................................................................................................... 126

    1.66. JANELASDE VISUALIZAO (VIEWPORTS)....................................................................... 1271.67. RENDERIZADORES......................................................................................................... 127

    CAPTULO 10. - PRINCPIOS DE ENGENHARIA DE SOFTWARE..........................129

    10.1. PRINCPIOSBSICOSDA ENGENHARIADE SOFTWARE..........................................................1291.68. INSTANCIAO..............................................................................................................1291.69. ENCAPSULAMENTO........................................................................................................1301.70. REFERNCIASAOBJETOS................................................................................................13110.2. PRINCPIOSDE ORIENTAOA OBJETOS........................................................................... 1311.71. MODULARIDADE...........................................................................................................1331.72. REUSABILIDADE............................................................................................................13410.3. REUSABILIDADEDE PROJETOS: PADRESDE PROJETOS.......................................................1361.73. EXEMPLO: ITERATORS....................................................................................................13810.4. UNIFIED MODELLING LANGUAGE (UML)....................................................................... 14010.5. RELACIONAMENTODECLASSES....................................................................................... 1401.74. CLASSIFICAOE HERANA...........................................................................................1401.75. HERANA.................................................................................................................... 1411.76. CLASSIFICAO............................................................................................................ 1421.77. EXEMPLO: PONTOSEVETORESSOTUPLAS....................................................................... 1431.78. AGREGAO................................................................................................................ 1441.79. ASSOCIAO................................................................................................................145

    CAPTULO 11. - FRAMEWORKS GRFICOS.............................................................. 147

    10

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    11/198

    11.1. O MODELO MVC....................................................................................................... 1471.80. O COMPONENTEMODELO................................................................................................1481.81. O COMPONENTEVISO...................................................................................................1491.82. O COMPONENTECONTROLADOR.......................................................................................150

    11.2. APLICAODOMODELO MVC.......................................................................................152CAPTULO 12. - PROJETO: FRAMEWORK PARA GRFICOS 3D INTERATIVOS.................................................................................................................................................154

    12.1. METODOLOGIA.............................................................................................................15412.2. FRAMEWORK................................................................................................................1561.83. ESTRUTURA ABSTRATA.................................................................................................. 15712.3. CARACTERSTICAS.........................................................................................................1581.84. MDULODE MODELO...................................................................................................1581.85. REPOSITRIO................................................................................................................1591.86. REPRESENTAODE CENA............................................................................................. 160

    1.87. GERENCIADORDECENA................................................................................................. 1611.88. MDULODE VISO...................................................................................................... 1621.89. VOLUMEDE VISO.......................................................................................................1631.90. PROJEO....................................................................................................................1641.91. CMERA..................................................................................................................... 1651.92. VIEWPORT...................................................................................................................1661.93. RENDERIZADOR............................................................................................................ 1671.94. MDULO CONTROLADOR............................................................................................... 1681.95. SINAL......................................................................................................................... 1691.96. TEMPORIZADOR............................................................................................................ 1701.97. DISPOSITIVODEENTRADA.............................................................................................. 170

    1.98. GERENCIADORDE ENTRADA...........................................................................................1711.99. LEI FSICA...................................................................................................................1721.100. PROPRIEDADE FSICA...................................................................................................1721.101. GERENCIADORDE SIMULAO FSICA............................................................................1731.102. OSSOS...................................................................................................................... 1751.103. REPRESENTAODE ANIMAO....................................................................................1761.104. GERENCIADORDE ANIMAO.......................................................................................177

    CAPTULO 13. - ESTUDOS DE CASO.............................................................................179

    13.1. ANIMAO TRADICIONAL...............................................................................................17913.2. ANIMAO CONTROLADAPORSIMULAO.......................................................................181

    CAPTULO 14. - RESULTADOS........................................................................................183

    14.1. EFICINCIA.................................................................................................................. 18314.2. GENERALIDADEE DOCUMENTAO................................................................................. 18414.3. FACILIDADEDE USO..................................................................................................... 185

    CAPTULO 15. - CONCLUSES.......................................................................................187

    15.1. CONTRIBUIES............................................................................................................18715.2. PRINCIPAIS DIFICULDADES..............................................................................................18815.3. PROPOSTASPARATRABALHOSFUTUROS.............................................................................18815.4. CONSIDERAES FINAIS.................................................................................................189

    11

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    12/198

    APNDICE A. DIAGRAMAS DE CLASSE DO FRAMEWORK..............................191

    MDULODE MODELO...........................................................................................................191MDULODE VISO.............................................................................................................. 192MDULO CONTROLADOR....................................................................................................... 194

    BIBLIOGRAFIA..................................................................................................................195

    12

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    13/198

    ndice de Figuras

    FIGURA 1: IMAGEM DO JOGO QUAKE II.....................................................................29

    FIGURA 2: IMAGEM DO JOGO TOMB RAIDER...........................................................30

    FIGURA 3: IMAGEM DO JOGO EMPEROR, BATTLE FOR DUNE............................31

    FIGURA 4: IMAGEM DO JOGO F1 WORLD GRAND PRIX........................................32

    FIGURA 5: IMAGEM DO JOGO PRIVATEER II.............................................................33

    FIGURA 6: A CONSTRUO BSICA DO PIPELINE DE RENDERIZAO...........49

    FIGURA 7: O ESTGIO DE GEOMETRIA DIVIDIDO EM UM PIPELINE DEESTGIOS FUNCIONAIS....................................................................................................51

    FIGURA 8: COMO A ILUMINAO AFETA A PERCEPO DA IMAGEM.............52

    FIGURA 9: DIFERENAS NA PROJEO PARALELA E EM PERSPECTIVA........53

    FIGURA 10: REPRESENTAO POR CONJUNTO DE FACES...................................61

    FIGURA 11: REPRESENTAO GRFICA E ESTRUTURAL DE UMA OCTREE...65

    FIGURA 12: ILUSTRAO DE UMA RVORE BSP BIDIMENSIONAL....................68

    FIGURA 13: RESOLUO DE VISIBILIDADE DO INTERIOR DE UM PRDIOPOR []. ESQUERDA O MODELO TOTAL, DIREITA A PORO VISTA PELOOBSERVADOR....................................................................................................................... 69

    FIGURA 14: TRS NVEIS DE DETALHE DE UM WARBIRD ROMULANO............71

    FIGURA 15: PIRMIDE DE MIPMAP...............................................................................73

    FIGURA 16: CORREO DE TEXTURA POR MIPMAPPING, O OBJETO DAESQUERDA NO POSSUI MAPEAMENTO DE TEXTURA POR MIPMAP...............74

    FIGURA 17: MQUINAS DE ESTADOS DE ANIMAO............................................78

    FIGURA 18: GRAUS DE LIBERDADE.............................................................................. 82

    FIGURA 19: ESTRUTURA HIERRQUICA, TERMINAES E N RAIZ...............82

    FIGURA 20: ESQUELETO DE UM TENTCULO E OS PARMETROS (OSSOS) DE

    TRANSFORMAO DE VRTICES................................................................................. 84

    13

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    14/198

    FIGURA 21: A FIGURA DA ESQUERDA APRESENTA PARAMETRIZAO DEINTERPOLAO POR ROTAO ENQUANTO QUE A DA DIREITA INTERPOLALINEARMENTE OS PONTOS INICIAIS E FINAIS........................................................87

    FIGURA 22: CAMADAS E COMPONENTES DO MOTOR FORGE V8.....................103FIGURA 23: ESTRUTURA DE UM SPRITE....................................................................107

    FIGURA 24: BILLBOARDS COMO RVORES EM UMA CENA................................111

    FIGURA 25: TERRENO GERADO A PARTIR DE MAPA DE ALTURA E TCNICADE VOXEL............................................................................................................................ 112

    FIGURA 26: EXEMPLO DE UM LIGHTMAPPING...................................................... 122

    FIGURA 27: REPRESENTAO DE UM GRAFO DE CENA......................................125

    FIGURA 28: EXEMPLO DE DIAGRAMA DE HERANA............................................144

    FIGURA 29: RELACIONAMENTO DE AGREGAO: UM POLGONO FORMADO POR TRS OU MAIS PONTOS...................................................................145

    FIGURA 30: RELACIONAMENTO DE ASSOCIAO: SEGMENTO DE RETA REPRESENTADO POR DOIS PONTOS.......................................................................... 146

    FIGURA 31: ESTRUTURA GERAL DO FRAMEWORK...............................................157

    FIGURA 32: EXEMPLO DO GRAFO DE CENA DO OBJETO A ANIMAR...............180

    FIGURA 33: DIAGRAMA DE CLASSES DO MDULO DE MODELO......................191

    FIGURA 34: DIAGRAMA DE CLASSES DO MDULO DE VISO...........................193

    FIGURA 35: DIAGRAMA DE CLASSES DO MDULO CONTROLADOR..............194

    14

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    15/198

    ndice de Tabelas

    TABELA 1: REPRESENTAO DOS TIPOS DE MALHAS POR VRTICESORDENADOS......................................................................................................................... 62

    TABELA 2: ANLISE DE EFICIENCIA DE UMA APLICAO UTILIZANDO AARQUITETURA PROPOSTA............................................................................................ 184

    15

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    16/198

    Captulo 1. - Introduo

    O avano nos dispositivos grficos para estaes de trabalho e computadores

    pessoais proporcionou o surgimento de um novo estilo de aplicaes

    computacionais, que se fundamenta na rpida exibio de grficos de alta qualidade

    acoplados a dispositivos de entrada expressivos para obter animao e

    renderizao em tempo real e metforas de interao por manipulao direta

    permitindo a criao de aplicaes com caractersticas ldicas, denominadas de

    jogos eletrnicos ou jogos por computador, cujo incio, em 1962 com o jogo

    Spacewar [1], iniciou uma nova era no ramo da computao e do entretenimento.

    Porm, apesar do grande sucesso comercial, o objetivo desses sistemas era voltado

    somente ao entretenimento, o que gerou um certo preconceito por parte das

    empresas de computao e instituies de pesquisa, as quais no se interessaram

    de imediato pela rea, fundamentando-se em pesquisas especficas em computao

    grfica ou animao, sem interao com desenvolvedores de tais sistemas que

    desenvolviam, paralelamente, suas prprias tcnicas.

    Atualmente os softwares de entretenimento apresentam nveis excelentes de

    qualidade grfica, efeitos avanados em animao e, conseqentemente, uma alta

    complexidade no seu desenvolvimento devido necessidade de integrao e

    interoperabilidade de novas tecnologias atuando em conjunto com os problemas

    clssicos, intrnsecos a essas aplicaes.

    Esta dissertao analisa as metodologias de programao para computao

    grfica e tcnicas de animao, referenciando-se a conceitos e funcionalidades j

    definidos em muitos projetos de jogos para a criao de um framework, objetivando

    auxiliar em projetos de criao bibliotecas de desenvolvimento de jogos, conhecidas

    16

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    17/198

    como motor grfico no jargo dos programadores de jogos, bem como o de

    aplicaes multimdia em geral.

    1.1. Motivao e Relevncia

    A informtica passou por diversas revolues desde seu surgimento. A evoluo

    dos computadores para mini e, em seguida, para microcomputadores,

    proporcionando a criao dos computadores pessoais, o desenvolvimento dos

    ambientes grficos e sistemas operacionais grficos, facilitando a utilizao para os

    usurios leigos e, atualmente, com a disponibilidade e a reduo do custo das

    unidades de processamento grficas (GPU), a informtica passa por mais uma

    revoluo, a do entretenimento.

    Dados da Interactive Digital Software Association (IDSA), associao

    responsvel pela realizao da Electronic Entertainment Expo (E3), apontam que em

    1996 o mercado de jogos eletrnicos movimentou cerca de US$ 3.7 bilhes e em

    1999 atingiu o montante US$ 6.1 bilhes s nos Estados Unidos, o que indica um

    mercado altamente lucrativo e promissor. Pesquisa da IDSA tambm mostra que, em

    1996, jogos em PC's eram mais usados do que processadores de texto [2].

    Em 2002, dados da Datamonitor[3], empresa de consultoria americana, indicam

    que as vendas no mercado americano e europeu de software de jogos para

    microcomputadores e consoles atingiu a cifra de US$ 10,9 bilhes. A previso para

    2005 de um mercado internacional avaliado em US$ 20 bilhes, dados da PC

    Data. Todos estes dados justificam os investimentos milionrios feitos por empresas

    como a Sony e a Microsoft nos consoles de jogos PlayStation 2 e XBox,

    respectivamente, bem como o investimento feito pela industria de software no

    desenvolvimento de jogos.

    17

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    18/198

    Atualmente jogos para celulares o novo foco de investimento da indstria de

    jogos. O relatrio Wireless Gamingda Datamonitor, [3], indica que 4 entre 5 usurios

    de dispositivos mveis em 2005 utilizaro jogos, o que representa um universo de

    200 milhes de consumidores na Europa Ocidental e Estados Unidos. Em 2003, os

    jogos em celulares devero movimentar cerca de US$ 1,6 bilhes de dlares nos

    EUA e Europa. Este nmero dever saltar para US$ 6,0 bilhes em 2005.

    Embora o mercado seja altamente lucrativo, poucas instituies cientficas

    oferecem a devida ateno rea. Este desinteresse se deve em parte ao

    preconceito, desinformao, e multidisciplinariedade da rea, pois o

    desenvolvimento de jogos por computador exige conhecimento em diversas reas

    da Computao, tais como:

    a) Computao Grfica (CG): Necessria ao desenvolvimento da parte de

    apresentao visual e de animao dos jogos por computador e, atualmente, a

    rea fundamental no desenvolvimento devido ao apelo visual exigido pelo

    mercado;

    b) Inteligncia Artificial (IA): Necessria ao desenvolvimento das aes dos

    personagens controlados pelo computador e pelo controle lgico da aplicao, a

    qual responsvel por dar vida ao jogo propondo os objetivos e oferecendo

    obstculos ao usurio;c) Engenharia de Software: Responsvel pela criao de metodologias para

    o processo de anlise e desenvolvimento de aplicaes em geral;

    d) Arquitetura de Computadores: Responsvel pelo projeto da arquitetura de

    Consoles;

    18

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    19/198

    e) Eletrnica: Responsvel pela produo dos hardwares e dos projetos de

    Consoles;

    f) Redes e Sistemas Distribudos: Responsvel pelo desenvolvimento de

    protocolos especficos para uso em jogos multi-usurios e

    g) Interface Homem-Mquina (IHC): Responsvel pelo estudo de novos

    dispositivos, interfaces e funes de entrada e sada que facilitem a interao

    dos jogadores.

    A produo de jogos por computador tambm envolve conceitos de outras reas

    de conhecimento, tais como msica, artes, letras, etc., o que caracteriza a presente

    multidisciplinariedade na produo de jogos por computador.

    Lamothe [4] cita que a comunidade acadmica pensa em jogos por computador

    como brincadeira de criana e no como um desafio em projeto, programao e

    pesquisa. Segundo ele uma classificao errada, pois ele caracteriza a produo

    desse tipo de aplicao como um conduto para uma nova dimenso, sintetizada pela

    imaginao e realizada pelo desejo do criador. Em outras palavras, um trabalho de

    arte.

    Apesar de alguns preconceitos ainda encontrados no mundo acadmico, o valor

    mercadolgico, tecnolgico e educacional do produto tem justificado esforos para a

    criao de disciplinas e at de cursos inteiros dedicados anlise edesenvolvimento de jogos. Revistas tcnicas e conferncias cientficas sobre o

    assunto tambm esto surgindo.

    Algumas universidades estrangeiras j apresentam como linha de pesquisa a

    rea de jogos eletrnicos: University of North Texas (EUA)1, Institut dinformatique de

    1 http://larc.csci.unt.edu

    19

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    20/198

    Qubec (Canad)2, Centre National dAnimation et de Design (Canad)3, Middlesex

    University School of Computing Science (Reino Unido)4, Universisty of Teesside

    (Reino Unido)5

    , University of Michigan (Reino Unido)6

    , NgeeAnn Polytechnic

    (Singapura)7 e Hong Kong Polytechnic University (Hong Kong). Outras duas

    universidades americanas j oferecem cursos completos de graduao: Full Sail

    Real World Education8 e DigiPen Institute of Technology9. Todos esses esforos

    objetivam fortalecer a indstria de jogos e estreitar os laos com o mundo

    acadmico.

    No Brasil, trs instituies criaram grupos de pesquisa na rea. So elas:

    Universidade Federal de Pernambuco (UFPE), Pontifica Universidades Catlicas do

    Rio de Janeiro (PUC-RJ) e Universidade Federal de So Carlos. Duas disciplinas de

    graduao foram criadas no CIn/UFPE para atender e incentivar os alunos

    interessados na rea e duas universidades criaram cursos de Ps-graduao Latu

    Sensu envolvendo jogos por computador, a saber: Centro Universitrio Positivo

    (Unicemp), campus Curitiba-PR e PUC-RJ.

    Na rea comercial, o Brasil atualmente se destaca internacionalmente com vrias

    empresas, das quais trs empresas merecem destaque especial: 1) Continuum

    Entertainment 10, de Curitiba, PR, com o jogo de estratgia em tempo real Outlive,

    por ser a primeira empresa a comercializar um jogo no exterior, 2) SouthLogic

    Entertainment11, de Porto Alegre, RS, por ser a primeira empresa nacional a firmar

    2 http://www.iiq.qc.ca3 http://www.nad.qc.ca4 http://www.cs.mdx.ac.uk/msc-cg5 http://www-scm.tees.ac.uk/courses/degree/compgames.html6 http://bigfoot.eecs.umich.edu/~soar/Classes/4947 http://www.np.edu.sg8 www.fullsail.com9 www.digipen.edu10

    www.continuum.com.br11 www.southlogic.com.br

    20

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    21/198

    acordo com a Infogrames, um Publisher bastante conhecido no mundo por publicar

    ttulos como a srieAlone in the Dark, dentre outros e 3) Jynx Playware12, de Recife,

    PE, por implementar o primeiro jogo massive multiplayer no Brasil. Porm, no

    cenrio nacional, diversos projetos esto sendo, ou j foram, criados. Tal o caso da

    Banana Games 13 de So Paulo, SP, Joy Studios14, em Recife, PE, 4Xde Maring,

    PR, alm de outras.

    1.2. Objetivos

    Este trabalho de dissertao prope uma arquitetura e documentao de um

    framework objetivado para a produo de aplicaes que utilizem grficos 3D,

    animao interativa e simulao fsica utilizando, como base de referncia, motores

    de jogos e trabalhos cientficos na rea de maneira a levantar as caractersticas

    fundamentais desse tipo de aplicao.

    De acordo com Gobbetti e Turner [5], possvel explorar a similaridade das

    estruturas das aplicaes que utilizam esses recursos de maneira a criar

    frameworks que definem e implementam o projeto orientado a objetos de todo um

    sistema inteiro de tal forma que seus componentes relevantes sejam modelados por

    classes abstratas que definem o protocolo geral e gerenciam o comportamento

    dinmico padro que seja usualmente apropriado para a maioria dos casos. Apenas

    as caractersticas especficas das aplicaes devem ser implementadas pelo

    projetista atravs de mtodos de herana e redefinies de classes de maneira a

    customizar a aplicao. A caracterstica chave de frameworks que o reuso do

    projeto abstrato oferecido por eles mais importante que o reuso de cdigo.

    12 www.jynx.com.br13

    www.bananagames.com.br14 www.pernambuco.com/tecnologia/empresas.html

    21

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    22/198

    O estudo baseado em jogos por computador tem o objetivo de extrair todas as

    caractersticas e funcionalidades desse tipo de aplicao devido caracterstica

    multimdia inerente a esse tipo de aplicao, como demonstrado no (3) e o interesse

    porframeworks que implementam caractersticas de renderizao em tempo real, ou

    seja, grficos 3D, deve-se a essa ser uma rea relativamente inexplorada [5].

    Existem diversas bibliotecas para produo de jogos disponveis publicamente ou

    comercialmente, porm elas apresentam desvantagens quanto generalidade para

    produo de aplicaes, pois muitas foram projetadas para fins especficos, isto ,

    para um produto especfico, o que inibe desenvolvedores de jogos a us-las devido

    generalizao de seu produto [43].

    Alm do problema da falta de generalidade, as bibliotecas publicamente

    disponveis, analisadas para a produo do presente trabalho, apresentam pouca ou

    nenhuma documentao, inviabilizando o seu uso, pois o desenvolvedor deve

    realizar um trabalho de engenharia reversa de maneira a entender como ela

    funciona para poder realizar a sua tarefa, algo inaceitvel devido s complicaes e

    atrasos no desenvolvimento.

    22

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    23/198

    1.3. Organizao do Trabalho

    Este trabalho est organizado em quatorze captulos, excluindo o apndice e as

    referncias bibliogrficas.

    Cada captulo descrito a seguir:

    O captulo 1 apresenta uma introduo, a motivao, relevncia e os objetivos da

    dissertao;

    O captulo 2 apresenta uma descrio sobre jogos eletrnicos, as classificaes

    quanto a tipo, visualizao e ambientao e uma descrio sobre os elementos que

    compe os jogos por computador;

    O captulo 3 discute jogos como aplicaes multimdia, apresentando uma

    justificativa dessa assertiva por descrever os componentes de jogos eletrnicos;

    O captulo 4 apresenta uma descrio sobre grficos em aplicaes multimdia,

    com o texto focado em grficos 3D. Apresenta tambm a estrutura do processo de

    gerao de grficos 3D, conhecido como renderizao;

    O captulo 5 apresenta tcnicas sobre processamento geomtrico e visual de

    maneira a otimizar a performance de um sistema de renderizao e de

    gerenciamento de dados em aplicaes;

    O captulo 6 apresenta um estudo sobre os diversos tipos de animao que

    surgiram ao longo da histria, bem como uma breve apresentao da histria da

    animao em si;

    O captulo 7 apresenta um estudo sobre bibliotecas grficas, descrevendo duas

    das bibliotecas grficas mais utilizadas atualmente: DirectXe OpenGL;

    23

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    24/198

    O Captulo 8 apresenta uma descrio do que um motor de jogo, suas

    possveis construes e uma anlise de 4 motores de jogos e 1 trabalho de pesquisa

    realizado na Universidade Federal de Pernambuco;

    O Captulo 9 apresenta a descrio de alguns dados inerentes a jogos por

    computador, os quais so analisados de maneira a compor o projeto do framework

    proposto nessa dissertao;

    O captulo 10 apresenta as tcnicas de engenharia de software utilizadas no

    projeto, bem como a metodologia de projeto com a Unified Modelling language;

    O captulo 11 discute o conceito de frameworks no contexto da computao

    grfica, apresentando alguns frameworks desenvolvidos;

    O captulo 12 descreve o framework projetado no programa de mestrado

    apresentando sua organizao e suas classescom base na anlise dos requisitos

    apresentados nessa dissertao, utilizando as tcnicas de engenharia de software

    apresentadas no (Captulo 10) e alguns conceitos apresentados no (Captulo 11);

    O captulo 13 apresenta dois estudos de caso focados em animao tradicional e

    animao com simulao fsica utilizando os conceitos apresentados no projeto do

    frameworke

    O captulo 14 apresenta as concluses obtidas no desenvolvimento do projeto e

    os trabalhos futuros que podem ser realizados com o conhecimento adquiridoatravs dessa proposta, bem como os artigos publicados utilizando os conceitos

    aqui apresentados.

    O apndice apresenta o diagrama de classes proposto para o framework.

    24

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    25/198

    Captulo 2. - Jogos Eletrnicos

    Jogos Eletrnicos so programas cuja finalidade apresentar um ambiente

    ldico e entreter o usurio, atravs da proposta de objetivos apresentados em

    roteiros, geralmente, fictcios.

    Tal tipo de software tem evoludo rapidamente ao longo do tempo, pois em seu

    incio apresentava textos ou grficos 2D, usualmente baseados em texturas, e sons

    rudimentares criados por geradores de onda (tambm denominado de canal de

    rudo), como os encontrados nos PCs com a denominao de PC Speaker, ou por

    processadores sonoros rudimentares, como os presentes em alguns

    microcomputadores de 8 bits.

    Atualmente jogos por computador fazem uso de diversas mdias (texto, vdeo,

    animaes, som, etc), apresentam grficos 3D com excelente qualidade visual, bem

    como contam com sons e msicas primorosas que fazem uso de tcnicas

    sofisticadas de ambientao sonora tais como o estreo e o surround. Porm,

    apesar dessa evoluo ampliar a sensao de imerso, a proposta funcional desse

    tipo software se mantm inalterada.

    De forma a apresentar os objetivos e responder s aes dos usurios, os jogos

    devem propor enredos, objetivos e uma interface para a interao do usurio com o

    sistema. Geralmente enredo, objetivo e interface esto, at o presente momento,

    intimamente relacionados e, em conjunto, classificam o tipo de jogo.

    A seguir encontram-se as classificaes por tipo, visualizao e ambientao de

    diversos jogos analisados.

    25

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    26/198

    2.1. Classificao Quanto ao Tipo

    Embora o tipo de jogo seja de pouca relevncia para o presente projeto uma

    breve anlise dos tipos existentes se faz necessria para que o motor de jogo

    implemente funcionalidades capazes de criar as caractersticas exigidas nos

    mesmos. De acordo com Battaiola [2] os tipos reconhecidos de jogos so:

    1.1. Estratgia

    So jogos que exigem raciocnio, podem ser em turnos, tais como os tradicionais

    jogos de xadrez ou damas, ou de estratgia em tempo real, tais como o Emperor

    Battle for Dune [Figura 3] da Westcoast, que, geralmente, apresentam um enredo

    que envolve guerra.

    1.2. Simulao

    So jogos que possuem nveis de complexidade variando de mdia a alta,

    geralmente com jogabilidade15 mdia a baixa devido grande quantidade de

    comandos necessrios para se jogar. Geralmente, respeitam, ou tentam respeitar,

    de forma fiel, as leis da fsica. Dentre estes jogos pode-se citar o Flight Simulator

    que apesar de no ser um jogo, classificado como tal, a srie Test Drive e os

    diversos ttulos de jogos de ao em 1 pessoa (Simulao de pessoa ou

    guerreiro/soldado).

    15 Termo utilizado para indicar o quo atrativo o jogo em termos de manipulao dos personagens/objetos. Um

    jogo de boa jogabilidade geralmente atrair mais adeptos, como o caso do clssico Tetris, um jogo de baixajogabilidade atrair menos, tais como os simuladores de vo.

    26

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    27/198

    1.3. Ao

    Os jogos de ao podem ser classificados dentre os mais antigos. Suas

    caractersticas principais so a boa jogabilidade, devido s poucas teclas

    necessrias (geralmente as setas direcionais e uns poucos botes), o objetivo bem

    definido, uma histria simples e a exigncia de bons reflexos. Dentre este tipo de

    jogo encontram-se os ttulos Tomb Raiderda Eidos Interactive, Tekken 3 da Namco,

    Nemesis da Konami, dentre outros.

    1.4. Histrias Interativas (RPG)

    RPG o acrnimo para Role Playing Game, ou jogo de interpretao de papel.

    Esse tipo de jogo consiste em uma ambientao contextual (fantasia medieval,

    horror, futurista) e um conjunto de regras estatsticas denominado de sistema de

    jogo onde um dos jogadores denominado de mestre cria o esqueleto de uma

    histria, com diversos pontos em aberto. Essa histria se desenvolver de acordo

    com as aes dos personagens interpretados pelos jogadores e as interaes deles

    com os personagens no jogadores, interpretados pelo mestre. O sucesso ou a

    falha de suas aes resolvido, geralmente, atravs de jogada de dados e do

    sistema de regras.

    Esse tipo de jogo tem por objetivo criar no computador um ambiente capaz de

    proporcionar ao jogador o mesmo tipo de jogo que ele jogaria com um grupo de

    amigos. Inicialmente eram desenvolvidos com visualizao em 1 pessoa e,

    atualmente, em 3 pessoa. Sua jogabilidade fraca devido s diversas teclas

    necessrias para executar as aes e a interatividade baixa devido ao fato da

    histria estar pr-determinada, porm geralmente o forte desse tipo de jogo a

    27

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    28/198

    histria bem elaborada. Dentre este tipo encontram-se os ttulos Diablo I e II,

    Baldurs Gate I e II, as diversas sries do Ultima, dentre outros.

    1.5. Adventures

    Esse tipo de jogo, muito popular entre os micros da gerao 8 bits, tinha como

    peculiar a interatividade da sua interface. Inicialmente o jogador digitava os textos

    para que as aes pudessem ser interpretadas. Geralmente, o jogo no possua

    grficos, apenas textos. Em evolues desse tipo de jogo a interface j era

    composta pelas palavras (aes), que poderiam ser selecionadas com o mouse e

    executadas com um clique num objeto na tela, apresentando, assim, grficos

    estacionrios ou com pouca animao. Esse tipo de jogo se caracteriza pela

    exigncia de raciocnio lgico e pode ser classificado, tambm, como uma histria

    interativa. Como exemplo encontram-se os ttulos: Amaznia (do brasileiro Renato

    Degiovanni), Full Throttle da Lucas Arts, as incansveis sries Space Queste Kings

    Questda Sierra, dentre outros.

    1.6. Infantis

    Jogos infantis se caracterizam por sua interface simples e seu carter

    educacional voltado essencialmente para as crianas. Este tipo de jogo pode

    apresentar caractersticas de quaisquer dos jogos acima citados.

    2.2. Classificao Visual

    A interface de um jogo est relacionada ao seu aspecto visual e interativo. Ela

    representa o meio pelo qual o usurio incorpora o ambiente do jogo e possui grande

    interferncia no desenvolvimento de seu motor grfico.

    28

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    29/198

    De acordo com o contexto narrativo do jogo, bem como o seu processo de

    interao, apenas dois tipos de visualizao podem ser definidos. So eles:

    1.7. 1 Pessoa

    Apresenta uma interface responsvel por incorporar o usurio/jogador na pele

    do personagem. O jogador tem a mesma viso do personagem do jogo, o que cria

    uma grande sensao de imerso.

    Jogos em primeira pessoa requerem interfaces 3D em funo da sua prpria

    caracterstica visual, ou seja, a tela o olho do jogador, como demonstrado na

    [Figura 1].

    Figura 1: Imagem do jogo Quake II

    1.8. 3 Pessoa (God View ou Gods eyes)

    Jogos em 3a. Pessoa apresentam uma interface em que o jogador consegue

    visualizar a si mesmo, seja ele apenas um personagem do jogo, tal como em Tomb

    Raider, ou um exrcito, tal como em Emperor, Battle for Dune. Esse tipo de

    visualizao denominado de God View pois o usurio tem uma viso completa do

    mundo e do(s) objeto(s) que cercam o(s) personagem(s).

    A visualizao em 3a. Pessoa se subdivide em duas outras, sendo:

    29

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    30/198

    - Visualizao Perspectiva: A visualizao em perspectiva assemelha-se

    muito visualizao em 1a. Pessoa, porm, apesar da cmera ser posicionada

    atrs do personagem, permitindo que o jogador tenha um campo de viso mais

    abrangente, apresenta todas as caractersticas da visualizao em 1a. Pessoa,

    tal como a sensao de profundidade, devido convergncia de retas paralelas,

    possibilitando maior imerso. Dentre os jogos nessa categoria encontram-se os

    jogos da srie Tomb Raider [Figura 2], da Eidos Interactive, que foram muito

    bem aceito devido a esse tipo de visualizao;

    Figura 2: Imagem do jogo Tomb Raider

    - Visualizao Axonomtrica: Diversos jogos 2D utilizaram a tcnica da

    visualizao por projeo axonomtrica atravs do uso de Sprites (9.1) com

    diferentes posicionamentos, permitindo a percepo tridimensional, porm, sem

    apresentar a noo de profundidade, pois mantm o paralelismo entre retas

    paralelas. Atualmente jogos 3D com esse tipo de visualizao consistem em

    definir uma cmera posicionada para ger-la. Dentre os jogos nessa categoria

    encontram-se os jogos de estratgia em tempo real mais recentes, tais como

    30

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    31/198

    Emperor, Battle for Dune [Figura 3], da Westwood e Star Trek Armada, da

    Interplay.

    Figura 3: Imagem do jogo Emperor, Battle for Dune

    2.3. Classificao por Ambientao

    Uma das partes fundamentais na definio das funcionalidades do motor de um

    jogo o seu ambiente, pois ele caracteriza objetos, formas de iluminao, limites de

    movimentao, etc. Apesar de diversas caractersticas de um jogo serem

    imprevisveis, alguns modelos bsicos de ambientao podem ser definidos. A

    combinao de funcionalidades genricas de ambientao com outras dos motores

    de jogo cria uma gama maior de funcionalidades teis para o desenvolvimento do

    ambiente de jogo. Os ambientes bsicos se resumem a:

    1.9. Ambientes Internos

    So ambientes fechados, normalmente conhecido como dungeons ou

    masmorras, muito popular entre jogos de 1a. pessoa como o Quake[Figura 1] ou o

    Doom, da ID Entertainment, onde a iluminao nitidamente artificial, pois provm

    31

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    32/198

    de fontes de luz como tochas ou spotlights. Geralmente a iluminao esttica,

    porm h a possibilidade de iluminao dinmica. O ambiente constitudo de salas

    e suas interconexes, tais como, corredores e portas, de forma similar planta de

    uma casa.

    1.10. Ambientes Externos

    So ambientes abertos criados a partir de geradores de terreno ou por um mapa

    de altitude, denominado Voxel (9.1), geralmente com iluminao ambiente e a

    possibilidade de contar com outras fontes de luz. Os ambientes externos,

    geralmente, simulam o cu por meio de uma caixa ou domo texturizado denominado

    de SkyBox16. Esse tipo de ambientao muito utilizado em jogos de simulao

    (2.1), principalmente aqueles que operam com avies ou automveis, tal como o F1

    World Grand Prix[Figura 4] da Eidos Interactive.

    Figura 4: Imagem do jogo F1 World Grand Prix

    1.11. Espao Sideral

    So ambientes que simulam o espao sideral renderizando estrelas, planetas,

    nebulosas e outros objetos espaciais. Geralmente possuem iluminao varivel de

    16

    SkyBox: Forma geomtrica, geralmente um domo ou uma caixa, com textura de cu que contm todo oambiente do jogo.

    32

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    33/198

    acordo com as fontes de iluminaes (sois) disponveis no sistema sideral em que o

    personagem se encontra. Exemplos de jogos que se caracterizam por essa

    ambientao so Privateer I e II[Figura 5] da Origin Systems.

    Figura 5: Imagem do jogo Privateer II

    1.12. Ambientes Mistos

    Ambientes mistos podem ser compostos por dois ou pelos trs tipos de

    ambientes apresentados de maneira a criar uma aplicao mais atrativa aoconsumidor, porm, a estrutura do sistema da aplicao deve ser capaz de gerenciar

    os mtodos necessrios para processar os diferentes tipos de informao inerentes

    a cada tipo de dado representativo da ambientao.

    33

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    34/198

    2.4. A Estrutura de um Jogo

    Jogos de computador so constitudos por trs extensos componentes, sendo

    eles:

    a) O enredo, responsvel pelo tema, trama e objetivos do jogo, fatores que no

    envolvem apenas pesquisa e criatividade, mas tambm uma interao com

    psiclogos, roteiristas e especialistas no assunto [2];

    b) Uma interface interativa, responsvel pela comunicao entre o motor e o

    usurio, desenvolvida a partir de conceitos tcnicos e cognitivos onde o valor

    artstico da interface tem por finalidade valorizar a apresentao do jogo, de

    forma a criar um ambiente atraente ao usurio e aumentar a sua satisfao

    ao jogar, e;

    c) Um motor (biblioteca de produo), responsvel por controlar o jogo e os

    estados de seus personagens de acordo com a ao do usurio ou a

    interao entre os personagens, analisados no(8).

    De acordo com Battaiola [2], o sucesso de um jogo est associado combinao

    perfeita destes componentes.

    Dentre os trs componentes analisaremos mais especificamente o motor de um

    jogo (8), o qual diz respeito contextualizao do trabalho aqui desenvolvido.

    34

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    35/198

    Captulo 3. - Jogos como Aplicaes Multimdia

    Sistemas multimdia integram uma grande variedade de mdias com diferentes

    caractersticas temporais, como, por exemplo, as mdias dependentes do tempo, tais

    como, vdeo, udio ou animao e as mdias que no so dependentes do tempo,

    como textos, grficos ou imagens [6].

    Inicialmente jogos por computador apresentavam apenas animaes

    rudimentares; rudos sonoros e textos. A evoluo dos processadores permitiu que

    fosse adicionada complexidade aos jogos. Os processadores grficos permitiram

    que, aos poucos, imagens fossem inseridas no contexto do jogo gerando, portanto,

    aplicaes mais interessantes. As placas de som permitiram que sons primorosos

    fossem adicionados, aumentando o trabalho dos produtores de jogos devido

    exigncia de msicas e efeitos sonoros bem elaborados, incrementando a qualidade

    inerente do produto, adicionando mais temperamento ao enredo e fixando a ateno

    do jogador cada vez mais.

    Neste contexto, os modernos jogos por computador apresentam, pelo menos,

    cinco dos componentes de sistemas multimdia citados acima, a saber, vdeo, udio,

    imagens estacionrias, texto e animao, sendo que alguns ainda apresentam

    grficos analticos para indicar o rendimento do jogador perante o computador ou

    perante outros jogadores.

    Alm disso, uma das caractersticas fundamentais dos jogos por computador a

    integrao e sincronizao das mdias de acordo com a temporizao do sistema e

    tambm de acordo com a interao do usurio.

    35

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    36/198

    Conclui-se, portanto, que jogos por computador so sistemas que exploram de

    maneira intensiva o conceito de multimdia, utilizando todos os recursos oferecidos

    pelo computador de maneira a entreter o usurio.

    Por ser um sistema que faz uso intensivo das diversas mdias oferecidas pelo

    computador, jogos por computador exigem uma srie de requisitos para operarem a

    contento.

    Abaixo se detalha os requisitos que um jogo deve ter, bem como suas

    respectivas funes dentro do contexto do jogo. Grficos e animaes, por fazerem

    parte do projeto desenvolvido, sero analisados em captulos separados.

    3.1. Vdeo

    Vdeo um elemento muito usado em jogos por computador. No entanto, muitas

    vezes, os desenvolvedores de jogos no sabem como utiliz-lo adequadamente.

    Observe que quando bem usado, o vdeo pode aumentar o prazer e a compreenso

    da trama do jogo, reforar uma narrativa, introduzir um personagem, etc. Quando

    mal usado, ele pode matar o jogo [7].

    Os vdeos imersos em ambientes interativos foram denominados inicialmente de

    vdeos interativos. Atualmente, a nomenclatura adotada FMV (Full-Motion Video),

    significando vdeo com movimentao total.

    A histria de uso de vdeos em jogos comea em 1983 com Dragons Lair, o

    primeiro a usar vdeo analgico mesclado com objetos de jogo. Sherlock Holmes:

    Consulting Detective, liberado em 1992, foi o primeiro a usar vdeo digital. O primeiro

    jogo com vdeo de sucesso foi The 7th Guest, da Trilobyte, liberado em 1993. O mais

    popular de todos foi Myst, da Cyan, jogo liberado para PC em 1994 e que contribuiu

    36

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    37/198

    para expandir significativamente o mercado de entretenimento interativo e de drivers

    para CD. Mystutilizou adequadamente o vdeo atravs de pequenas inseres que

    se casam com o contexto geral do ambiente do jogo. Na seqncia, vieram os bons

    jogos Phantasmagoria, 1996, e Wing Commander III.

    Uma regra importante para a utilizao de vdeos em jogos o da naturalidade

    da transio, ou seja, a mudana de vdeo para a animao grfica e vice-versa

    deve estar totalmente de acordo com o contexto do jogo, possibilitando que, em

    alguns casos, o usurio nem a perceba. O uso de um vdeo longo e maante no

    comeo do jogo, ou ento, de vdeos curtos e desconexos da trama no comeo de

    cada nvel no um procedimento que vai ao encontro desta regra.

    Os cuidados que devem ser tomados com a insero de vdeos em jogos so:

    - Vdeo entrelaado: O vdeo entrelaado, ou seja, a imagem dividida

    em duas partes, um conjunto de linhas horizontais pares e mpares (1, 2, 3,

    4, ...). As linhas pares so capturadas 1/60 de segundo depois das linhas

    mpares. Quando os objetos filmados se movimentam muito rapidamente,

    durante a exibio do vdeo no computador, surgem borres com padres que

    evoluem em escada e ocasionam um efeito visual muito ruim. A maioria dos

    programas de edio digital de vdeo permite o desentrelaamento do vdeo.

    - Taxa de exibio de quadros errada: Vdeos normalmente tm taxa de

    30 fps (quadros por segundo) e filmes de 24 fps. Estas taxas tm de ser

    compatibilizadas para evitar problemas de sincronizao nas cenas. Programas

    como o Media Cleaner Pro 4 da Terran Interactive tratam deste tipo de

    converso.

    37

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    38/198

    - Manchas nas bordas: Quase sempre possvel se encontrar manchas

    nas bordas de vdeos analgicos que no so vistos em um monitor de TV, mas

    sim no de um computador. Estas manchas tem de ser cortadas das bordas.

    - Atores ruins: A escolha dos atores deve ser feita com cuidado, pois h

    um ditado entre os diretores de produo de vdeo de que um bom ator no

    repete a sua boa performance em um grande palco com platia na frente da

    objetiva de uma cmera.

    - Dilogos ruins e pobres: Usualmente o dilogo mais difcil de ser

    finalizado do que a encenao. Isto porque sons so uma constante em jogos e

    normalmente se considera sua produo mais simples do que a do vdeo, o que

    nem sempre verdadeiro. Alm do esmero tcnico, necessrio que os atores

    responsveis pela dublagem tenham experincia e aptido para a tarefa.

    Adicionalmente, preciso que os tcnicos de som tenham a qualificao

    requerida para a produo de um som limpo e claro.

    - udio de 8-bit: O recomendvel nunca se usar udio de 8 bit. Os

    modernos compactadores de som (codecs) geram arquivos maiores e de menor

    qualidade sonora para o udio de 8-bit do que para o de 16-bit.

    -

    Combinao inadequada do vdeo com o fundo renderizado: Devehaver um casamento perfeito entre os elementos de ao no vdeo (ator, armas,

    motos, etc) recortados pela tcnica do cromaqui, descrita a seguir, e o fundo

    renderizado do jogo. O ideal o produtor do cromaquiter uma idia do fundo do

    jogo em termos de cores, luzes, materiais, etc, para poder planejar as tomadas e

    possibilitar este casamento.

    38

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    39/198

    - Requisitos tcnicos do vdeo diferentes dos de todo o jogo : Os jogos

    so planejados para serem jogados em um computador com uma configurao

    mnima. Se a qualidade do vdeo exigir uma configurao mais sofisticada,

    detalhes sofisticados de cenas, ou at o todo, podero no ser vistos.

    O cromaqui uma tcnica que consiste em filmar uma cena em que o cenrio de

    fundo totalmente pintado de verde ou azul, o qual depois ser removido e

    substitudo por uma imagem, animao grfica ou outro vdeo. Tradicionalmente, a

    tcnica utilizava equipamentos pticos especiais para a eliminao do fundo.

    Atualmente, placas grficas permitem a captura do vdeo por um computador e a

    sua edio atravs de programas especficos que possibilitam tambm a realizao

    do cromaqui.

    Apesar da tecnologia de compactao de vdeos e da tecnologia de

    armazenamento indicarem melhoras na produo e armazm de vdeos digitais o

    uso de vdeos em jogos est fadado a ser extinto em um futuro prximo devido aos

    seguintes fatores:

    - A qualidade atual dos softwares de modelagem e dos modeladores

    favorece a criao de modelos perfeitos, muito prximos do real;

    - O avano na tecnologia de unidades de processamento grfico,

    principalmente no que diz respeito a processamento de grficos 3D, permite que

    grficos 3D de qualidade sejam renderizados em tempo real, como, por

    exemplo, no jogo Warcraft III, da Blizzard Entertainmente

    - O baixo custo da produo das animaes geradas em relao

    produo de vdeos, principalmente no que diz respeito a atores, figurinos,

    cenrios, assistentes de filmagem, etc.

    39

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    40/198

    3.2. udio

    A funo bsica do udio em um jogo , assim como a do vdeo, atrair a ateno

    do usurio. Porm, enquanto vdeos so artifcios apenas de contextualizao do

    jogo, udio fundamental para adicionar temperamento aos jogos.

    Essa adio se intensifica se considerarmos os avanos tecnolgicos na rea de

    udio devido tecnologia de udio ambiental ou 3D, o que faz com que o jogador

    tenha noo da provenincia do som.

    Atualmente existe uma gama de formatos de arquivos de representao de udio

    disponveis para adicionar s capacidades de um motor de jogo. Dentre os diversos

    formatos de arquivos de udio cinco deles merecem destaque. So eles:

    - WAV: O Microsoft Windows Riff Wave popularizou-se em funo do

    grande nmero de plataformas com o Microsoft Windows e seus aplicativos. O

    Wav atualmente a base do udio digital, sendo largamente utilizado em efeitos

    sonoros. Existem vrios tipos de ferramentas que manipulam este formato,

    permitindo a gerao dos mais variados tipos de efeitos, bem como a utilizao

    das mais variadas taxas de amostragem. Dependendo da qualidade utilizada

    para um arquivo Wav, ele pode requerer uma taxa de transmisso de 40 Mbytes

    por minuto, o que o torna muito pesado para operar em computadores de

    pequeno porte. Em funo da sua grande difuso, todos os outros formatos

    possuem conversores para Wav.

    - MIDI:A interface MIDI (Musical Instrument Digital Interface) [8] define uma

    linguagem de transmisso de dados digital entre sistemas computacionais,

    sintetizadores e instrumentos musicais. A comunicao pode ser feita com base

    no protocolo ou em arquivos MIDI. Por exemplo, quando uma nota tocada em

    40

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    41/198

    um teclado, a porta de comunicao MIDI envia para um sintetizador, ou

    computador, conectado a ela, um evento contendo todas as informaes

    pertinentes, tais como a nota, a sua velocidade, instrumento, etc. O MIDI no

    udio digital, portanto no h a possibilidade de se gravar vozes ou efeitos

    sonoros, ele somente mantm a seqncia de notas tocadas e as armazena

    como um tipo de som pr-definido, sendo eles variados, como guitarra, teclado,

    gaita, etc. Isto acentua a flexibilidade deste tipo de som, pois permite que todas

    as suas caractersticas possam ser mudadas facilmente de forma manual

    (direta) ou via programa. A caracterstica mais interessante do MIDI o pouco

    espao em disco que ele ocupa, por exemplo, um minuto de som com s uma

    trilha e sem nenhum evento a ele ligado requer 3Kb, o que, comparado com o

    formato Wav e muitos outros, extremamente pequeno. Por trabalhar com

    eventos o formato MIDI se torna vivel para a produo de udio interativo, o

    que adiciona mais temperamento a um jogo. Atualmente sintetizadores MIDI j

    vm embutidos nas placas de som mais comuns e apresentam uma qualidade

    de boa a tima, o que favorece a utilizao desse tipo de arquivo em jogos.

    - MP3: O formato MP3, Moving Pictures Experts Group Audio Layer 3

    compressed audio, objetiva armazenar som compactado. A sua definio

    baseada em um modelo psico-acstico, ou seja, o ouvido humano no capaz

    de ouvir todas as freqncias, h um limite entre 20Hz e 20KHz e ele mais

    sensitivo entre 2KHz e 4 KHz. Assim, um algoritmo elimina grande parte das

    freqncias que um ouvido humano possa no escutar e ainda algumas que

    possam ser retiradas sem que haja perda na qualidade sonora. Ressalte-se que

    esta compactao destrutiva, ou seja, a compactao do MP3 elimina

    41

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    42/198

    informaes que nunca mais podero ser recuperadas. A maioria dos rippers,

    dos codificadores e dos decodificadores trabalha com qualidade igual ao CD e

    12 vezes menor que um arquivo igual no formato Wav.

    - MP4: Utiliza o mesmo conceito do MP3, porm apresenta melhor

    algoritmo de compactao, o que tem aumentado o interesse por ele. O MP3

    compacta a uma razo de 11:1 enquanto o MP4 a 16:1. O ganho de 30% advm

    de otimizaes realizadas no algoritmo.

    - RA: O formato Real Audio foi desenvolvido para uso na Internet. Ele

    permite que o som possa ser ouvido com boa qualidade, diretamente pela rede,

    em tempo real, sem a necessidade de download.

    3.3. Dispositivos de Entrada

    Por se tratar de um software interativo imprescindvel que jogos por

    computador necessitem de uma interface de comunicao com o usurio para a

    entrada de dados representando os eventos que o jogador deseja realizar.

    Apesar de que, para computadores, o teclado e o mouse possam suprir todas as

    necessidades exigidas pelos jogos desenvolvidos at hoje, muitos jogos,

    principalmente os de simulao, se tornam mais atrativos com dispositivos de

    entrada especficos.Alguns desses dispositivos possuem, inclusive, funcionalidades de Force

    Feedback, que prov ao jogador uma resposta ttil, por exemplo, sendo o dispositivo

    de entrada um manche oujoystick(de avio), o avio do jogador, ao ser atingido faz

    o manche tremer.

    42

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    43/198

    Abaixo esto alguns dispositivos cuja entrada pode ser passvel de uso em um

    motor de jogo:

    1.13. Teclado

    o dispositivo mais primordial para um jogo por computador, porm sua grande

    quantidade de teclas oferece um conjunto bastante amplo de comandos a serem

    implementados nos jogos;

    1.14. Joystick

    Aps o teclado, ojoystick o segundo dispositivo mais utilizado pelos jogadores.

    Ele consiste de uma haste mvel que indica a direo desejada pelo jogador e um

    ou mais botes. O joystickpode ou no ter a funcionalidade de force feedback, no

    entanto, a maioria dos dispositivos atuais apresentam essa opo.

    1.15. Game Pad

    Introduzido pela NintendoEntertainment, o game padpossui o mesmo princpio

    de operao que o joystick, porm no lugar da haste mvel encontra-se um

    direcionador onde o jogador, com o seu polegar, indica a direo desejada. O game

    pad possui dois ou mais botes e tambm tem a possibilidade de possuir force

    feedback, porm, nesse caso, todo o dispositivo vibra;

    1.16. Manche

    Manches so dispositivos de entrada projetados especificamente para

    simuladores de avio. Ele possui um princpio de operao ligeiramente diferente

    dosjoysticks e game pads, pois o manche pode ter a possibilidade de permitir mais

    43

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    44/198

    graus de movimentao que os dois ltimos dispositivos citados e, assim como eles,

    podem ou no possibilitarforce feedback;

    1.17. Sistema automobilstico

    Como o prprio nome cita, um sistema que consiste em uma direo e um ou

    dois pedais de maneira a servir de dispositivo de entrada para simuladores

    automobilsticos. Como analogia, os pedais seriam equivalentes movimentao da

    haste do joystickpara frente ou para trs e a direo seria equivalente a mover a

    haste para a esquerda ou direita. Assim como os outros dispositivos esse sistema

    pode ou no ter a opo de force feedback;

    1.18. TrackBall

    Durante muitos anos o campo de realidade virtual utilizou esse dispositivo como

    modo de comunicao com sistemas virtuais. Apesar de ter sido desenvolvido

    especificamente para a rea de realidade virtual, o trackballpode ser utilizado para a

    comunicao com um ambiente de jogo por computador de maneira eficiente. Uma

    possvel utilizao seria para jogos de ao em primeira pessoa, como Quake ou

    Descent.

    1.19. Mouse

    Esse dispositivo, projetado inicialmente sem previso de aplicabilidade, tornou-se

    essencial para os sistemas operacionais atuais devido ao seu modo de operao. A

    indstria de jogos, aproveitando das capacidades de referncias diretas s

    coordenadas de tela, absorveu a idia e projetou jogos cuja jogabilidade se torna

    ruim se esse dispositivo no for utilizado como dispositivo de entrada. Tal o caso

    44

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    45/198

    dos jogos de estratgia em tempo real, como Warcraftou Command&Conquer-Red

    Alertque requerem esse dispositivo para uma boa jogabilidade.

    1.20. Reconhecimento de Voz

    Apesar de ainda no ser aplicvel, o reconhecimento por voz consiste em um

    interessante mtodo de interface com aplicaes e, conseqentemente, com jogos.

    A viabilizao desse mtodo de entrada de informaes poder causar uma

    revoluo no mercado tanto de jogos quanto de aplicaes em geral.

    45

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    46/198

    Captulo 4. - Grficos

    Os grficos surgiram para contextualizar visualmente o cenrio dos jogos.

    Antigamente jogos por computador, ou adventures, como eram denominados,

    apresentavam uma interface puramente textual, com interao atravs da digitao

    de comandos verbais e exibio de respostas baseadas na lgica do jogo.

    O primeiro jogo conhecido que apresentou grficos foi desenvolvido no MIT em

    1962. Denominado de SpaceWar ele apresentava grficos grotescos e uma

    simulao fsica simples, porm ficou marcado, no somente por ser considerado o

    primeiro jogo, mas tambm por ser o precursor de grficos em jogos, porm, por ter

    sido implementado em um computador acadmico (DEC-PDP1) ele no pode ser

    considerado como um produto de consumo.

    Apesar de jogos no exigirem, necessariamente, grficos, como no caso dos

    antigos adventures, o mercado consumidor desse tipo de aplicao tem sido cada

    vez mais exigente quanto a essa caracterstica.

    Essa exigncia diz respeito tanto s questes de entretenimento, como efeitos

    especiais, animaes baseadas em cartoon, quanto s questes visuais

    propriamente ditas, como o foto-realismo.

    Um jogo, quanto aos grficos, pode ser classificado em trs tipos: a) 2D; b) 3D e

    c) misto.

    Jogos 2D, atualmente, utilizam apenas imagens 2D, desenhadas por um artista e

    combinadas para formar a aplicao, enquanto que em jogos 3D as imagens so

    geradas pelo computador a partir de dados de modelos criados por artistas em

    programas de modelagem, como o Blender 3D [9].

    46

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    47/198

    Jogos mistos apresentam tanto grficos 3D quanto grficos 2D, como o caso do

    Escape from Monkey Island, da Lucas Arts, que apresenta personagens 3D

    integrados em um cenrio formado por um conjunto de imagens bidimensionais

    organizadas em camadas.

    Enquanto jogos 2D necessitam apenas de procedimentos para posicionar e

    desenhar as imagens, jogos 3D ou mistos necessitam de um conjunto de

    procedimentos para gerar as imagens a partir de dados descritivos dos objetos. A

    esse conjunto de procedimentos foi atribudo o nome de Renderizador:

    4.1. Renderizador

    Um dos principais objetivos da computao grfica sintetizar imagens realistas

    de ambientes virtuais tridimensionais, isto , ambientes representados como

    modelos formais na memria do computador [10].

    Ultimamente esse objetivo tem se mostrado cada vez mais prximo de sua

    concluso, principalmente devido aos diversos avanos tanto em software,

    produzindo algoritmos cada vez mais eficazes e eficientes, quanto em hardware,

    produzindo aceleradores grficos cada vez mais velozes.

    O processo de sntese de uma imagem de um ambiente virtual tridimensional

    chamado de renderizao. Esse processo realizado por sistemas denominados de

    sistemas de renderizao que realizam clculos matemticos de projeo e

    visualizao atravs de informaes de geometria, textura, iluminao e viso.

    No contexto de um jogo 3D sistemas de renderizao so fundamentais,

    principalmente por ter que renderizar as cenas muito rapidamente. Esse tipo de

    47

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    48/198

    sistema de renderizao denominado por sistema de renderizao em tempo real

    devido rapidez de processamento das informaes.

    Apesar das teorias matemticas, cientficas e computacionais estarem bem

    definidas para sistemas de renderizao em tempo real, a aplicabilidade das

    mesmas, at pouco tempo atrs, s era vivel em estaes grficas dedicadas ou

    com otimizaes por software. Felizmente, o avano na rea de hardware viabilizou

    a aplicao da maioria das teorias, proporcionando a criao de aplicaes para as

    mais diversas reas. Porm os sistemas de renderizao em tempo real dessas

    aplicaes eram sistemas dedicados ou, no caso dos motores de jogos, sistemas

    fechados, pouco modulares e caros.

    Um sistema de renderizao em tempo real a rea mais interativa da

    computao grfica. O usurio age ou reage de acordo com a imagem exibida e

    essa retro-alimentao afeta o que ser gerado em seguida. Este ciclo de reao e

    renderizao acontece em uma taxa rpida o suficiente que o usurio no percebe

    imagens em uma taxa discreta, mas que, ao contrrio, ele se torne imerso em um

    processo contnuo [11].

    O processo de renderizao consiste em um conjunto bem definido de regras

    matemticas de projeo e iluminao que tem por objetivo gerar uma imagem

    bidimensional atravs do clculo de projeo de uma cmera virtual que visualizaobjetos tridimensionais com uma determinada textura, a qual pode sofrer

    modificaes na colorao e na luminncia de acordo com fontes de luz definidas no

    ambiente. A imagem gerada depende de como o sistema calcula a intensidade da

    refletncia da luz provinda das fontes de luz e dos outros objetos. Tal clculo

    denominado modelo de iluminao.

    48

  • 8/14/2019 Projeto de um framework para auxilio no desenvolvimento de aplicaes com grficos 3D e animao

    49/198

    O processo de renderizao, tambm denominado de pipeline de renderizao

    consiste de diversos estgios [12] e definem restries cujos dados no podem ser

    enviados para o estgio seguinte caso o estgio atual no esteja finalizado.

    O estgio mais demorado do pipeline o responsvel por determinar a

    velocidade de renderizao [11]. Essa velocidade pode ser expressa em quadros por

    segundo (FPS), que o nmero de imagens geradas por segundo, ou em hertz

    (HZ). Dessa forma pode-se realizar processos de otimizao atravs da execuo

    de estgios de pipeline em paralelo. Se o gargalo, isto , o estgio mais lento do

    pipeline, for conhecido e o tempo que leva para que o dado seja processado por ele

    puder ser definido, pode-se computar a velocidade de renderizao permitindo que

    modificaes sejam realizadas em outros estgios do pipeline de tal forma que se

    reduza o tempo total do processo. Assuma, por exemplo, que o gargalo leve 20ms

    (milisegundos) para executar, assim, a velocidade de renderizao seria de

    1/0.20=50Hz. Contudo, isso apenas verdadeiro caso o dispositivo de sada for

    capaz de atualizar a tela nessa velocidade. Caso contrrio, a taxa real de sada ser

    mais baixa.

    A Figura 6 demonstra os passos de execuo do processo de renderizao em

    um sistema grfico.

    Aplicao Geometria Rasterizador

    Figura 6: A Construo bsica do pipeline de renderizao