Home

UNIVERSIDADE DE LISBOA

image

Contents

1. Figura 4 13 Exemplo explicativo da solu o da dist ncia entre obras Os tra os desenhados a branco corresponderiam ao aspecto que a cena teria realmente O tra o multicolor desenhado em baixo serve apenas para mostrar a ideia do c lculo Distancia Obra2 Obral d Obra2 d Obral w Obral Isto equivalente a d dist ncia obra extremidade parede w largura da obra Distancia Obra2 Obral comprimento total do tra o multicolor tra o laranja tra o azul O resultante o tra o amarelo equivalente distancia entre a 1 e 2 obra mais perto da extremidade direita da parede Mas isto poderia causar dificuldades na interpreta o da informa o desenhada em alguns casos pois se as obras n o estivessem alinhadas horizontamente o tra o desenhado n o coincidiria com as duas obras Essa situa o exemplificada a seguir na figura 4 14 49 amp dasa lla File Exhibition Database Help Surface Selection H Viewpoints Distances ON OFF Move artwork El Place artwork CHOOSE ARTWORK All art types SELECTED ARTWORK Al authors Gioconda TRANSFORM Author Leonardo Da Vinci 019161280 maniere I gt 8 4 6315 Figura 4 14 Exemplo se situac o potencialmente confusa Os tragos a branco na cena junto s obras representam as dist ncias tal como foram pensad
2. 69 Figura C 3 Diagrama de classes do pacote core surface nuensnersnersnneennennnen 70 vil Figura C 4 Diagrama de classes do pacote databage sense 71 Figura C 5 Diagrama de classes do pacote core surface filters 71 Figura C 6 Diagrama de classes do pacote gui 72 Figura C 7 Diagrama de classes do pacote modules art2d sun 73 Figura C 8 Diagrama de classes do pacote modules art3d oooooccnnncniocinoccnacnnnnnos 74 Figura C 9 Diagrama de classes do pacote modules drviston 75 Figura C 10 Diagrama de classes do pacote modules viewpoints 16 viii Lista de Tabelas Tabela C 1 Descri o geral dos pacotes da aplica o nennen 63 Tabela C 2 Descri o das classes do pacote core c ocooocccnncccconcccnoncncnnncccnoncconananonns 64 Tabela C 3 Descri o das classes do pacote core module 64 Tabela C 4 Descri o das classes do pacote core surface 65 Tabela C 5 Descri o das classes do pacote core surface filters 65 Tabela C 6 Descri o das classes do pacote database ooooooocccnnccccooacccnoncconananonns 65 Tabela C 7 Descri o das classes do pacote gou 66 Tabela C 8 Descri o das classes do pacote modules ad 66 Tabela C 9 Descri o das classes do pacote modules art3d s sssessensseeeeeeeeseee 66 T
3. Author Leonardo D v Delete selected row art id author year model path title image path height width El length Description 1 Leonardo 1500 resources Abstracto 2 Leonardo 2000 resources Wicked 8 5 Leonardo 2000 resources Curves 6 Leonardo 2000 resources Grant To Leonardo 2000 resources Wenn resources Figura 4 8 Interface de consulta edi o de base de dados Obras 3D Neste caso representado pela figura 4 8 o filtro est definido para mostrar todas as obras 3D do autor Leonardo Da Vinci Todos os campos que n o s o chave s o edit veis excepto os campos preenchidos automaticamente pela aplica o como as informa es referentes s bounding boxes das obras informa es essas que n o conveniente editar e nem s o do interesse do utilizador sendo esses campos ocultados nas op es de cria o e actualiza o de bases de dados Para editar um campo basta efectuar um duplo clique na c lula correspondente e alterar o seu conte do Caso o utilizador insira dados diferentes do tipo de dados desse campo a altera o n o ser efectuada na base de dados e ser lan ada uma mensagem de erro Ora toda esta ideia de facilitar a cria o e actualiza o de bases de dados tem a ver com a possibilidade de o utilizador poder associar uma base de dados feita por si a uma exposi o Devido a
4. Classe Descri o CreateDatabase Janela inicial da aplica o DBManager EditDatabase2D Janela de actualiza o de obras de arte 2d EditDatabase3D Janela de actualiza o de obras de arte 3d Fetcher Comunica o com a base de dados GUIController Carregamento da interface geral da aplica o Insert2dData Janela de inser o de obras de arte 2d Insert3dData Janela de inser o de obras de arte 3d 65 ModeChooser Classe respons vel pela transi o de m dulos NewProjectWindow Janela inicial da cria o de uma exposi o Transform Painel com os bot es de desloca o das obras VirtualGallery Main class da aplica o Classe Art2Dmodule Artwork2D Artwork2Dinfo Fetcher ObjectPanel PlacementPanel Select ArtEvent Classe Art3Dmodule Artwork3D Artwork3Dinfo ArtworkClumsy ArtworkModel Fetcher ObjectPanel PlacementPanel Select ArtEvent Tabela C 7 Descri o das classes do pacote gui Descri o Carrega e gere todo o m dulo 2D Representa um Objecto 2D Cont m informa es da base de dados sobre um objecto 2D Trata das queries base de dados necess rias para a pesquisa de obras para colca o Representa o GUI do painel direito do m dulo Representa o GUI do painel esquerdo do m dulo Evento lan ado aquando da selec o de uma obra 2D Tabela C 8 Descri o das classes do pacote modules art2d Descri o Carrega e gere todo o m dulo 3D Repr
5. Introdu o do objecto sun na cena scene add sun Sendo o argumento color um n mero hexadecimal Cria o de um renderer do tipo WebGLRenderer definindo tamb m a sua dimens o var renderer new THREE WebGLRenderer antialias true renderer setSize Width Height var container document getElementB yld container container appendChild renderer domElement Desenhar a cena a partir da c mara renderer render scene camera 18 3 6 1 Primitivas gr ficas existentes Para a montagem do espa o tridimensional da cena necess rio conhecer as primitivas gr ficas que a biblioteca oferece de modo a facilitar essa montagem Recorrendo a esta biblioteca Three js podemos facilmente construir cubos esferas ou planos sendo apenas necess rio passar por argumento as dimens es desejadas Pens mos em contruir as paredes do espa o tridimensional recorrendo a paralelep pedos tal como est feito nas aplica es a que esta d seguimento Para o caso espec fico da cria o de um paralelep pedo basta o seguinte c digo Cria o do cubo com as dimens es desejadas adicionando o na cena posteriormente var cube new THREE CubeGeometry sx sy sz scene add cube Sendo sx Largura do cubo sy Altura do cubo sz Profundidade do cubo No prot tipo opt mos por usar esta abordagem para desenhar as v rias paredes no exemplo de
6. ObjectPanel Art3DModule m initialize void E getSelectedTitleField JTextField E getSelectedAuthorField JTextField E getSelectedDescriptionField JText rea El getSelectedObsField JTextArea E getScrolPane JScrolPane getScrollPane2 JScrollPane E getLbiDescription JLabel E getLblObservations JLabel E getTransform Transform eventOccurred SelectArtEvent void C 8 Diagrama de classes do pacote modules art3d 74 lt lt Java Class gt gt Division Selected modules division amp DivisionSelected Object Division O getSelected Division lt lt Java Class gt gt G ObjectPanel modules division SF serialVersionUID long o transformLabel JLabel a transform Transform amp ObjectPanel DivisionModule B initialize void E getTransform Transform eventOccurred DivisionSelected void divModule 0 1 lt lt Java Class gt gt DivisionModule modules division o length float a width float a heigth float a transparency float a chosenColor Color a gui ModuleGUI o actual division String cSactual division h float ofactual division w float DivisionModule createObject Division objectDeselected Division void objectSelected Division void A setDimensions float float float void a setColor Color void a setTransparency float void activate void terminate void O getStatus Serializable O restoreStatus Serializable void O
7. Acrescentamos que as obras 3D baseadas em imagens ter o apenas a forma de um paralelep pedo isto ser o aceites no m ximo 6 imagens equivalente ao n mero de faces do paralelep pedo De referir que os campos marcados com s o os campos de preenchimento obrigat rio Ser lan ada uma mensagem de erro se algum dos campos assinalados com n o estiver preencido e se o tipo de dados colocado em cada campo n o corresponder ao correcto por exempo colocar letras num campo num rico Esta regra aplica se tamb m interface de inser o de obras 2D As op es Edit permitem ao utilizador consultar e actualizar campos das tabelas de obras 2D e 3D tal como eliminar ocorr ncias da base de dados isto eliminar obras A informa o disponibilizada atrav s de tabelas que ser o preenchidas conforme as informa es que o utilizador fornecer aos filtros configurados em cada modo de actualiza o Na actualiza o de obras 2D existem 2 filtros Autor e Tipo de obra e na actualiza o de obras 3D existe um filtro apenas por autor dado que na base de dados n o est o associados tipos de obra nas obras 3D assume se que s o apenas esculturas Existe uma separa o clara entre 2D e 3D dado que a estrutura das tabelas diferente pelo que os campos e informa es apresentados em cada interface tamb m o ser o As figuras 4 7 e 4 8 apresentam a interface das 2 op es de actualiza o de bases de da
8. modules art3d modules division e com modules viewpoints embora este ltimo n o represente um objecto que se coloque fisicamente na cena O pacote gui relaciona se com o todos os pacotes excepto com o util core surface filters e database que n o t m qualquer interface gr fica associada Este pacote respons vel tamb m pela permuta de interfaces gr ficas aquando de mudan as de m dulo O pacote database est relacionado com os pacotes core gui modules art2d e modules art3d dado que todos estes necessitam de aceder base de dados Individualizando o pacote core aquando do processo de cria o ou carregamento de uma exposi o procede a uma liga o base de dados fornecida pelo utilizador por forma a preencher as informa es relativas s obras nos seus respectivos m dulos O pacote gui cont m as classes que representam a aplica o para cria o e actualiza o de bases de dados descrita na sec o 4 1 que cria acede a uma base de dados e actualiza a O pacote core surface filters apenas representa os filtros associadas s superf cies estando apenas relacionado com o pacote core surfaces O pacote division est relacionado com o pacote core surface dado que quando criada uma divis o esta imediatamente transformada numa superf cie eleg vel pela coloca o de obras 74 78 Ap ndice D
9. o na cena A defini o desta navega o feita da seguinte forma var controls new THREE RollControls camera controls movementSpeed 600 controls constrain Vertical 0 1 0 1 O atributo movementSpeed referente velocidade com que o movimento feito a partir das teclas de direc o do teclado Quanto ao atributo constrainVertical este delimita a rota o da c mara em torno do eixo dos yy eixo vertical A vari vel controls actualizada a todo o momento na fun o render dado que se trata de um input interactivo Esta fun o render chamada na fun o animate sendo esta chamada na main function init Isto mostrado a seguir function animate request AnimationFrame animate render function render controls update camera lookAt scene position renderer render scene camera O atributo look At da c mara mant m o foco da c mara centrado na cena 21 3 6 3 Sensores de toque Para implementar Sensores de toque a ideia foi desencadear uma ac o aquando de um clique com o rato O objectivo atribuir a determinados objectos da cena a capacidade de alterar algum dos seus atributos dimens o cor etc com um clique sobre si Neste caso opt mos por se mudar a cor de um objecto seleccionado com o rato atrav s de clique de modo a atribuir a este objecto o status de seleccionado mudando a sua cor para vermel
10. usa directamente a placa gr fica do computador N o tem necessidade de recorrer a plugins podendo ser executado com qualquer browser compat vel Este padr o baseado no OpenGL ES 2 0 e fornece uma interface de programa o de gr ficos 3D Ele usa o elemento Canvas do HTMLS e acedido por meio de interfaces DOM Document Object Model A gest o autom tica de mem ria fornecida como parte da linguagem JavaScript A especifica o foi lan ada sob vers o 1 0 em 10 de Fevereiro de 2011 O WebGL administrado pelo Khronos Group 3 2 O WebGL e o OpenGL O WebGL uma API DOM para cria o de conte do 3D num browser Baseada no OpenGL ES 2 0 o WebGL usa a linguagem OpenGL GLSL Al m disso dado que totalmente integrado no browser uma aplica o WebGL pode aproveitar a infra estrutura do JavaScript Document Object Model DOM webGLOpenGL 15 3 3 Compatibilidade com os Web Browsers Foi feita uma pesquisa acerca da compatibilidade do WebGL com os diferentes e mais usados browsers da web Internet Explorer Mozilla Firefox Google Chrome e Safari wikiWebGL Esta era uma quest o importante para percebermos se a nossa aplica o poderia correr no maior n mero de browsers poss vel de modo a qualquer utilizador em qualquer lado a pudesse utilizar Quanto ao Safari corre em Mac na vers o 5 1 tendo de activar a flag Develop gt Enable WebGL no Develop Menu Relativamente ao Google Chrome suport
11. A setWidth float void getType String A setDescription String void A setObservations String void setType String void sefectedArtwork 0 1 selectedArt D artworks 0 lt lt Java Class gt gt 3 PlacementPanel modules art2d SF serialVersionUID long SF IMAGE DIMENSION int o artChooseLabel JLabel a artChooser JComboBox lt String gt o authorLabel JLabel a imagePanel JPanel o imageLabel JLabel o chooseAuthor JTextField o authors Authorinfo o types String a authorChooser JComboBox lt String gt o artTypeChooser JComboBox lt String gt al PlacementPanel Art2DModule B initialize void E getPaintingChooser JComboBox lt String gt E getimagePanel JPanel E getChooseAuthor JTextField E getAuthorCooser JComboBox lt String gt E getArtTypeChooser JComboBox lt String gt A refreshArtList void C 7 Diagrama de classes do pacote modules art2d lt lt Java Class gt gt 3 SelectArtEvent modules art2d af SelectArtEvent Object Artwork2Dinfo A getSelectedArtwork Artwork2Din fo lt lt Java Class gt gt Artwork2D modules art2d SF FACESET_INDEXES int SA TEXTURE INDEXES float a artiD int SF PAINTING THICKNESS float SFIMAGE DIMENSION int amp Artwork2D Artwork2DInfo A setinfo Artwork2Dinfo void A getArtiD int getNode ObjectNode E getCoordPoints Point3f Point3f float A getArtworkinfo Artwork2Dinfo getExportNode Document Fi
12. 11 4111 11 8111 11 14 11 11118111 11123111 11 28 11 12 4111 1116112 111612 2116112 311112 6 21 12 6 26 12 712112 8 13 12 8 16 12 101411 10 14 11 10 14 11 E 101411 E 10 31 11 11 30 11 1113111 11711 114141 114711 11 22 11 11 25 11 11130111 1113 12 8 15 12 2115112 2129 12 6 2012 6 25 12 6 29 12 8 10 12 8115112 9 25 12 80 Bibliografia blogWebGL http learningwebgl com blog page_id 2 17 11 2011 Blog Learning WebGL bsc http www bitmanagement com en download 24 09 2012 Pagina de download do BS Contact DAT GUI http code google com p dat gui 28 11 2011 A lightweight library for JavaScript Eclipse http www eclipse org 05 02 2011 Eclipse galBuilder http www youtube com watch v grzdbdoFz1M 17 11 2011 Browserbased 3D Gallery Builder GLGE http www glge org 17 11 2011 WebGL for the lazy Gomes10 Jorge Carvalho Gomes Maria Beatriz Carmo Ana Paula Cl udio Constru o Interactiva de Exposi es Virtuais INForum 2010 Simp sio de Inform tica Braga 9 10 Setembro 2010 Gomes11 Jorge Carvalho Gomes Maria Beatriz Carmo Ana Paula Cl udio Virtual Exhibition Builder International Conference on Computer Graphics Theory and Applications GRAPP 2011 Hrk01 Hrk S Virtual Art Gallery CESCG 2001 IntWebGL http gdd11 webgl appspot com 27 17 11 2011 Introduction to WebGL vm7 http www
13. associada A associa o das imagens s faces do objecto feita atrav s da inser o de obras 3D na interface desenvolvida para esse fim descrita na sec o 4 2 A seguir na figura 4 17 mostramos um exemplo de uma obra inserido com baixo n vel de detalhe 53 amp asdasd St File Exhibition Database Help CHOOSE ARTWORK Al authors Senta Author Rui Flores DETAIL LEVEL High 3D Model 9 Low Model from image m Oj SA EES sas Figura 4 17 Exemplo de obra tridimensional com baixo n vel de detalhe 4 6 Gera o autom tica de Viewpoints Para facilitar a visualiza o e recolha das dist ncias das obras achamos conveniente elaborar uma gera o autom tica de viewpoints Desta forma quando a exposi o estiver montada o utilizador poder recolher facilmente a informa o das dist ncias recorrendo ao m dulo Viewpoints Quando o utilizador coloca uma obra na parede criado automaticamente um viewpoint dessa parede no m dulo Viewpoints Isto quer dizer que todas as paredes com obras ter o um viewpoint definido Quando o utilizador desejar seleccionar o m dulo Viewpoints e poder navegar atrav s deles Para criar um viewpoint necess rio dar lhe um nome uma localiza o e uma orienta o O nome gerado automaticamente com o aux lio de uma vari vel increment vel gerando W
14. experi ncia se tornar mais enriquecedora em compara o com as ferramentas existentes baseadas em fotografias panor micas como em visVirt3D O desenvolvimento de ferramentas para a cria o de exposi es virtuais atrav s de modelos tridimensionais al m de possibilitar a divulga o das exposi es permite ainda auxiliar a concep o e montagem da pr pria exposi o No mbito da cria o de uma ferramenta para aux lio de equipas de museus na elabora o de exposi es foi criada a Galeria de Arte Virtual Semi o08 Esta aplica o foi reformulada e estendida dando origem Virtual Exhibiton Builder Gomes11 A aplica o Virtual Exhibition Builder foi apresentada equipa de um museu motivando a proposta deste projecto que visou a cria o de uma ferramenta mais 1 robusta com mais funcionalidades e explorando novas tecnologias com destaque para o WebGL A aplica o Virtual Exhibition Builder tinha algumas limita es quer ao n vel das funcionalidades desenvolvidas quer ao n vel de realismo das imagens entre estas a projec o de sombras A solu o deste problema poderia passar pela utiliza o de novas ferramentas que concretizassem tudo o que estava desenvolvido e pudessem resolver as limita es apresentadas 1 2 Objectivos e contribui es do trabalho Este trabalho foi realizado no mbito da Projecto em Engenharia Inform tica PEI para o Mestrado em Engenharia Inform
15. 51 L i asda SEI File Exhibition Database Help Surface Selection 2DArtwork 3D Artwork Bebe Viewpoints Distances ON OFF Place block DIMENSIONS Height 1 Width 1 Length 1 MATERIAL Color HA RE DEM ENE Figura 4 15 Exemplo de coloca o de bloco opaco L i asda JE File Exhibition Database Help I ee Surface Selection 2D Artwork H DIMENSIONS Height 158 Width 0 858 Length 0 85 MATERIAL Color OG IAS Re res b 3 55 Figura 4 16 Exemplo da coloca o de um objecto transparente vitrine 52 4 5 Representa o simplificada de obras 3D A aplica o Virtual Exhibition Builder ja contemplava a cria o de representa o simplificada para obras 3D Esta representa o correspondia a uma primitiva box cujas dimens es dependiam do objecto original Explicitamente eram indicadas as dimens es da bounding box que limita o objecto comprimento largura e altura Esta box tinha associada uma imagem que era aplicada como uma textura em todas as faces vis veis O que n s fizemos foi permitir ao utilizador aplicar uma imagem como textura a cada face desse objecto Para o fazer tivemos de alterar a geometria considerada anteriormente Porque se tratava de uma geometria pr definida e era por isso imposs vel tratar cada face de forma diferenciada sendo
16. A getArtworkinfo Artwork3Dinfo lt lt Java Class gt gt ArtworkModel modules art3d Ze ArtworkModel Artwork3Dinfo getNode ObjectNode getExportNode Document File ArrayList lt Node gt placeOverSurface Surface Point3f void SelectArtEvent Object Artwork3Dinfo A getSelectedArt Artwork3Dinfo lt lt Java Classes PlacementPanel modules art3d SF serialVersionUID long a artChooseLabel JLabel 2 authorChooser JComboBox a artChooser JComboBox o authorLabel JLabel a chooseAuthor JTextField a authors Authorinfo a thumbnail JPanel detailLabel JLabel a highDetail JRadioButton a lowDetail JRadioButton a spacer JPanel o imageLabel JLabel X IMAGE SIZE int e PlacementPanel Art3DModule B initialize void a refreshArtList void E getAuthorChooser JComboBox 8 getArtChooser JComboBox E getChooseAuthor JTextField E getThumbnail JPanel E getHighDetail JRadioButton E getLowDetail JRadioButton getSpacer JPanel lt lt Java Class gt gt SelectArtEvent modules art2d lt lt Java Class gt gt Art3DModule modules art3d a gui ModuleGUI a selectedDetail boolean cSactual artwork 3d String oSactual length 3d float oSactual width 3d float amp Art3DModule createObject Artwork3D A SelectArtwork Artwork3Dinfo void a selectDetail boolean void objectDeselected Artwork3D void objectSelected Artwork3D void a getArtworks Authorinfo Artwork
17. Divis es Tamb m poss vel inserir divis es no modelo espa o f sico da exposi o que podem por exemplo servir de apoio para esculturas ou mesmo representar paredes tempor rias O m todo de inser o destas divis es similar ao processo de coloca o de obras com a diferen a de n o ser obviamente necess rio escolher uma obra sendo apenas necess rio definir as dimens es e a cor da divis o Para definir essas informa es est um painel do lado esquerdo com os campos para o utilizador usar e no painel do lado direito o utilizador poder tal como nas obras bi e tridimensionais usar os bot es de desloca o Viewpoints Depois da exposi o montada isto de todos os objectos colocados nos devidos s tios o utilizador pode se desejar definir viewpoints Para isso existe um m dulo espec fico para cri los e navegar sobre eles Para definir um viewpoint necess rio o utilizador posicionar a c mara no lugar desejado e no painel do lado esquerdo atribuir lhe um nome Ap s a cria o do viewpoint este adicionado a uma lista vis vel no mesmo painel que poder ser utilizada posteriormente para navegar nos pontos j definidos No painel do lado direito o utilizador poder alterar a localiza o de um viewpoint seleccionando o na lista j mencionada atr s tal como elimin lo 12 O utilizador poder guardar a exposi o para uma eventual futura edi o isto feito atrav s do reg
18. Mapa de Gantt Segue o mapa de Gantt referente ao planeamento do projecto desenvolvido Como j foi referido no Cap tulo 5 Discuss o e Trabalho Futuro a complexidade do tratamento das cenas tridimensionais da aplica o Virtual Exhibition Builder levou a que a concretiza o de algumas tarefas demorasse mais tempo que o previsto tal como alguns problemas pessoais que impediram durante um largo per odo uma produtividade aceit vel Devido a isto o planeamento inicial divergiu do esperado e fez com que o trabalho se arrastasse durante mais tempo que o previsto 79 El Adapta o do projecto Adapta o s ferramentas do trabalho Adapta o s tecnologias utilizadas no trabalho Pesquisa sobre o estado da arte no mbito do projecto Pesquisa de bibliotecas WebGL El Implementa o do prot tipo em WebGL o Primitivas Gr ficas o Navega o na cena o Sensores de toque o Fontes de Luz e Texturas Interface de interac o com utilizador o Projec o de sombras o Escrita do Relat rio Preliminar E e Extens o Aplica o Java X3D Componente de cria o e edi o de bases de dados Salvaguarda de Exposi es Visualiza o dos valores das dist ncias e Gera o autom tica de Viewpoints o Vitrines Representa o Low Detail Obras 3D Ficheiro de configura o e Escrita do relat rio Final 9 30 11 9130111 9 3041 9 30 11 10 17 11 11141 11441
19. actualiza o de bases de obras de arte A actualiza o da base de dados estava a cargo de uma aplica o pouco amig vel para o utilizador comum o SQLite Studio Para resolver este problema decidimos implementar uma solu o que oferece uma interface mais amiga do utilizador para cria o e actualiza o de bases de dados Foi debatido como seria mais correcto implementar esta funcionalidade como uma op o de menu da aplica o Virtual Exhibition Builder ou como uma aplica o separada Decidimos criar uma aplica o que pode ser executada aut nomamente mas que tamb m pode ser invocada atrav s de uma op o na aplica o Virtual Exhibition Builder A base desta decis o esteve na ideia de separar claramente duas fases de concep o de uma exposi o a constru o da base de dados do report rio e a montagem da exposi o No entanto entendemos ser conveniente oferecer ao utilizador a possibilidade de fazer ajustamentos na base de dados na fase de constru o da exposi o isto j durante a montagem desta caso durante este processo o utilizador se depare com qualquer erro n o detectado aquando da constru o e preenchimento da base de dados Esta possibilidade oferecida atrav s de uma op o no menu principal Fig 4 1 A ferramenta relativa cria o e actualiza o de bases de dados foi desenvolvida com base no Java Swing 32 Esquema relacional simplificado da aplica o Ant
20. calcular e desenhar a dist ncia de cada obra relativamente ao ch o e sua extremidade direita Utilizamos ent o uma cena simples para mostrar o aspecto da cena com o bot o das dist ncias activo 47 L i asd el File Exhibition Database Help Surface Selection Li Darmork J 3D Artwork Blocks Viewpoints Distances ON OFF Place artwork CHOOSE ARTWORK All art types All authors SELECTED ARTWORK Title Impression Sunrise Author Claude Monet Fishing boats TRANSFORM Author Claude Monet ong EZE del Delete Description impression DERAS E men BONS Figura 4 12 Exemplo de marcac o de dist ncias As dist ncias est o marcadas na cena a amarelo pois essa a c r que est definida para o seu desenho S o representados os tra os e o valor da dist ncia em metros Uma forma alternativa para visualizar os valores das dist ncias seria marcar as dist ncias entre as obras em vez de desenhar a dist ncia de cada obra extremidade direita da parede Para isso na altura foi feito um m todo chamado SortDistances que ordenava as obras da menor para a maior dist ncia relativamente extremidade direita da parede Depois destes valores estarem ordenados era preparada a informa o a passar para o PrintArrows Comparativamente ao que foi realizado isto ao que foi explicado atr s apenas o comprimen
21. cies seleccionadas ter o uma c r distinta das demais quando o Select Surface estiver activo Obras 2D e 3D O passo seguinte colocar as obras nas paredes sejam as obras bi ou tridimensionais 11 Para a coloca o de objectos na cena foi definida uma interface com os par metros b sicos para a coloca o de obras em super cies nomeadamente a cria o da sua bounding box a defini o da superf cie de contacto o vector normal da superf cie e a orienta o do topo da obra Para a selec o da obra que o utilizador quer colocar na parede existe um painel do lado esquerdo Fig 2 3 que permite ao utilizador pesquisar as obras que est o na base de dados podendo filtr las por autor e tipo no m dulo das obras bidimensionais e apenas por autor nas obras tridimensionais dado que n o existe a no o de tipo de obra deste tipo sendo todas consideradas esculturas A coloca o de uma obra numa parede feita atrav s de um simples clique no lugar onde o utilizador quiser que a obra fique Para deslocar a obra o utilizador ter de usar os bot es de desloca o situados no painel do lado direito do m dulo actual Note se que a coloca o de obras bi e tridimensionais est o separadas em m dulos distintos Falando das obras tridimensionais existem duas representa es objectos detalhados constru dos em X3D e objectos pouco detalhados com a forma de um paralelep pedo com uma imagem aplicada em todas as faces
22. estado e o ficheiro da base de dados O utilizador convidado a 41 escolher o local onde quer que a exposi o seja guardada escolhe um nome e nesse local a aplica o criar uma pasta com o nome indicado com os ficheiros de estado e base de dados com o mesmo nome mas obviamente com diferentes extens es Exemplificando o utilizador com o File Chooser navega at ao Desktop e escolhe como nome da exposi o teste Depois disto a aplica o cria uma pasta chamada teste e l dentro guardar 2 ficheiros o teste vgp e o teste db3 respectivamente o ficheiro de estado da exposi o e o ficheiro da sua base de dados A op o Sabe only exhib foi criada para o utilizador n o ter sempre de gravar 2 ficheiros aquando da edi o de um ficheiro de estado ou seja esta op o apenas disponibilizada quando a exposi o j foi guardada pelo menos 1 vez ou se a exposi o foi aberta na aplica o utilizando a op o open Assim o utilizador pode guardar apenas o ficheiro de exposi o ou ent o criar novas exposi es novas arruma es das obras por exemplo usando a mesma base de dados Com esta modifica o podem ent o surgir casos em que uma pasta de uma exposi o poder ter 1 ficheiro de bases de dados e v rios ficheiros de estado n o havendo necessiade de haver v rios ficheiros iguais da base de dados o que poderia gerar uma ocupa o exagerada de espa o no disco sendo este proble
23. isso na cria o de uma exposi o pedido ao utilizador que d um nome exposi o e que associe a ela um modelo tridimensional em X3D do espa o f sico e uma base de dados como poder observar na figura 4 9 40 New project Project name X3D File Surface Detection Mode Fast Mode may not work in some scenes Perfect Mode may take a while DetectionFilters Minimum surface area 0 3 Figura 4 9 Janela de cria o de nova exposi o 4 2 Salvaguarda de Exposi es Agora vamos falar das altera es feitas na salvaguarda de exposi es Esta tarefa tem uma liga o directa com a cria o de mais do que uma base de dados de obras de arte poss vel ter v rios reposit rios de dados que podem ser associados a qualquer exposi o Temos 3 op es para o utilizador guardar o trabalho feito o Save Save As e Save Only Exhibition As duas primeiras op es j estavam implementadas na aplica o Virtual Exhibition Builder Fizemos uma altera o no Save as e cri mos o Save only exhib O Save as abria um FileChooser que permitia o utilizador gravar um ficheiro de estado onde quisesse A altera o feita no Save As tem a ver com o facto de agora existir no o de atribuir qualquer reposit rio de dados a uma exposi o ou seja a cada ficheiro de estado ter associado o seu ficheiro da base de dados Posto isto o nosso Save As guarda 2 ficheiros O ficheiro de
24. java com pt BR download chrome jsp locale pt BR 24 09 2012 P gina de download da JVM 7 Katalabs http www katalabs com blog 17 11 2011 Ratalabs NetBeans http netbeans org 04 01 2012 NetBeans Patias08 Patias P Chrysantou Y Sylaiou S Georgiadis Ch Michail D M 81 RTGomes11 Jorge Gomes Maria Beatriz Carmo Ana Paula Cl udio Creating and Assembling Virtual Exhibitions from Existing X3D Models Relat rio T cnico DI FCUL TR 2011 4 Semi o07 Pedro Semi o P M Carmo M B Galeria de Arte Virtual Actas do 15 Encontro Portugu s de Computa o Gr fica poster 2007 Semi o08 Pedro Semi o Maria Beatriz Carmo Virtual Art Gallery Tool Proceedings GRAPP 2008 Sledz07 Daniel A Sledz Donald E Coomes Mathias Kolsch Michael Thompson A dynamic three dimensional network visualization Program for integration into cyberciege and other network visualization scenarios Master Thesis 2007 SpiderGL http spidergl org index php 15 11 2011 SpiderGL 3D Graphics for next generation WWW sqlite About http www sqlite org about html 21 08 2012 About SQLite Three https github com mrdoob three js 19 11 2011 JavaScript 3D library visVirt3D http www culturaonline pt MuseusMonumentos Pages visitasvirtuais aspx 28 09 2011 Visitas virtuais 3D webGLOpenGL http www khronos org webgl wiki WebGL and OpenGL 17 11 2011 WebGL and OpenGL wikiWebGL http ww
25. lt lt Jawa Class gt gt 3 ProjectConfiguration SF serialVersionUID long a originalFile File a title String a fastMode boolean al ProjectConfiguration O getOriginalFile File a setOriginalFile File void getTitle String A setTitle String void O isFastMode boolean A setFastHode boolean void C 2 Diagrama de classes do pacote core module 69 lt Java Class gt gt Gi SurfaceModuleGUI core surface lt lt Java Class gt gt Listener surfMode 0 1 core surface lt lt Java Interface gt gt Surface Selectioninterface core surface lt lt ava Class gt 3 SurfaceModule lt lt Java Class gt gt ManualPicker core surface surfaces 0 lt lt Java Class gt gt SurfaceGroup core sur ace surfaces 0 1 lt lt Java Class gt 3 SurfaceDetector core surface triangles 0 lt lt Jawa Class gt gt Triangle FlatShape core surface lt lt Jawa Class gt gt 3 Surface core surface o lt lt Java Class gt gt 8 OverListener core surface C 3 Diagrama de classes do pacote core surface 70 lt Java Class gt gt 9 NormalFilter core surface filters lt lt Java Class gt gt 3 DisjunctionFilter core sur ace filters lt lt Java Class gt gt Filter core surface filters Sof HORIZONTAL int Disjunc
26. normal da parede este tem especial utilidade para o c lculo das dist ncias na extremidade direita das paredes Os argumentos floor e right s o usados para o c lculo das dist ncias Esta funcionalidade a visualiza o da informa o das dist ncias executada atrav s de um bot o colocado no painel de m dulos da aplica o com o nome de Distances On Off A coloca o do bot o nesse lugar facilita o acesso a esta funcionalidade em qualquer altura do processo de montagem de uma exposi o virtual nesta aplica o pois o nico painel da aplica o independente do m dulo em que o utilizador est a trabalhar Este bot o tem um mecanismo equivalente a um On Off isto quando o utilizador carrega pela primeira vez se existirem paredes seleccionadas e obras colocadas as dist ncias s o calculadas e desenhadas quando o utilizador voltar a carregar no bot o essa informa o desaparecer da cena S o criadas tantas inst ncias da classe CalcDistances quantas as paredes com obras associadas existam ou seja se existirem 10 paredes seleccionadas 4 delas com obras ser o criadas 4 inst ncias desta classe Cada inst ncia criada ir chamar os m todos GetFloorDistances e GetRightDistances isto equivalente a dizer que para cada obra de cada parede ir o ser calculadas e desenhadas as dist ncias at ao ch o e at extremidade direita 46 O m todo GetFloorDistances come a por ir buscar os nomes
27. o objecto considerado apenas 1 cubo e n o um conjunto de 6 faces tivemos de re criar o objecto O que fizemos foi criar 6 IndexedFaceSet para representar as 6 faces e atribuimos uma textura diferente a cada uma ou seja na pr tica era criada uma shape com uma box como geometria agora s o criadas 6 shapes cada uma sendo um IndexedFaceSet O m todo que faz a constru o do objecto tem como tipo de retorno um ObjectNode cujo objecto era definido por um tuplo de 3 elementos um X3Dnode uma shape e as coordenadas da bounding box upper e lower Ora dado que o objecto retornado do m todo que constr i o cubo com as v rias texturas ter de retornar um conjunto de shapes o construtor da classe ObjectNode foi alterado para receber um conjunto neste caso escolhemos uma ArrayList de X3DNode Esta altera o possibilidade de atribuir v rias imagens a um objecto n o teve qualquer altera o na estrutura da base de dados o campo onde ficava o caminho da nica imagem do cubo que estava antes implementado usado mas usando v rios caminhos 66 99 separados por ponto e v rgula Se o utilizador associar apenas uma imagem ao objecto essa imagem ir ser repetida por todas as faces gerando um resultado equivalente ao que gerava antes desta altera o mas se o utilizador introduzir mais do que uma imagem as imagens ser o colocadas nas devidas faces ficando sem imagem as faces eventualmente sem nenhuma
28. o sobre os quadros est guardada numa base de dados MySQL A constru o da exposi o foi dividida em duas fases na primeira s o identificadas as superf cies onde se desejam colocar os quadros criando um novo ficheiro com sensores de toque associados s superf cies seleccionadas Na segunda fase constr i se a exposi o virtual pesquisando os quadros na base de dados e seleccionando as superf cies onde devem ser colocados Semi 008 Entre as limita es detectadas nesta ferramenta destacaram se o tratamento de apenas algumas das representa es poss veis no formato X3D a impossibilidade de alterar uma exposi o criada numa edi o anterior e a coloca o apenas de obras de arte bidimensionais como quadros e tape arias Para colmatar estas limita es foi desenvolvida uma nova aplica o mais gen rica e com mais funcionalidades que ser apresentada a seguir 2 6 Virtual Exhibition Builder A aplica o Virtual Exhibition Builder Gomes11 estendeu a aplica o descrita acima Galeria de Arte Virtual tendo como objectivo complementar as funcionalidades dessa aplica o H Relativamente aplica o Galeria de Arte Virtual foram feitas algumas melhorias nomeadamente a convers o da descri o dos modelos tridimensionais numa geometria que possibilite um tratamento uniforma de cen rios a possibilidade de edi o de exposi es j constru das a cria o de filtros auxiliares para identifica o de
29. projecto basta ir ao Menu do Netbeans e seleccionar File gt New Project de seguida selecciona se a categoria PHP com projecto PHP application Para armazenar os objectos referentes ao prot tipo em si nomeadamente as imagens recorreu se ao XAMPP Xampp um servidor independente de plataforma software livre que permite o uso de uma base de dados MySQL o servidor web Apache e os interpretadores para linguagens de script como o PHP Para executar a aplica o primeiro tem de se abrir o XAMPP para isso ter de se aceder ao XAMPP Control Panel e executar os m dulos Apache e MySQL Depois disto feito ter de se ir ao Netbeans e configurar o Run para o fazer Run gt Set Project Configuration gt Customize Na janela que ser aberta acede se ao Run Configuration no menu esquerda criando se uma nova configura o em New atribuindo lhe um nome Depois no Run As escolhe se a op o Local Web Site e no Project URL e Index File refere se a pasta e o ficheiro da aplica o respectivamente No caso deste projecto http localhost Testes e Prototipo VersaoBeta003 html 3 6 Prot tipo WebGL Nesta fase do projecto opt mos pela elabora o de um prot tipo em WebGL que explorasse ao m ximo as capacidades que se desejam ver na aplica o A ideia foi a implementa o de diversas pequenas tarefas j concretizadas manipulando um cen rio em X3D padr o usado para elaborar o espa o f sico do museu na
30. superf cie MidPt Ponto central da parede Floor Posi o em que est o ch o Right Posi o em que est a extremidade direita da parede Arts Obras que est o na parede 44 Para o campo id usado o hashcode da Surface que representa a parede isto porque esse valor nico e nunca se altera o que o torna ideal para representar a unicidade deste objecto Ora s o criadas tantas inst ncias desta classe quantas paredes forem seleccionadas para colocar obras Conclu do este processo procedemos coloca o das obras nas paredes Para auxiliar no c lculo das dist ncias foi criada outra classe denominada Art que representa cada obra colocada na exposi o e que cont m informa o relevante para esse c lculo A informa o armazenada em cada inst ncia da classe Art a seguinte Art T tulo da obra Heigth Altura da obra em metros Width Largura da obra em metros Points Coordenadas dos 4 cantos das obras Cada vez que as obras s o deslocadas as coordenadas dos seus v rtices s o actualizadas assim as marca es de dist ncias est o sempre em conformidade com a posi o corrente das obras Como j foi referido atr s s o calculadas as dist ncias relativamente ao ch o e extremidade direita da parede Para cada uma das refer ncias existe um algoritmo Foi criada uma nova classe chamada CalcDistances que executa todos os c lcul
31. superf cies eleg veis para coloca o de obras de arte a extens o do tipo de obras de arte que podem ser colocadas no espa o expositivo nomeadamente a possibilidade de inclus o de objectos 3D a inser o de objectos auxiliares para suporte apresenta o de obras de arte por exemplo divis rias amov veis e bases para coloca o de esculturas e a possibilidade de definir viewpoints Vamos agora focar nos numa descri o mais detalhada desta aplica o dado que esta ser estendida neste nosso projecto e de toda a conveni ncia deixar claro o que j estava feito e o que n s fizemos A seguir explicamos com mais detalhe esta aplica o 2 6 1 Arquitectura da aplica o Nesta sec o descrita a arquitectura da aplica o Virtual Exhibition Builder A figura 2 1 apresenta o diagrama de classes simplificado com os componentes da aplica o e a sua articula o Core GUI Edit mode Interfaces Surface Module l Object Database Project Placement Management Mode External modules 2D Artwork 3D Artwork Removable Viewpoint Module Module Structures Module Module Figura 2 1 Diagrama de classes simplificado RTGomes11 A arquitectura da aplica o baseou se num design modular Este aspecto tem particular relev ncia se considerarmos que a cria o de uma exposi o nesta aplica o envolve v rios processos e tipos de objectos que se querem independentes De f
32. 3 6 6 Interface de interac o com objectos da cena 26 30 Ge adro paras fam eal oo Ss lo tele 28 Sd ADISCUSS O EE 28 Cap tulo 4 Trabalho Desenvolvido X3D rea 31 4 1 Componente de cria o e actualiza o de bases de dados 31 4 2 Salvaguarda de Exposi es sinn Less 41 4 3 Visualiza o de valores de dst ncas 43 A e 51 4 5 Representa o simplificada de obras 2 53 4 6 Gera o autom tica de Viewpoints coooocccconoccnoncccnoncnonnnncnnnnncnonnncnnnaninnnos 54 4 7 Ficheiro de COMMSUTACOES a 55 Cap tulo 5 Discuss o e trabalho futuro 57 Ap ndice A Guia de Utiliza o da Aplica o Java X3D ne 59 Ap ndice B Manual de Utiliza o do Prot tipo Web 61 Ap ndice C Diagramas de Classe ne Rank 63 Ap ndice D Mapa de Gantt emissions isn mn 79 o E tana tras tat tats ata afu es 81 vi Lista de Figuras Figura 2 1 Diagrama de classes simplificado RTGomes11 8 Figura 3 1 Eleito do clique numa parede aaa assa ia ee 22 Figura 3 2 Inconsist ncias na ilumina o da cena 24 Figura 3 3 Inconsist ncias nas sobras relativamente fonte de luz 26 Figura 3 4 Cena oema EE 21 Figura 3 5 Cena alterada e ee ae 27 Figura 3 0 Cena Coni texturas E 28 Figura 4 1 Menultem base de dados rta NENNEN reine 35 Figura 4 2 Interface de cri
33. 3Dinfo a getAllAuthors Authorinfo O getStatus Serializable restoreStatus Serializable void O reset void getGUI ModuleGUI fetcheh 0 1 fetcher 8 1 lt lt Java Classes Fetcher modules art3d a db DBConnection A Fetcher DBConnection a getAuthors Authorinto a getArtwork3D Authorinfo Artwork3Dinfo A insertBounds Artwork3Dinfo Point3f Point3f void A setDim Artwork3Dinfo Point3f Point3f void getArtByld int Artwork3DInfo E fillArt ResultSet Authorinfo Artwork3Dinfo fetcher lt lt Java Classes ArtworkClumsy modules art3d a height float a width float a length float So IMAGE DIMENSION int af ArtworkClumsy Artwork3DInfo getExportNode Document File ArrayList lt Node gt copylmage File ArrayList lt File gt getNode ObjectNode module 0 1 lt Java Classes ChooseListener modules art d ChooseListener actionPerformed ActionEvent void E chooseAuthor void E chooseArt void lt lt Java Classes ObjectPanel modules art3d SF serialVersionUID long a selectedLabel JLabel a selectedTitle JLabel a selectedTitleField JTextField o selectedAuthor JLabel o selectedAuthorField JTextField a transformLabel JLabel a transform Transform a selectedDescriptionField JTextArea a selectedObsField JTextArea a IblDescription JLabel a IblObservations JLabel a scrollPane JScrollPane a scrollPane2 JScroliPane
34. 5 Diagrama de classes do pacote database 71 lt lt Java Class gt gt lt lt Java Classes 3 NewProjectWindow VirtualGallery lt lt Java Class gt gt G NewProjlistener gui lt lt Java Class gt gt lt lt Java Class gt gt lt lt Java Class gt gt lt lt Java Class gt gt GO EditDatabase3D EditDatabase2D insert2dData insert3dData gui qui i i lt lt Java Class gt gt gui Transform lt lt Java Class gt gt lt lt Java Class gt gt 3 MainMenu OptionsSide right i y 0 1 title 0 1 left OM lt lt Java Class gt gt Java Class gt gt TitlePanel lt lt Java Classes instance do 1 O FileListener gui options lt lt Java Class gt gt lt lt Java Class gt gt Option O InitProject gui gui C 6 Diagrama de classes do pacote gui 72 lt lt Java Class gt gt 8 Artwork2Dinfo modules art2d a id int a title String a author Authorinfo a year int a type String a image File a height float a width float a description String a observations String amp Artwork2Dinfo A getiD int A getimage File a getWidth float info a getHeight float 01 A getTitle String A getDescription String A getObservations String A getAuthor Authorinfo A getYear int A setid int void A setTitle String void a setAuthor Authorinfo void A setYear int void A setimage File void setHeight float void
35. Teste be x File Exhibition Database Help _ Surface Selection 2D Artwork H 3D Artwork Blocks Viewpoints Distances ON OFF Parede 1 Parede 2 SEA Figura 4 11 Exemplo de uma cena sem obras O eixo de coordenadas os nomes das paredes e as esferas a representar os cantos n o s o originais da cena s o apenas usados para ajudar no racionc nio No caso da parede 1 a mais escura a extremidade direita da parede segundo o eixo desenhado na cena equivalente ao maior valor x dos 4 cantos da parede No caso da parede 2 se o utilizador estiver de frente para ela a extremidade direita da parede corresponde ao menor valor z dos 4 cantos da parede e assim por diante Relativamente ao ch o este calculado da mesma maneira nas 2 paredes ou seja obtido o menor valor y dos 4 cantos das paredes Este processo isto o c lculo das posi es do ch o e da extremidade direita de uma parede feito para cada parede seleccionada pelo utilizador seja manual ou automaticamente Foi criada uma classe para representar cada parede a classe Wall Esta classe regista algumas informa es de cada parede Esta informa o essencialmente usada para facilitar o c lculo das dist ncias A informa o registada a seguinte Id Corresponde ao hashcode da Surface que representa a parede Normal Vector que representa a normal da
36. UNIVERSIDADE DE LISBOA Faculdade de Ci ncias Departamento de Inform tica MUSEUS VIRTUAIS Rui Pedro Pelica Santos Flores PROJECTO MESTRADO EM ENGENHARIA INFORM TICA Sistemas de Informa o 2012 UNIVERSIDADE DE LISBOA Faculdade de Ci ncias Departamento de Inform tica MUSEUS VIRTUAIS Rui Pedro Pelica Santos Flores PROJECTO Trabalho orientado pela Professora Doutora Maria Beatriz Duarte Pereira do Carmo e co orientado pela Professora Doutora Ana Paula Boler Cl udio MESTRADO EM ENGENHARIA INFORM TICA Sistemas de Informa o 2012 Agradecimentos Este documento representa o culminar de um longo percurso na minha vida pessoal e intelectual e como tal um dos momentos mais importantes da minha vida Foi um longo percurso com altos e baixos mas com muita alegria que atinjo por fim este objectivo da minha vida E por isso tenho alguns agradecimentos a fazer Primeiro minha fam lia os meus pais e irm o especialmente pois sem eles e a sua ajuda e apoio incondicionais seria muito mais dif cil percorrer este longo caminho agrade o especialmente ao meu pai que a todos os n veis nunca deixou de me apoiar mesmo nas alturas mais dif ceis Agrade o tamb m minha namorada Marta Louren o a sua paci ncia para comigo e o facto de estar sempre ao meu lado para me animar acalmar e aconselhar dentro e fora da Universidade nos bons e maus momentos Aos meus amigo
37. a o de um Material associado a uma imagem que servir de textura para o objecto ao qual o material est ligado Para usar a imagem basta colocar o endere o do objecto no peda o de c digo a seguir var materialML new THREE MeshLambertMaterial map THREE ImageUtils loadTexture Endere o da imagem Ir Figura 3 6 Cena com texturas 2 A figura 3 6 tem associadas texturas em todos os objectos isto em todas as superf cies paredes e nos objectos que representam as obras 3 7 Discuss o Nesta sec o apresentamos as conclus es do prot tipo feito usando a tecnologia WebGL Quanto liga o a uma base de dados existe o problema do WebGL correr num Web browser o que impossibilita a m quina do browser de comunicar com uma base de dados directamente por raz es de seguran a A melhor maneira de obter informa o de uma base de dados nestas condi es criar uma aplica o server side usando uma linguagem para esse fim por exemplo o PHP blogWebGL Esta aplica o server side far a ponte entre o lado do cliente JavaScript e a Base de Dados em si isto 28 receber as queries enviadas do cliente e encaminhar os resultados das consultas de novo para ele Como foi mostrado na sec o 3 6 5 a projec o de sombras n o tem o comportamento esperado sendo inconsistente com as geometrias e posi es de fontes de luz testadas Juntando a este facto o problema
38. a o e edi o de bases de dados 35 Figura 4 3 Janela de manuten o de bases de dados oaeeo seen essen 36 Figura 4 4 Janela de inser o de dados das obras 213 37 Figura 4 5 Exemplo de preenchimento pr vio de Combo boxes nosses 37 Figura 4 6 Janela de inser o de dados de obras 3D seeeeeesesesesesererrseresrrssrrereeee 38 Figura 4 7 Interface de consulta edig o de base de dados Obras 2D 39 Figura 4 8 Interface de consulta edig o de base de dados Obras 3D 40 Figura 4 9 Janela de cria o de nova exposi o occooccnooccnonoconcnonnnonn nono ncnonccnnncnnnoo 41 Figura 410 Menultem Please el 42 Figura 4 11 Exemplo de uma cena sem obras nen 44 Figura 4 12 Exemplo de marca o de dist ncias 48 Figura 4 13 Exemplo explicativo da solu o da dist ncia entre obras 49 Figura 4 14 Exemplo se situa o potencialmente confusa oooonoccnocccnocononccannnnnnno 50 Figura 4 15 Exemplo de coloca o de bloco opaco coooococococcnoncnonanonancnonccanncnnoss 52 Figura 4 16 Exemplo da coloca o de um objecto transparente vitrine 52 Figura 4 17 Exemplo de obra tridimensional com baixo nivel de detalhe 54 Figura C 1 Diagrama de classes do pacote core essen 68 Figura C 2 Diagrama de classes do pacote core module
39. a nativamente WebGL a partir da vers o 9 no Windows Linux e Mac O Mozilla Firefox suporta nativamente WebGL a partir da vers o 4 O Internet Explorer n o suporta WebGL 3 4 Bibliotecas WebGL O passo seguinte foi efectuar uma pesquisa de bibliotecas WebGL de modo a facilitar o eventual desenvolvimento da aplica o Foram verificadas e experimentadas algumas bibliotecas mais especificamente a SpiderGL SpiderGL GLGE GLGE DAT GUI DAT GUI e a THREE Three Opt mos por usar a biblioteca THREE e a DAT GUI por observa o e experimenta o dos exemplos dispon veis pela biblioteca Entre eles foi poss vel verificar alguns modelos tridimensionais desenvolvidos e a forma como eram feitas as projec es de sombras que foi um dos fortes motivos pelo qual decidimos experimentar esta tecnologia Para a cria o de interfaces para a aplica o foi encontrada a DAT GUI De entre os recursos que foram consultados observ mos que existiam algumas interfaces que poderiam ser teis para a interac o do utilizador com a cena o que envolve por exemplo a desloca o de obras nas paredes 16 3 5 Ambiente de Desenvolvimento O prot tipo que ser descrito na sec o seguinte foi desenvolvido em ambiente Windows 7 recorrendo ao IDE Integrated Development Environment Netbeans Vers o 7 0 1 NetBeans com a extens o para desenvolvimento de software PHP que tamb m serve para programar JavaScript Para criar o
40. abela C 10 Descri o das classes do pacote modules division 67 Tabela C 11 Descri o das classes do pacote modules viewpoints 67 Tabela C 12 Descri o das classes do pacote up 67 1X Cap tulo 1 Introdu o Este cap tulo tem como objectivo a apresenta o da motiva o dos objectivos do trabalho desenvolvido as suas contribui es e finalmente a organiza o e estrutura do documento 1 1 Motiva o A divulga o do acervo de museus e de galerias de arte atrav s da Web de grande relev ncia para as institui es Al m do contributo cultural em termos da divulga o de obras de arte atingindo um p blico mais alargado do que aquele que habitualmente frequenta as suas instala es a dissemina o do acervo de um museu tamb m um meio para captar potenciais visitantes e um auxiliar para que estes possam tirar maior partido da sua visita Por outro lado uma forma de dar visibilidade a obras que temporariamente n o est o expostas seja devido a restri es de espa o seja pela sua fragilidade seja por motivo de ac es de restauro em curso Para l da colec o do pr prio museu atrav s da Web podem ainda ser divulgadas exposi es tempor rias que mostram a din mica cultural de um museu Se a tudo isto estiver associada uma ferramenta que permita que as pessoas possam navegar livremente por um espa o virtual tridimensional naturalmente que a
41. all i com o i inicializado a zero e incrementado a cada cria o de um viewpoint Quanto localiza o essa dada pelo atributo MidPt da classe Wall isto o ponto central da parede informa o ideal para o posicionamento do viewpoint a orienta o obtida dependendo do vector normal da parede isto o seu posicionamento relativamente cena 54 4 7 Ficheiro de configura es Foi criado um ficheiro de configura es que servir para o utilizador definir alguns valores por omiss o da aplica o Os valores que est o definidos s o a pasta onde as bases de dados criadas na aplica o ficar o por omiss o pasta databases a pasta onde ficar o por omiss o as obras adicionadas na base de dados e finalmente a cor que o utilizador deseja que seja usada para a representa o das dist ncias na cena Este ficheiro tem uma estrutura baseada no XML para facilitar a sua constru o e leitura atrav s do JAVA e tamb m para ser facilmente percept vel com o aux lio dos coment rios escritos no pr prio ficheiro O tipo de valor para a defini o da pasta por omiss o das bases de dados e seus recursos s o os caminhos destas por exemplo C Rui Museus databases O tipo de informa o introduzida para a cor da representa o das dist ncias na cena um tuplo de inteiros correspondente ao sistema de cores RGB Um exemplo de um ficheiro de configura o lt config gt lt in
42. as inicialmente Esta situa o poderia causar alguma confus o ao utilizador n o tanto neste exemplo mas com v rias obras na parede da termos optado por utilizar directamente as refer ncias para a extremidade direita da parede Inicialmente e durante muito tempo as informa es sobre as obras e paredes estavam armazenadas num ficheiro de texto que era editado conforme havia altera es na cena ou eram requeridas as informa es para desenhar as dist ncias na cena A estrutura do ficheiro era a seguinte Wall id normal chao dir obral obra2 Obral pontol ponto2 ponto3 ponto4 C Todo o trabalho de manuten o da integridade desse ficheiro estava assegurado pela classe FileManipulator As principais raz es pelas quais mud mos de planos relativamente a esta forma de armazenamento de informa o foram o facto de em alguns casos altera es consecutivas muito r pidas acabarem por causar problemas de acesso ao ficheiro isto a aplica o ter de fazer uma altera o no ficheiro enquanto a anterior ainda n o est acabada isto originou por vezes problemas de acesso para escrita Juntando a isto o facto de o desenho das dist ncias ser dependente de um ficheiro de texto poderia causar problemas se por algum acaso a integridade do 50 ficheiro fosse comprometida Finalmente outro dos inconvenientes era a necessidade de termos sempre 3 ficheiros para cada exposi o guardada o fiche
43. av s de modelos tridimensionais al m de possibilitar a divulga o das exposi es permite ainda auxiliar a concep o e montagem da pr pria exposi o Existia j uma aplica o elaborada no mbito da equipa de investiga o em que este projecto se integra Virtual Exhibition Builder que recorre a modelos tridimensionais em X3D Existe agora uma maior aposta em aplica es Web baseadas em modelos tridimensionais contribuindo para isso o recente boom das aplica es 3D na Web atrav s de novas tecnologias como WebGL O principal objectivo deste projecto foi o desenvolvimento de uma ferramenta para auxiliar os t cnicos de museus normalmente sem experi ncia no dom nio da inform tica na fase inicial de concep o de uma exposi o Al m disso pretendia se que as exposi es constru das pudessem ser divulgadas atrav s das p ginas web dos museus Numa primeira fase fez se um trabalho de pesquisa sobre a tecnologia WebGL Concluiu se que a adop o do WebGL n o trazia vantagens relativamente tecnologia usada na aplica o j desenvolvida Optou se assim por extender a aplica o j existente juntando novas funcionalidades de que se destacam a visualiza o de valores das dist ncias de uma obra em rela o a pontos de refer ncia a adi o de vitrines a cria o de representa es de obras 3D com baixo n vel de detalhe e a cria o de uma aplica o interactiva para cria o e actualiza
44. da falta de experi ncia no uso da tecnologia WebGL e JavaScript o desenvolvimento de uma nova aplica o foi abandonado optando se por estender a aplica o j constru da a Virtual Exhibition Builder No cap tulo seguinte iremos descrever as extens es efectuadas na aplica o 29 30 Cap tulo 4 Trabalho Desenvolvido X3D Neste cap tulo descrevemos as funcionalidades acrescentadas aplica o Virtual Exhibition Builder Gomes11 nomeadamente uma componente para a cria o e actualiza o interactiva de uma base de dados de obras de arte altera o do modo de salvaguarda de exposi es visualiza o dos valores das dist ncias dos objectos de arte a pontos de refer ncia a adi o de vitrines no espa o da exposi o a constru o de representa es de obras de arte 3D de forma simplificada sem recurso a modela o tridimensional e a cria o de um ficheiro de configura es que permite o ajuste de alguns par metros por omiss o da aplica o de forma f cil para o utilizador Algumas das funcionalidades que iremos descrever a seguir envolveram manipula o de elementos do grafo da cena tendo sido o Sledz07 uma ajuda preciosa para perceber o uso do SAI Scene Access Interface A programa o foi feito na linguagem Java A aplica o Virtual Exhibition Builder foi estendida recorrendo ao Java SE JDK Java Development Kit vers o 7 O IDE Integrated Development Environment foi o Eclipse Ind
45. das obras que est o de momento associadas parede Apartir do s nome s recebido s vamos buscar as informa es dos 4 pontos cantos da obra que cont m as posi es x y z de cada ponto Foi feito um m todo que ir determinar qual dos 4 pontos tem a coordenada y mais baixa isto qual dos 4 pontos representa o ponto mais baixo da obra relativamente parede Com base no valor y desse ponto ent o calculada a dist ncia atrav s da diferen a entre este valor y do ponto mais baixo da obra com o argumento floor que representa o valor y do ponto mais baixo da parede isto o ch o Esta informa o passada para o m todo PrintArrows que o m todo respons vel pelo desenho da informa o na cena Os argumentos isto a informa o que passada para este m todo a dist ncia calculada valor que ser usado para definir o comprimento do tra o o ponto apartir do qual ser desenhado o tra o e um n mero inteiro que informa se aquela dist ncia relativa ao ch o ou extremidade direita da parede pois ambos os casos s o distintos nomeadamente na forma como se desenham as informa es na cena O m todo GetRightDistances praticamente igual ao GetFloorDistances com a diferen a de que necess rio ter em conta o vector normal da parede para a determina o de qual ponto se ir passar para o PrintArrows Portanto resumindo a ideia determinar quais as paredes que t m obras e sobre elas
46. de dados Uma nica base de dados foi constru da e preenchida denominada sglitedb Ao carregar um ficheiro X3D com o modelo tridimensional do espa o f sico da exposi o feita a uniformiza o da geometria da cena Este passo necess rio porque apesar do X3D ser um formato bem definido existem m ltiplas representa es para o mesmo aspecto gr fico de uma cena dada a vasta variedade de n s que descrevem a geometria dos objectos Para resolver este problema foi criado um processo que em nada altera a geometria inicial da cena mas adiciona uma nova defini o da geometria da cena Esta camada abstracta da cena original composta por superf cies invis veis colocadas por cima da geometria original Cada superf cie uma rea definida por um vector normal e um conjunto de tri ngulos adjacentes com as normais paralelas Todas as altera es operadas na cena s o sobre esta camada abstracta deixando a cena original intacta Antes de descrever os m dulos e o processo de constru o de uma exposi o usando a Virtual Exhibition Builder queremos salientar que o utilizador apenas pode executar tarefas num m dulo de cada vez ou seja o processo de montagem de uma exposi o envolve uma sequ ncia de tarefas e cada tarefa executada no seu m dulo 2 6 2 M dulos Nesta sec o descrevemos os m dulos existentes na aplica o Virtual Exhibition Builder e o seu funcionamento Para ilustrar melhor o que vamos descrever a
47. ded to extend the application Virtual Exhibition Builder adding new functionalities such as the visualization of the distances of an artwork on its surface based on reference points the adding of vitrines low level detail representations of tridimensional artworks and the implementation of an interactive application for the creation and updating of artworks databases Keywords Exhibition Virtual X3D WebGL 111 iv Conte do Capitulo T ira ee ans dem sia gel 1 A EEE El 1 1 2 Objectivos e contribui es do trabalho 2 L Estar do documento ap ae 3 Capitulo 2 Trabalho Relacionado sense e 5 21 Virtual Art Gallery io es als 5 2 24 FARO emeti talons a tit 5 2 3 The Development of an E Museum for Contemporary Arts 6 2 4 Browserbased 3D Gallery Builder rr 6 23 Galera de Arte Virtual 222er 6 20 NigualExbibition B llder saure ele 7 2 6 1 Arquitectura da e 8 202 Modules ae 10 Cap tulo 3 Trabalho Desenvolvido WebGL ner sense 15 3 SSOP AW CDG temo ali a an aa 15 I2 o O A a E E 15 3 3 Compatibilidade com os Web Browsers oooooocoocccnoocccnoncncnoncnononccnnnnccinnnos 16 3 4 Bibliotecas Weber 16 3 5 Ambiente de Desenvolvimento nada 17 E e PO EE 17 3 6 1 Eupen See tc i ca o 19 216 28 NAVCDA O NA CENA En SS SS Era 21 3 03 Sensores de OQUE salsa ad nel 22 3 04 eut eege ee 23 3 05 Projec o de sombras as eier 23
48. dos Author All Iv Type All ES Delete selected row art id title author year type height vvidth image path Description 1 Volcano of Henri Carti 11964 Photography 0 666 1 0 resources 2 Hi res Henri Carti 11932 Photography 0 666 1 0 resources 3 Gioconda Leonardo 11155 Painting 0 77 0 53 resources 4 IImpression Claude Mo 1872 Painting 0 48 0 63 resources 5 Antique Ba Persian Textile 2 7 20 resources 6 Fishing bo Claude Mo 1880 Painting 0 713 1 178 resources 7 Horta de E Pablo Pica Painting 0 844 0 989 resources 8 Guernica Pablo Pica Painting 0 84 1 905 resources 9 Weeping W Pablo Pica Painting 1 024 0 768 resources 10 IGris Pablo Pica Painting 1 056 0 817 resources Figura 4 7 Interface de consulta edi o de base de dados Obras 2D 39 Como acima foi referido existem 2 filtros que s o representados por 2 combo boxes preenchidas com os autores e tipos de obra dispon veis na base de dados como vis vel na imagem acima Neste exemplo s o apresentadas todas as obras 2D presentes na base de dados dado n o especificado nenhum autor nem tipo de obra Existe tamb m a possibilidade de eliminar ocorr cias bastando para isso seleccionar quaquer uma das linhas e carregar no bot o Delete selected row
49. dos na rea em que este projecto se insere e Cap tulo 3 Trabalho Desenvolvido WebGL Este cap tulo descreve os ensaios realizados com o WebGL e Cap tulo 4 Trabalho Desenvolvido X3D Este cap tulo descreve o que foi desenvolvido tendo por base a organiza o da cena em X3D e Ap dice A Manual de Utiliza o da Aplica o Java X3D e Ap ndice B Manual de Utiliza o da Aplica o WebGL e Ap ndice C Diagrama de Classes e Ap ndice D Mapa de Gantt e Bibliografia Cap tulo 2 Trabalho Relacionado Este cap tulo refere se a diversos trabalhos desenvolvidos por outro autores na rea em que este projecto est inserido Descrevem se em seguida esses trabalhos 2 1 Virtual Art Gallery A aplica o Virtual Art Gallery Hrk01 tem um editor gr fico 2D que permite por um lado a edi o da planta do espa o de exposi o alterando por exemplo a cor ou textura associada a uma dada parede e por outro lado a coloca o de quadros nas paredes Esta segunda tarefa realizada usando duas janelas auxiliares uma com a visualiza o das reas cobertas pelos quadros colocados outra com a interface para escolha da obra e indica o das coordenadas para coloca o do quadro A inser o interactiva de objectos tridimensionais n o tratada 2 2 ARCO No mbito do projecto ARCO Augmented Representation of Cultural Objects desenvolveram se um conjunto de ferramentas destinadas a construir
50. dule getinstance Gallery E Gallery B init void E initializeBrowser void newProject String File boolean FiterSet void e loadProject File void O saveProject File void O hasSaveLocation boolean O GetSaveLocationPath String O switchMode OperationModule void E initializeScene File void 4 getScene File X3DScene getNuliBrowser Xj3DBrowser e getBrowserPanel JPanel exportX3D File void O getScene X3DScene e getBrowser Xj3DBrowser getSurfaceModule SurfaceModule O getModuleByName String OperationModule getAllModules OperationModule e getConfiguration ProjectConfiguration hasOpenProject boolean 0 notifyStatus Object int String void e getDBConnection DBConnection E BuildConfigFile void m GetConfiginfo void 0 1 instance C 1 Diagrama de classes do pacote core 68 lt lt Java Class gt gt ModuleLoader core al ModuleLoader a loadModules List lt OperationModule gt EP check Class boolean E getClasses String List lt Class gt E findClasses File String List lt Class gt lt lt Java Class gt gt 3 ProjectManager core o modes OperationModule o lastStatus Map lt String Serializable gt o saveDest File PS ProjectManager OperationModule a save File ProjectConfiguration File a hasSaveLocation boolean a getSaveLocationPath String amp load File ProjectConfiguration amp restoreLastStatus void
51. e Gere as transi es de m dulo Tabela C 3 Descri o das classes do pacote core module Classe Descri o AutoPicker Aplica o dos filtros de superf cie FlatShape Representa uma superf cie ManualPicker Selecciona uma superf cie com um clique Surface Opera es sobre a superf cie SurfaceDetector Detecta superf cies na cena original SurfaceEvent Evento lan ado aquando de uma ac o sobre uma superf cie seleccionada ou detectada SurfaceGroup Opera es de conjunto de superf cies SurfaceModule Prepara toda a informa o do m dulo Surface 64 SurfaceModuleGUI GraphicalUserInterface do m dulo SurfaceSelectionInterface Representa todas as ac es de selec o de superf cies Triangle Representa o dos tri ngulos dos quais as superf cies s o compostas Tabela C 4 Descri o das classes do pacote core surface Classe Descri o Areafilter Descreve o filtro de rea de superf cie DisjuntionFilter Descreve o filtro de normais b sico Filter Descri o gen rica de um filtro FilterSet Passa os filtros existentes para a aplica o NormalFilter Descreve o filtro de normais avan ado Tabela C 5 Descri o das classes do pacote core surface filters Classe Descri o AuthorInfo Cont m informa o sobre autores de obras CreateDB Cria uma base de dados DBConnection Estabelece uma liga o a uma base de dados Tabela C 6 Descri o das classes do pacote database
52. e aos sensores de toque explicados mais adiante E poss vel tamb m efectuar rota o em radianos a estes objectos sendo apenas necess rio o seguinte c digo Rota o de 90 PI 2 da parede no eixo dos yy parede rotation y Math PI 2 Sendo tamb m poss vel fazer a rota o em torno dos eixos dos xx e zz mudando a coordenada correspondente no c digo A t tulo de complemento apresento exemplos de como criar outros objectos como uma esfera ou um plano Tamb m poss vel adicionar por exemplo esferas ou planos na cena existindo tal como no caso do cubo que us mos para a constru o do modelo da sala deste prot tipo objectos j definidos para a constru o r pida destas geometrias 20 3 6 2 Navega o na cena A navega o na cena importante para oferecer ao utilizador uma sensa o de navegar livremente na cena o que enriquece bastante uma visita virtual N o de todo conveniente que o utilizador se sinta limitado nesse aspecto pois afecta a sensa o de imersividade e retira a possibilidade do utilizador observar rigorosamente as obras expostas Para implementar a navega o na cena opt mos por faz lo recorrendo ao rato e ao teclado bot es direccionais Os bot es direccionais efectuam translac es na c mara enquanto que com o rato o utilizador pode rod da em qualquer sentido desta forma dada ao utilizador uma satisfat ria liberdade de navega
53. e gerir exposi es virtuais de museus Woj04 Neste conjunto incluem se ferramentas para o apoio produ o de modelos digitais de obras de arte gest o de um reposit rio onde podem ser guardados v rios tipos de representa es para estas obras e sua visualiza o num espa o tridimensional A cria o de exposi es virtuais pode ser feita atrav s de um conjunto de templates seleccionando os par metros adequados e os modelos VRML X3D guardados no reposit rio Estes templates que definem tanto o aspecto visual como o comportamento da apresenta o s o constru dos em X VRML uma linguagem de alto n vel baseada em XML e que estende o VRML Virtual Reality Modeling Language 2 3 The Development of an E Museum for Contemporary Arts Outro exemplo de cria o de um museu virtual descrito em Patias08 O trabalho desenvolvido teve por objectivo a divulga o atrav s da Web do Museu de Arte Contempor nea da Maced nia em Tessal nica na Gr cia O espa o f sico do museu e as obras que s o digitalizadas para uso na aplica o s o convertidos num formato Web3D VRML X3D para poderem ser visualizados na Web Uma das funcionalidades disponibilizadas aos utilizadores a possibilidade de constru o interactiva de uma galeria de arte Os objectos de arte podem ser seleccionados atrav s de uma base de dados de obras de arte baseadas em palavras chave como o nome do autor ou da obra entre outros Os
54. ebGL Esta tecnologia foi explorada de modo a verificar a viabilidade da elabora o de uma aplica o de ra z baseada nas funcionalidades j desenvolvidas na aplica o Virtual Exhibition Builder Para isso foi desenvolvido um prot tipo que serviu de treino no uso da tecnologia WebGL e no qual foram definidas v rias tarefas ou checkpoints baseadas nas funcionalidades j existentes na aplica o Virtual Exhibition Builder Verificou se que a tecnologia WebGL permite implementar aspectos que n o foram poss veis de conceber particularmente a projec o de sombras atrav s de fontes de luz que foi um dos principais motivos que levaram explora o desta tecnologia Contudo os resultados n o demonstraram o efeito esperado isto existiam inconsist ncias nas projec es de sombras Face aos resultados obtidos entre a extens o da aplica o Virtual Exhibition Builder e a concep o de uma ferramenta equivalente mas com mais funcionalidades recorrendo tecnologia WebGL escolhemos a primeira op o estender a aplica o Virtual Exhibition Builder concretizando as funcionalidades sugeridas pela equipa do Museu da Cidade da C mara Municipal de Lisboa 1 3 Estrutura do documento Este documento est organizado da seguinte forma e Cap tulo 1 Introdu o Este cap tulo descreve a motiva o objectivos e a estrutura do documento e Cap tulo 2 Trabalho Relacionado Este cap tulo descreve trabalhos realiza
55. es de procedermos demonstra o das interfaces desenvolvidas mostramos de seguida a estrutura da base de dados usada na aplica o ArtType type id type name Artwork2D art id title author year type height width image path description observations Artwork3D art id author year model path title bbox upper bbox lower image path height width length description observations Authors author id author name author nationality Os campos assinalados a verde s o os atributos adicionados estrutura da base de dados no nosso projecto relativamente aplica o anterior Em rela o ao esquema relacional de base de dados anteriormente definido as altera es introduzidas correspondem adi o dos campos description e observations s tabelas Artwork2D e Artwork3D Estes campos s o do tipo texto e ir o conter informa o complementar sobre as obras 2D e 3D O campo description ir conter informa o adicional sobre uma obra ou seja um campo criado para proporcionar aos utilizadores a possibilidade de observar e recolher informa es sobre a obra que est o a ver numa visita virtual a uma exposi o criada nesta aplica o O campo observations destinado a quem constr i a exposi o isto n o ir conter infroma o do interesse do utilizador que visita a exposi o mas sim de quem a ir conceber A informa o contida neste campo poder ser relativa natureza das
56. esenta um objecto 3D Cont m informa es da base de dados sobre um objecto 3D Representa o de baixo n vel de detalhe de obra 3D Representa o de alto n vel de detalhe de obra 3D Tratamento das queries base de dados necess rias para a pesquisa de obras para colca o Representa o do painel direito do m dulo 3D Representa o do painel esquerdo do m dulo 3D Evento lan ado aquando da selec o de uma obra 3D Tabela C 9 Descri o das classes do pacote modules art3d 66 Classe Descri o Division Representa o de uma divis o DivisionModule Carregamento e manuten o de todo o m dulo Division DivisionSelected Evento lan ado aquando de uma selec o de uma divis o ObjectPanel Representa o do painel direito do m dulo Division PlacementPanel Representa o do painel esquerdo do m dulo Division Tabela C 10 Descri o das classes do pacote modules division Classe Descri o SceneViewpoint Representa o de um viewpoint ViewpointGUI GUI do m dulo Viewpoint ViewpointModule Carregamento e manuten o de todo o m dulo Viewpoint Tabela C 11 Descri o das classes do pacote modules viewpoints Classes Descri o Art Representa o da informa o das obras colocadas nas superf cies CalcDistances C lculo e desenho das dist ncias na cena CalcPositions C lculo das posi es dos objectos colocados nas superf cies FileManipulator Opera es assoc
57. extField E getTransform Transform O eventOccurred SelectArtEvent void m getSelectedObsField JTextArea E getLbiDescription JLabel El getLblObservations JLabel E getScrollPane JScrollPane m getScrollPane2 JScrollPane lt lt Java Classes Artwork3Dinfo modules art d a id int a author Authorinfo a model File a name String o year int a upper Point3f a lower Point3f a height float o width float a length float a thumbnail File a description String a observations String al Artwork3Dinfo Fetcher a getAuthor Authorinfo A setAuthor Authorinfo void A getName String A setName String void A getDescription String A getObservations String A setDescription String void A setObservations String void A getYear int A setYear int void A getModel File A setModel File void getiD int A setiD int void A setBounds Point3f Point3f void A setBounds String String void E parsePoint String Point3f A getUpperBound Point3f A getLowerBound Point3f A setThumbnail Filel void A setDimensions float float float void A getHeight float a getWidth float a getLengih float a getThumbnail Filel a hasHighDetail boolean a hasLowDetail boolean info 0 1 lt lt Java Classes Artwork3D modules art3d A Artwork3D Artwork3Dinfo A getArtiD int A setCorrectDimensions void A setinfo Artwork3Dinfo void
58. fo gt lt ColorDistanceMarks gt 1 1 0 lt ColorDistanceMarks gt lt Resources path gt resources lt Resources path gt lt Databases path gt databases lt Databases path gt lt info gt lt Tag ColorDistanceMarks Represent the color of the distances marks gt lt Tag Resources path Represent the default path of the resources added to Databases gt lt Tag Databases path Represent the default path of the created databases gt lt Note that the default paths are included in the Aplication root place gt lt Some color representation examples default white gt lt Red 1 0 0 gt lt Yellow 1 1 0 gt lt Blue 0 0 1 gt lt Green 0 1 0 gt 55 lt White 1 1 1 gt lt Black 0 0 0 gt lt config gt Segundo este ficheiro de configura o a cor para a representa o das dist ncias na cena amarela a directoria onde ficam os ficheiros das bases de dados criadas na ferramenta que desenvolvemos a databases na pasta ra z da aplica o finalmente a directoria onde ficam armazenados os recursos adicionados na base de dados a Resources tamb m na pasta ra z do projecto A informa o colocada nas tags ColorDistanceMarks Resources path e Databases path s o carregadas aquando da execu o da aplica o Se o ficheiro for acidentalmente eliminado um novo ser criado na pr xima execu o da aplica o com valores p
59. getGUI ModuleGU divModule lt lt Java Class gt gt Division modules division a name String a h float a w float a float a transparency float a color Color a surfaces SurfaceGroup o dirty boolean a surfaceGroup Group a points float SoF TRIANGLE_INDEXES intl Division String float float float Color float getName String getH float getW float getNode ObjectNode E getTriangles Point3f List lt Triangle gt A showSurfaces void A initSurfaces void A hideSurfaces void O enterScene X3DGroupingNode void O exitScene void A getSurfaces SurfaceGroup O placeOverSurface Surface Point3f void 0 reset void rotate float void O translate int float void getExportNode Document File ArrayList Node gt lt lt Java Class gt gt 3 PlacementPanel modules division SF serialVersionUID long a dimensionLabel JLabel a heightLabel JLabel o widthLabel JLabel o lengthLabel JLabel a lengthField JSpinner a widthField JSpinner o heigthField JSpinner a materialLabel JLabel o colorLabel JLabel colorPanel JPanel o spacer JPanel o transparencylabel JLabel a slider JSlider a sliderlbl JLabel PlacementPanel Divisionkodule E getLengthField JSpinner E getWidthField JSpinner E getHeigthField JSpinner E getColorPanel JPanel updateSettings void B initialize void E getSpacer JPanel E getSl
60. ho fig 3 1 Esta tarefa mostra que poss vel fazer algo id ntico aos sensores de toque da aplica o Virtual Exhibition Builder Mostramos um exemplo do efeito de um clique numa das superf cies a figura 3 1 Figura 3 1 Efeito do clique numa parede Mostramos a seguir a fun o associada a esta tarefa function onDocumentMouseDown event event preventDefault var vector new THREE Vector3 event clientX window innerWidth 2 1 event clientY window innerHeight 2 1 0 5 projector unprojectVector vector camera var ray new THREE Ray camera position vector subSelf camera position normalize var intersects ray intersectObjects paredes if intersects length gt 0 Seleccionado gt Nao seleccionado if intersects O object materials O color getHex 0xa00000 intersects O object materials O color setHex corAnterior 22 N o Seleccionado gt Seleccionado else corAnterior intersects O object materials O color getHex intersects O object materials O color setHex 0xa00000 Explicando um pouco o que a fung o faz na vari vel paredes do tipo array encontram se todos os objectos considerados parede Quando detectado o evento clique num destes objectos o objecto muda a sua cor para vermelho cor que representa o estado seleccionado se este objecto for da cor ver
61. iadas a cria o e manipula o de ficheiros Utils Fun es teis de classes de outros pacotes Wall Representa o da informa o das paredes seleccionadas Tabela C 12 Descri o das classes do pacote util Apresentadas as classes de cada pacote mostramos de seguida os diagramas de classe de cada um deles pela mesma ordem com que foram apresentadas as suas classes 67 lt lt Java Class gt gt 3 Converter core oSTS LEVEL int o FS LEVEL int GTS LEVEL int o MAX LEVEL int o HAS_TRANSFORM int Converter EP convert Stringl File File void getNormalizedFile File X3DScene File getNormalizedFile File File EtriangleSetNormalize File File int void getCoordFile File File EF coordNormalize File File int void shortenDEF File File void convertToX3D File File void EF geometryLevel X3DScene int EP geometryLevel X3DNodel int Ef shapeLevel Shape int EPhasTransform X3DNodel boolean ERROR MSG int Sof WARNING_MSG int Sof OK_MSG int a type int o message String StatusEvent Object int String getType int O getMessage String lt lt Java Class gt gt 9 Gallery core OSRESOURCE_DIR String scene X3DScene a browser Xj3DBrowser a x3dComp X3DComponent o nullBrowser Xj3DBrowser o dbConnection DBConnection o ColorilarkDistances float o DATABASES_DIR String a modules OperationModule a surfaceModule SurfaceModule a activeModule OperationMo
62. ider JSlider C 9 Diagrama de classes do pacote modules division 75 selected 0 1 viewpoints lt lt Java Class gt gt 3 ViewpointModule modules viewpoints a sensor ProximitySensor a gui ModuleGUI a j int lt lt Jawa Class gt gt o Walls ArrayList lt integer gt 3 ViewpointGUI modules viewpoints o left JPanel o right JPanel o placeLabel JLabel o decrLabel JLabel o descrField JTextField a createButton JButton a listLabel JLabel a modifyLabel JLabel o descrLabel JLabel a changeDescr JTextField a changePosition JButton o delete JButton a spacer JPanel a gotoButton JButton o selectedLabell JLabel a listScroll JScrollPane o viewpointList JList a viewpoints Stringi amp ViewpointModule O reset void activate void terminate void getStatus Serializable restoreStatus Serializable void O saveX3D Document File void a defineViewpoint String void A getViewpoints Stringl A setSelected int void amp deleteSelected void A changeSelectedLocation void A changeSelectedDescription String void A goToSelected void getGUI ModuleGUI lt lt Java Classes a View pointGUI ViewpointModule SceneViewpoint A getLeft JPanel modules viewpoints Aa getRight JPanel a position float El getDescrField JTextField o orientation float E getCreateButton JButton a descr String El deselect void o node Viewpoint a updateL
63. ientLight Oxffffff 2 Este tipo de fonte de luz n o necessita de posicionamento dado que uma luz ambiente equivalente por exemplo luz do dia que entra pelas janelas de nossas casas Existe alguma incoer ncia no comportamento das fontes de luz em rela o aos objectos da cena como poder observar se na figura 3 2 Figura 3 2 Inconsist ncias na ilumina o da cena Na figura os objectos assinalados a vermelho deveriam ter o mesmo aspecto que os objectos assinalados a verde dada a posi o da fonte de luz representada pela esfera amarela no topo da imagem Apenas a face dos paralelep pedos que representam as paredes virada para a fonte de luz est iluminada Note que a fonte de luz est de frente para as obras estando mais alta que o modelo da sala O screenshot da figura n o tem a projec o de sombras activada Veremos a projec o de sombras na sub sec o seguinte 24 3 6 5 Projec o de sombras A projec o de sombras uma das tarefas testadas mais importantes deste prot tipo dado que a projec o de sombras foi um dos maiores motivos para a experimenta o da tecnologia WebGL Parte importante da decis o acerca do uso desta tecnologia estar relacionada com esta componente Como foi mencionado na descri o da tarefa anterior o que permite a projec o de sombras s o as fontes de luz do tipo SpotLight IntWebGL Para a representa o das projec es de
64. igo Eclipse As bases de dados foram concretizadas com SQLite uma biblioteca que implementa uma base de dados SQL embutida Esta ferramenta permite aceder a bases de dados sem executar um processo SGBD separado sqliteAbout 4 1 Componente de cria o e actualiza o de bases de dados A aplica o existente estava ligada a uma base de dados espec fica Para permitir a constru o de exposi es associadas a diferentes colec es de arte foi necess rios criar uma forma de associar diferentes bases de dados ao mesmo espa o f sico de um museu Para que a concretiza o desta tarefa fosse poss vel tivemos de alterar a forma como a conex o base de dados era feita Na aplica o anterior o nome da base de dados estava definido no c digo com o nome de sglitedb 31 Para a aplica o poder aceitar diferentes base de dados teve de se ter em considera o um mecanismo de conex o que permita associar identificadores diferentes Antes o m todo que ligava a base de dados n o tinha qualquer argumento ou seja n o recebia qualquer informa o dado que ligava sempre base de dados sqlitedb O que fizemos foi transformar o m todo de forma a aceitar um nome de uma base de dados e ligar se a ela permitindo desta forma que um mesmo espa o f sico possa ter associadas v rios reposit rios Aplica o de cria o e actualiza o de bases de dados Criou se uma aplica o interactiva para a cria o e
65. inser o de obras 3D existem duas variantes devido aos tipos de representa o dessas obras detalhado e n o detalhado H a hip tese de uma obra ter uma das duas representa es ou mesmo ambas Os modelos detalhados s o elaborados em X3D j os n o detalhados s o modelos contru dos posteriormente em fun o das dimens es e imagens fornecidas como explicaremos mais detalhadamente na sec o 4 5 Esta separa o entre as obras 2D e 3D sucede tamb m com as op es de consulta actualiza o das obras pelas mesmas raz es da separa o para a inser o ou seja os campos s o diferentes Destacamos ainda o facto da informa o para consulta actualiza o estar disposta em forma de tabela sendo que as colunas desta representam os campos das tabelas Artwork 2D e 3D e as linhas representam as ocorr ncias da mesma As op es Insert servem exclusivamente para inserir dados j os campos Consult Edit podem ser utilizados para consulta actualiza o e elimina o de ocorr ncias A op o Open Database permite abrir uma base de dados previamente constru da Uma vez escolhido o ficheiro atrav s de um File Chooser tal como na op o descrita antes desta aberta uma janela com as op es de criar consultar e actualizar dados relativos a obras 2D e 3D Como j foi referido a actualiza o de bases de dados de obras de arte tamb m pode ser feita atrav s de uma op o de menu da aplica o Virtual Exhibiti
66. introduzir manualmente o nome do novo autor tipo de obra nessa mesma caixa de texto Mostramos agora a interface de inser o de obras 3D na figura 4 6 j Insert 3D Data SH Low Definition Model Top Browse Title Bottom Browse Year Front Browse Ll Height Back Browse Width TE ight Browse Length Rig Lu N Left Browse Description er ea High Definition Model Observations 3D Model Figura 4 6 Janela de inser o de dados de obras 3D O que difere desta janela para a outra s o os campos de cada tabela que s o diferentes da tabela de obras 2D importante referir que existem 2 tipos de obras 3D baseadas em modelos X3D previamente feitos high detail e baseados em imagens low detail Existem casos em que uma obra pode ter ambos os tipos de representa o 2 Sendo assim essencial que o utilizador forne a informa o para a obra ter pelo menos um tipo de representa o ou seja no caso de n o serem inseridas quaisquer imagens s faces do cubo tem de ser inserido um modelo e caso n o seja introduzido nenhum modelo pelo menos uma imagem do objecto dever ser fornecida No caso de ser fornecida apenas uma imagem essa imagem ser colocada em todas as faces da 38 bounding box do objecto caso contr rio as imagens fornecidas ser o colocadas nas faces escolhidas pelo utilizador
67. iro de estado base de dados e dist ncias Para concluir a classe Arts descrita nesta sec o representa qualquer objecto que possa ser colocado na cena nomeadamente as obras 2D obras 3D e as Divis es Os 4 pontos que esta classe tem como argumento no caso das obras 2D correspondem aos 4 cantos do quadro tape aria j no caso das obras 3D e Divis es os 4 pontos s o os que t m contacto com a super cie onde est o colocados os outros 4 n o entram nos c lculos Com esta informa o estamos a dizer que tamb m poss vel calcular as posi es das divis es colocadas no espaco f sico da exposi o 4 4 Vitrines Outra das funcionalidades introduzidas nesta nossa aplica o foi a possibilidade e colocar vitrines sobre as obras Para a realiza o deste upgrade socorremo nos de um m dulo j existente o m dulo Division que tem como objectivo definir divis es tempor rias no espa o f sico da exposi o por exemplo plintos Ali s esta funcionalidade encontra se dispon vel neste m dulo dado que uma vitrine poder ser considerada uma divis o extra Para que esta funcionalidade pudesse ser usada definimos para al m das dimens es do bloco e a sua c r a transpar ncia O utilizador poder alterar a transpar ncia de um bloco socorrendo se de um Jslider que varia de O at 1 O O zero representa aus ncia de transpar ncia ou seja opacidade o valor 1 representa total transpar ncia
68. ist void a SceneViewpoint floatf float String m getChangeDescr JTextField a SceneViewpoint View point E getChangePosition JButton A enterScene void m getDelete JButton exitScene void El getSpacer JPanel getDescription String E getGotoButton JButton a getPosition float a getListScrol JScrolPane a getOrientation float El getView pointList JList A setDescription String void A setLocation float float void amp goTo void 4 toX3D Document Node C 10 Diagrama de classes do pacote modules viewpoints 76 Apresentadas que est o as classes e os diagramas de classe de cada pacote dispensamos o diagrama de classes do pacote util dado que n o relevante e n o ha rela o alguma entre as suas classes vamos agora proceder descri o das rela es entre eles O pacote core est relacionado com os pacotes core module e core surface sendo o 1 core module respons vel pela fluidez da interac o do utilizador com os m dulos e a sua transi o e o 2 o respons vel pela detec o de superf cies atrav s da uniformiza o da geometria da cena descrita na sec o 2 6 1 e a gest o do m dulo Surface Ora sabendo que o pacote core module cont m as representa es abstratas dos objectos que se podem colocar na cena e uma representa o abstrata de coloca o de objecto na cena isso relaciona o com os pacotes modules art2d
69. isto do ltimo estado de cada m dulo Este registo efectuado num ficheiro denominado ficheiro de estado que cont m a ltima configura o de cada m dulo Por fim o utilizador pode exportar a exposi o para um ficheiro X3D Este ficheiro criado e constru do atrav s de um processo em que cada m dulo escreve as suas altera es num ficheiro de output O ficheiro que cont m o grafo da cena original alterado utilizando a interface do DOM Document Object Model oferecida pela API do Java para processamento XML Sum rio Neste cap tulo apresent mos trabalhos de outros autores o mbito de exposi es virtuais Descreveu se com maior detalhe a aplica o Virtual Exhibition Builder Gomes11 que serviu de base ao trabalho realizado neste projecto 13 14 Cap tulo 3 Trabalho Desenvolvido WebGL Em virtude de haver algumas limita es na obten o de imagens realistas em cen rios baseado em X3D testou se a utiliza o de WebGL para averiguar se seria poss vel obter melhores resultados Inicialmente para que pud ssemos testar o que era poss vel fazer com a tecnologia WebGL come mos por pesquisar a sua origem a sua rela o com o OpenGL a sua compatibilidade com os browsers da Web e as bibliotecas usadas 3 1 O WebGL O WebGL uma biblioteca que estende a capacidade da linguagem JavaScript de gerar de ambientes gr ficos interactivos 3D na web O c digo WebGL acelerado por hardware isto
70. le ArrayList lt Node gt copylmage File File lt Java Class gt gt 3 Art2DModule modules art2d o fetcher Fetcher a gui ModuleGUI o f File cSactual artwork 2d String cSactual height 2d float oSactual width 2d float F Art2DModule createObject Artwork2D a selectArtwork Artwork2Dinfo void objectDeselected Artwork2D void objectSelected Artwork2D void A getArtworks Authorin fo String Artwork2Dinfof A getAllAuthors String Authorinfo getArtTypes String reset void getStatus Serializable restoreStatus Serializable void getGUI ModuleGUI 0 1 lt lt Java Classes 8 ChooseLlistener modules art2d E ChooseListener O actionPerformed ActionEvent void E chooseType void E chocseAuthor void E chooseArtwork void 13 art2DMode lt lt Java Class gt gt 3 ObjectPanel modules art2d SF serialVersionUlD long o transformLabel JLabel o selectedLabel JLabel o selectedTitle JLabel o selectedAuthor JLabel o selectedTitleField JTextField a selectedAuthorField JTextField o selectedDescriptionField JText rea a transform Transform o selectedObsField JText rea o IbiDescription JLabel o lblObservations JLabel a scroliPane JScrollPane a scrollPane2 JScrollPane amp ObjectPanel Art2DModule B in tialize void E getSelectedDescriptionField JTextArea m getSelectedTitleField JTextField E getSelectedAuthorField JT
71. les de o fazer aceder s propriedades do atalho do ficheiro execut vel do Google Chrome e na tab shortcut ter o caminho do exectut vel frente do atributo target No fim desse caminho adicione o seguinte allow file access from files Por exemplo o utilizador ter o caminho c chrome exe apenas ter de adicionar allow file access from files ficando c chrome exe allow file access from files Assim o problema fica resolvido e ser poss vel visualizar os objectos com as suas texturas Ap s isto feito basta copiar a pasta com os recursos do prot tipo e est habilitado a visualiz lo A pasta desta aplica o cont m o ficheiro html com a codifica o do prot tipo uma directoria que cont m as bibliotecas usadas e uma directoria que cont m as imagens usadas como texturas 61 62 Ap ndice C Diagramas de Classe Come amos por referir o diagrama de classes resumido correspondente figura 2 1 Usamos este diagrama de classes resumido dado que n o foram criados m dulos apenas se actualizaram os j existentes O Diagrama de classes geral seria muito grande e as suas rela es n o ficariam claras por isso iremos descrever o diagrama de classes por pacote procedendo sua rela o posteriormente De seguida apresentamos uma breve descri o de cada pacote Pacote Descri o Core Convers o do modelo x3d e inicializa o dos m du
72. lo a um objecto da seguinte forma var gui new DAT GUI gui add quadro position x min 100 max 100 step 1 gui add quadro position y 100 100 1 gui add quadro position Z 100 800 1 Este de c digo cria um menu na cena que permite a mudan a de posi o de um quadro em cada eixo de forma interactiva De seguida mostramos um exemplo de uso nas figuras 3 5 e 3 6 26 Figura 3 4 Cena original Figura 3 5 Cena alterada Como vis vel nas figuras 3 4 e 3 5 os quadros t m as posi es trocadas na parede para isso apenas foram alteradas as suas posi es em x 1 barra azul O quadro inicialmente esquerda figura 3 4 cuja interface a da esquerda em ambas as figuras viu a sua posi o no eixo dos xx aumentada isto foi deslocada para a direita tendo se feito o contr rio para o outro quadro sendo o resultado dessas altera es vis veis na figura 3 5 As posi es de ambos os quadros em y e z permanecem alteradas N o sendo muito vis vel nas figuras esclarecemos que na interface cada barra corresponde a um eixo principal x y z de cima para baixo 27 3 6 7 Texturas A funcionalidade de introduzir texturas importante para este trabalho Estas permitem aumentar o grau de realismo dos modelos tridimensionais tal como atribuir uma textura s paredes do modelo tridimensional ou a introdu o de quadros na sala A solu o encontrada foi a cri
73. locada Para calcular as dist ncias das obras em cada parede em primeiro lugar necess rio conhecer a posi o da mesma Para isso come amos por obter as coordenadas dos quatro cantos da parede Na realidade apenas precisamos da posi o de dois dado que consideramos que apenas s o necess rias duas refer ncias para termos informa o suficiente para uma coloca o correcta da obra numa exposi o real Come amos por explicar o processo relativo s paredes em si Existe um sistema de coordenadas XYZ associado a cada cena ou seja a localiza o dos objectos descrita sobre a localiza o nestes eixos Opt mos por escolher o ch o e a extremidade direita de cada parede como refer ncias para a marca o das dist ncias isto significa que iremos medir a dist ncia de cada obra relativamente ao ch o e extremidade direita da parede em que est colocada Para determinar a posi o em que est o ch o analis mos as coordenadas dos 4 cantos da parede e obtivemos o valor de y do ponto mais baixo Para a determina o da extremidade direita de cada parede necess rio ter em conta a sua posi o relativamente cena isto necess rio conhecer a orienta o do seu vector normal Isto porque para determinar a posi o da extremidade direita da parede necess rio saber em que coordenada a obter isto o eixo segundo o qual podemos tirar o seu valor Consideramos o exemplo da figura 4 11 43 E
74. los Core Module Opera es e defini o de carater sticas comuns dos diversos m dulos Core Surface Detec o e Selec o das superf cies do modelo Core Surface Filters Defini o de filtros de selec o de superf cies Database Conec o base de dados GUI Graphic User Interface da aplica o Modules art2d Representa o do m dulo 2D Modules art3d Representa o do m dulo 3D Modules division Representa o do m dulo da divis es Modules viewpoints Representa o do m dulo dos viewpoints Util Opera es teis aplica o Tabela C 1 Descri o geral dos pacotes da aplica o Apresentamos de seguida a descri o das classes por pacote 63 Classe Descri o Converter Converte a cena do ficheiro original para a cena que usada na aplica o normaliza o Gallery Inicializa o da aplica o com os dados do modelo e base de dados ModuleLoader Inicializa o dos m dulos ProjectConfiguration Regista as caracter sticas de uma nova exposi o ProjectManager Regista e carrega o estado de cada m dulo aquando de um save ou open respectivamente Tabela C 2 Descri o das classes do pacote core Classe Descri o AbstractSceneObject Representa o abstrata dos objectos colocados na cena ObjectBoundingBox Obten o das bounding boxes dos objectos colocados na cena ObjectPlacingMode Representa o abstrata das opera es sobre os objectos OperationModul
75. ma especialmente grave no caso de existirem bases de dados muito grandes Apresentamos estas op es presentes no Menu File como mostramos na figura 4 10 S Teste j Teste C Users Rui Desktop Exhibition Database Help Exhibition Database Help New Exhibition New Exhibition Save Save Save as Save as Save exhib only Save exhib only Open Open Exit Exit Figura 4 10 Menultem File A imagem da esquerda corresponde a uma exposi o que nunca foi salva devido a isso a op o Save exhib only est desactivada A imagem da direita corresponde a uma exposi o anteriormente guardada a a op o Save exhib only j est dispon vel Devido implementa o das classes Art e Wall que por sua vez s o essenciais para uma correcta visualiza o dos valores das dist ncias tivemos necessidade de guardar todas as inst ncias destas classes para futura edi o juntando estas s informa es dos 42 estados de cada m dulo para que as dist ncias possam ser mostradas aquando de uma eventual re edi o de uma exposi o 4 3 Visualiza o de valores de dist ncias 2 Descrevemos nesta sec o a funcionalidade que um dos principais upgrades da aplica o e que foi aconselhada pela equipa de t cnicos do Museu da Cidade da C mara Municipal de Lisboa que consiste em visualizar para cada obra de arte a dist ncia que a separa do limite da superf cie onde foi co
76. melha isto se j foi seleccionado anteriormente a fun o devolve a cor original ao objecto passando este ao estado n o seleccionado O c digo hexadecimal 0xa00000 equivalente cor vermelha 3 6 4 Fontes de luz Existem alguns tipos de fontes de luz disponibilizadas nesta biblioteca como a DirectionalLight AmbientLight e SpotLight Para a ilumina o da cena usada uma AmbientLight de cor branca e fontes de luz do tipo SpotLight A decis o pelo tipo de fonte SpotLight tem a ver com a implementa o de outra tarefa a projec o de sombras Apenas com este tipo de fonte de luz poss vel projectar sombras IntWebGL Mostramos a seguir a fun o para a cria o de uma fonte de luz function createLight color x y Z light new THREE SpotLight color light position set x y Z scene add light sphere new THREE Mesh new THREE SphereGeometry 5 5 5 new THREE MeshLambertMaterial color color sphere position light position scene add sphere 23 Esta fun o cria uma fonte de luz do tipo SpotLight com a cor e posi o desejadas Para uma f cil percep o da posi o da luz na cena represent mos uma pequena esfera na posi o da luz com a mesma cor desta Fora deste m todo na main function imt foi criada uma AmbientLight de cor branca da seguinte maneira var sun new THREE Amb
77. modelo tridimensional elaborado Posto isto foi necess rio obviamente definir o posicionamento das paredes Para isso basta definir da seguinte maneira cube position new Vector3 px py pz Sendo px py e pz as posi es e x y z respectivamente na cena Tamb m poss vel atribuir cor aos objectos bastando para isso criar um material com a cor desejada Para facilitar e criar alguma modularidade na codifica o opt mos por desenhar uma fun o que desenha as paredes dadas as suas dimens es posi o e cor como a seguir mostramos 19 Fun o para cria o de uma parede dando as dimens es posi o e cor function createCube sx sy SZ p cor var cube new THREE Mesh new THREE CubeGeometry sx sy SZ new THREE MeshLambertMaterial color cor cube position p paredes push cube P e o objecto cube cada parede num array previamente criado scene add cube return cube Dando agora um exemplo de chamada desta fung o var parede createCube 150 50 2 new THREE Vector3 125 0 150 0x000000 Na chamada fun o criado um cubo com a largura de 150 altura de 50 e profundidade de 2 com o seu ponto central situado nas coordenadas 125 0 150 com a cor em hexadecimal neste caso cor preta A necessidade de introduzir cada parede criada num array est relacionada com a implementa o equivalent
78. ntact permite ao utilizador visualizar as exposi es resultantes da execu o da nossa aplica o que s o representadas por ficheiros X3D Copia a pasta do projecto para uma directoria do disco e est habilitado a utilizar a nossa aplica o A pasta do projecto inclui entre outros os ficheiros DBManager que corresponde ao ficheiro de execu o do programa de cria o e actualiza o de reposit rios de obras de arte e VirtualGallery que corresponde ao ficheiro para executar a cria o e edi o de exposi es virtuais 59 60 Ap ndice B Manual de Utiliza o do Prot tipo WebGL Seguem as instru es que devem ser seguidas para a utiliza o do prot tipo desenvolvida em WebGL no mbito deste projecto Para a utiliza o deste prot tipo o utilizador ter de ter um web browser instalado poder optar por qualquer um menos o Internet Explorer que n o suporta a tecnologia WebGL Os web browser recomendados para a visualiza o deste prot tipo s o o Google Chrome e o Mozilla Firefox Poder consultar as informa es relativas compatibilidade com os web browsers que est o presentes no cap tulo 3 3 Relativamente ao Google Chrome dependendo da vers o poder o existir problemas no carregamento das imagens associadas s texturas presentes no prot tipo Para resolver este problema caso surja o utilizador ter de activar uma flag nas configura es do web browser Uma maneira simp
79. o de uma base de dados de obras de arte Palavras chave Exposi es Virtual X3D WebGL 11 Abstract For museums and art galleries the disclosure of their exposure through the Web is important for attracting visitors and the diffusion of artistic and cultural patrimony Ideally it is intended that the experience of visiting a virtual exhibition using virtual models is the most close as possible to a real visit on the physical space The development of tools for the creation of three dimensional virtual exhibitions allows the disclosure of those exhibitions and helps in their design There was already an application developed by the research team that proposed this project the Virtual Exhibition Builder that uses X3D tridimensional models There is now a big investment on Web applications based in three dimensional models contributing to this the recent boom of 3D applications on the Web through new technologies such as WebGL The main objective of this project was the development of a tool to support the team of a museum who usually are not experts in informatics in the initial design of an exhibition Moreover it was intended that the exhibitions could be disseminated through the web pages of the museums The first stage of this project was to study the WebGL technology We concluded that the adoption of this technology would not bring any advantages if compared with the application already developed so we deci
80. objectos s o depois colocados por arrastamento no espa o virtual N o s o indicados detalhes sobre a aplica o 2 4 Browserbased 3D Gallery Builder A ferramenta Browserbased 3D Gallery Builderm que foi elaborada por um grupo denominado Katalabs Katalabs permite a constru o de exposi es atrav s de um Web browser recorrendo tecnologia WebGL utilizando a biblioteca GLGE Esta ferramenta permite a cria o de exposi es virtuais tridimensionais oferecendo a possibilidade de coloca o de obras de arte 2D quadros de uma forma bastante simples indicando apenas o URL de uma qualquer imagem da Web Tamb m oferecida a possibilidade de coloca o de obras 3D como esculturas n o existe contudo informa o de como estas s o introduzidas N o s o fornecidas mais informa es sobre a ferramenta no entanto pode se visualizar uma demonstra o da ferramenta em galBuilder 2 5 Galeria de Arte Virtual A aplica o Galeria de Arte Virtual Semi o08 foi desenvolvida no mbito de um projecto de Engenharia Inform tica em colabora o com o Instituto A oriano de Cultura Foram considerados alguns requisitos para esta aplica o nomeadamente a facilidade de utiliza o por pessoas sem experi ncia inform tica e a possibilidade de reutiliza o para v rios espa os expositivos A op o recaiu em suportar os modelos virtuais em X3D A manipula o da cena feita com recurso ao Xj3D e a informa
81. on Builder Neste caso a actualiza o feita sobre a base de dados associada exposi o Essa op o encontra se no menu principal na op o databases como mostra a figura 4 1 34 j exemplo File Project Database Help Beete mil Ge Open Manager e Figura 4 1 Menultem base de dados Existem 2 ficheiros execut veis na nossa aplica o o primeiro relativo ferramenta de constru o de exposi es e o segundo relativo cria o e manuten o de bases de dados Ao executar a 2 abrir uma janela que permitir ao utilizador criar ou aceder a uma base de dados existente Nas duas op es surgir um File Chooser que permitir ao utilizador criar ou abrir o ficheiro em qualquer localiza o A interface corresponde figura 4 2 Faculdade de Ci ncias Universidade de Lisboa Museus Virtuais Database Management Create Database Open Database Open Figura 4 2 Interface de cria o e edi o de bases de dados Os File Choosers abrir o por omiss o na pasta databases localizada na pasta ra z da aplica o 35 Ao criar ou aceder a uma base de dados esta janela fechada e abrir outra com 4 op es Add 2D Arts Add 3D Arts Edit 2D Arts e Edit 3D Arts como representado a seguir pela figura 4 3 Mode Selection LE x Faculdade de Ci ncias Universidade de Lisboa Museus Virtuais Database Management Selected Database sqli
82. orma a oferecer esta modularidade as funcionalidades da aplica o foram separadas em v rios m dulos unidades independentes associadas a uma tarefa espec fica como seleccionar paredes ou inserir obras 2D ou 3D Figura2 1 A articula o entre os m dulos foi assegurada recorrendo a interfaces bem definidas que cont m os m todos necess rios a uma boa fluidez na aplica o tal como as transi es de m dulos por exemplo Os m dulos t m dois estados activo e inactivo S o poss veis transi es de m dulos a qualquer momento sendo o ltimo estado de cada m dulo guardado para que regressando a ele o utilizador possa continuar o trabalho feito at ent o Dado que v rias tarefas da aplica o se relacionam com inser o de objectos na cena foi criada uma implementa o abstracta referente coloca o de objectos Esta implementa todas as tarefas comuns aos v rios tipos de objectos colocados na cena como o pr prio acto de coloca o desloca es e o desenho das bounding boxes Para cada tipo espec fico de objectos um m dulo espec fico foi implementado derivado do m dulo abstracto Cada m dulo descreve as caracter sticas particulares de cada tipo de objecto Este m dulo abstracto teve por fim facilitar a implementa o e introdu o de novos tipos de objectos na cena Software utilizado A informa o das obras foi armazenada atrav s de uma base de dados integrada na aplica o uma base de dados SQLi
83. os desde a determina o das dist ncias at ao desenho dessa informa o na cena Os dois m todos chave desta classe s o o GetFloorDistances e o GetRightDistances Este facto deixa claro que o c lculo e desenho das dist ncias est o separados em duas partes o desenho das dist ncias das obras relativamente ao ch o e o desenho das dist ncias relativamente extremidade direita da parede Isto deve se ao facto de no caso das dist ncias para a extremidade direita das paredes os vectores normais terem de entrar no c lculo Este factor tem de se ter em conta devido ao facto de a extremidade direita de uma parede depender da posi o da mesma na cena tal como j foi explicado atr s 45 Mas n o s este facto que contribui para a separa o da tarefa em dois A forma de desenhar a informa o na cena isto o correcto posicionamento dos tra os e n meros tamb m exige esta separa o Voltemos agora um pouco atr s para procedermos explica o do que foi feito para realizar esta tarefa o c lculo e desenho das dist ncias na cena A classe CalcDistances recebe 4 argumentos Wall Identificador da parede Normal O vector normal da parede Floor Altura a que o ch o est em metros Right Posi o em que a extremidade direita da parede est em metros O argumento wall o identificador da parede sobre a qual vamos medir as dist ncias o argumento normal o vector
84. pr prias obras por exemplo informar a quem est a conceber a exposi o que a exposi o de determinado objecto ser com uma vitrine Interface com o utilizador Passamos agora a mostrar as interfaces desenvolvidas bem como a forma como o utilizador interage com elas 33 Em primeiro lugar aquando da execu o da aplica o de cria o e actualiza o de bases de dados uma janela surgir com duas op es Create Database e Open Database A op o Create Database tem como finalidade como o pr prio nome indica criar uma base de dados O utilizador ter a liberdade de criar e guardar o ficheiro relativo base de dados onde quiser atrav s de um File Chooser tendo como pr defini o a pasta databases na pasta ra z do projecto O utilizador define um nome nesse File Chooser e a aplica o criar um ficheiro no local indicado pelo utilizador com a extens o db3 Ap s criar o ficheiro da base de dados aplicado o DDL Data Definition Language sobre esse ficheiro DDL esse que corresponde ao esquema relacional da base de dados descrito atr s Ap s este processo uma outra janela se abrir com 4 op es usando o ficheiro base de dados criado Insert 2D Data Insert 3D Data Consult Edit 2D Data e Consult Edit 3D Data As op es de adicionar obras 2D e 3D est o separadas dado que os formul rios s o diferentes tal como os campos dessas tabelas de destacar que no formul rio de
85. r definidos Sum rio H Neste cap tulo apresent mos as extens es efectuadas aplica o Virtual Exhibition Builder Os diagramas de classe da aplica o encontram se no Ap ndice C 56 Cap tulo 5 Discuss o e trabalho futuro Consideramos que neste nosso projecto conseguimos melhorar substancialmente a aplica o que estendemos pois acrescent mos duas novas funcionalidades importantes no mbito deste projecto que foi a possibilidade de associar a um mesmo espa o f sico diferentes colec es de arte atrav s da liga o a diferentes reposit rios e a cria o de uma interface amig vel para o utilizador para a cria o e actualiza o desses reposit rios Tendo em conta esta altera o alter mos a salvaguarda das exposi es isto a op o Save As Esta op o guarda n o s o ficheiro de estado da exposi o como tamb m a base de dados associada a esta na mesma directoria Para n o existir uma duplica o exagerada de reposit rios cri mos outro tipo se salvaguarda de exposi es que guarda apenas o ficheiro de estado com um nome diferente Isto permite ter v rias exposi es associadas a um mesmo reposit rio sem ter de o duplicar Outro dos aspectos mais importantes era a cria o de um mecanismo que mostrasse informa es sobre as dist ncias das obras relativamente s paredes Para evitar confus o na interpreta o da informa o mostrada na cena opt mos por mostrar as di
86. r das superficies a reproduzir m sica ambiente a representar objectos suspensos e a reproduzir apresenta es v deo nas superf cies Como trabalho futuro podem considerar se tamb m adapta es no m dulo de edi o que torne poss vel a movimenta o de qualquer obra sem a necessidade de navegar nos bot es de selec o dos m dulos Consideramos tamb m importante a realiza o de testes de usabilidade com utilizadores do p blico alvo isto os t cnicos de museus para averiguar se as funcionalidades da aplica o satisfazem as suas necessidades A complexidade do tratamento das cenas tridimensionais em X3D foi um obst culo na implementa o de algumas tarefas tais como a visualiza o de informa es das dist ncias das obras relativamente s superf cies e a representa o simplificada de obras tridimensionais com v rias texturas 58 Ap ndice A Guia de Utiliza o da Aplica o Java X3D Seguem as instru es que devem ser seguidas para a utiliza o da aplica o estendida no mbito deste projecto isto a aplica o Java X3D Para utilizar esta aplica o ser necess rio o seu terminal ter um sistema operativo Windows e que tenha as seguintes aplica es instaladas e Java Virtual Machine vers o 7 ou superior jvm7 e BS Contact bsc A instala o da Java Virtual Machine JVM permite ao utilizador correr aplica es Java no seu terminal A instala o do BS Co
87. s de maior ou menor data que s o muito importantes na minha vida e que mesmo sem saber contribuiram para que este caminho n o fosse t o duro Agrade o especialmente a tr s grandes amigos Andr Dias T nia Albuquerque e Tiago Rocha Neste longo percurso fiz tamb m boas amizades e sem d vida que n o foram menos importantes Por isso n o podia esquecer de agradecer a Jo o Lobo Henrique Morais Louis Lopes Geraldo Nascimento Gon alo Cruchino Frederico Miranda e Nuno Fonseca a sua ajuda e o seu companheirismo Aos colegas de investiga o do LabMAg pelos quais fui muito bem recebido e que contribu ram para um ptimo ambiente de trabalho especialmente ao Nuno Henriques Fernando Silva Jorge Gomes Edgar Montez Jo o Silva e Davide Nunes Finalmente falta me agradecer minha orientadora Beatriz Carmo e co orientadora Ana Paula Cl udio que deram um precioso contributo ao longo do projecto e na redac o deste relat rio A amizade e ao companheirismo Resumo Para os museus e galerias de arte a divulga o das suas exposi es atrav s da Web importante quer para atrair visitantes quer para a difus o de patrim nio art stico e cultural Idealmente pretende se que a experi ncia de visitar virtualmente uma exposi o atrav s de modelos virtuais seja a mais aproximada poss vel de uma visita ao espa o f sico real O desenvolvimento de ferramentas para a cria o de exposi es virtuais atr
88. s aplica es s quais esta d seguimento Semi o08 e Gomes11 com o objectivo de perceber se a tecnologia WebGL consegue fazer tudo o que o X3D permite Todas as tarefas aqui descritas s o baseadas na utiliza o da biblioteca THREE js excep o da tarefa interfaces de interac o com objectos na qual ser usada a biblioteca DAT GUI js 17 Antes de come ar por desenhar alguma coisa no viewport tem de se criar uma cena e uma c mara Estando a cena criada todos os objectos criados t m de ser adicionados a essa cena Outro aspecto importante conferir lhe ilumina o Finalmente necess rio criar um renderer de forma a desenhar toda a cena no ecr cria o da cena var scene new THREE Scene cria o da camara var camera new THREE PerspectiveCamera FOV ViewAspectRatio Znear Zfar scene add camera Sendo fov Especifica o ngulo de vis o em graus no eixo y ViewAspectRatio Especifica a rela o de aspecto que determina o campo de vis o na direc o x A rela o de aspecto a rela o entre x largura para y altura Znear Especifica a dist ncia entre o espectador e o plano de recorte mais pr ximo em Z Zfar Especifica a dist ncia entre o espectador e o plano de recorte mais distante em z cria o de uma luz ambiente dada a cor em hexadecimal neste caso luz branca var sun new THREE AmbientLight color
89. seguir usamos a figura 2 3 Esta figura apresenta a interface da aplica o Para todos os m dulos existe um bot o na barra superior para os activar Quando s o activados abrem se dois pain is na rea de desenho um do lado direito e outro lado esquerdo 10 S Gallery C Users Jorge My Dropbox Labmag Galeria virtual Documentacao Modelo project vgp File Project Database Help AAA A I EI IN ORAGO eg Surface Selection hD Artwork 3D Artwork Blocks Viewpoints Move artwork SELECTED ARTWORK 4 Place art Title Horta de Ebro CHOOSE ARTWORK Author Pablo Picasso Painting Pablo Picasso r Coarse Fine Horta de Ebro Author Pablo Picasso d J L eltlel lot Delete le ie le a Figura 2 3 Interface geral da aplica o RTGomes11 Selec o de superf cies Para come ar a montar a exposi o o primeiro passo a selec o das superf cies onde as obras ser o colocadas usando o m dulo Select Surface Para fazer isso o utilizador tem duas op es escolher manualmente com um clique na parede desejada interpretado atrav s de um sensor de toque associado a cada superf cie Ou alternativamente o utilizador pode seleccionar automaticamente as superf cies recorrendo aos filtros desenvolvidos por rea e posicionamento por exemplo seleccionar apenas paredes verticais ou seleccionar superf cies maiores que x metros quadrados As superf
90. sombra necess rio informar as fontes de luz que estas originam sombras na cena Com os objectos da cena necess rio fazer algo parecido isto inform los que podem receber e projectar sombras Isto faz se ap s a cria o de cada fonte de luz SpotLight e de cada objecto da cena excepto a c mara Demonstrando scene add light light castShadow true scene add parede cube castShadow true cube receiveShadow true Finalmente necess rio adicionar ao renderer a possibilidade de representar as sombras Isso feito da seguinte forma renderer shadowMapEnabled true renderer shadowMapSoft true Por m existem algumas incoer ncias no que diz respeito ao comportamento das sombras nos objectos como poder visualizar na figura 3 3 25 Figura 3 3 Inconsist ncias nas sobras relativamente fonte de luz As sombras assinaladas a vermelho n o est o em conformidade com a geometria da sala e com a posi o da fonte de luz 3 6 6 Interface de interac o com objectos da cena Para a implementa o da Interface de interac o com objectos da cena foi usada uma outra biblioteca denominada Dat GUI Esta tarefa foi adicionada devido necessidade de ajustar posicionamentos das obras de arte isto por exemplo ajustar a posi o de um quadro numa parede Para isso basta criar um objecto do tipo DAT GUI e associ
91. st ncias das obras relativamente extremidade direita da parede e ao ch o Para facilitar a visualiza o da informa o sobre dist ncias cri mos um mecanismo que cria viewpoints automaticamente para as superf cies com obras isto para cada superf cie com obras existir no m dulo Viewpoints um viewpoint definido Melhor mos tamb m a representa o de baixo detalhe das obras tridimensionais sendo agora poss vel associar imagens individualmente as faces da bounding box que envolve o objecto tridimensional Deste modo obtemos uma representa o que aproxima o volume do objecto e que cont m a sua imagem segundo diferentes pontos de vista Adicion mos tamb m um novo par metro para as estruturas amov veis designadas no mbito da ferramenta divis es Esse par metro foi a transpar ncia que ao ser aplicada a um paralelep pedo simula uma vitrine Finalmente cri mos um ficheiro de configura es que permite ao utilizador alterar alguns par metros por omiss o da aplica o Os par metros considerados foram a directoria onde ser o armazenadas os reposit rios de dados criados pela aplica o a 57 directoria onde ser o armazenadas as imagens ou ficheiros X3D que representam as obras de arte e a cor que o utilizador deseja utilizar para a visualiza o das informa es das dist ncias das obras na cena Como trabalho futuro pode estender se esta aplica o de modo a mudar din micamente a co
92. te A op o por uma base de dados integrada evita instala o e configura o de servidores e bases de dados As inser es e edi es na base de dados podem ser feitas com qualquer ferramenta compat vel com bases de dados SQLite Neste caso a ferramenta utilizada para essas opera es foi o SQLite Studio que tem uma interface gr fica para esse fim A aplica o foi implementada sobre o Java Standard Edition 1 6 e os objectos X3D usam uma API Xj3D vers o 2 0M1 que constr i e manipula o grafo da cena Para aceder e modificar este grafo foram usados os m todos do SAI Scene Access Interface parte da especifica o do X3D A interface gr fica foi desenvolvida em Java Swing Workflow da cria o de uma exposi o virtual Descreve se o workflow Fig 2 2 para a cria o de uma exposi o usando a aplica o Virtual Exhibition Builder X3D Model Loading X3D result model export Surface Selection Save project for future edition ST Mi Object Viewpoint Placement Definition Figura 2 2 Workflow da aplicac o Para criar uma exposi o o utilizador convidado a atribuir lhe um nome e um modelo tridimensional X3D Museu Galeria de Arte que ir representar o espa o f sico da exposi o De seguida s o apresentados os m dulos da aplica o Surface Selection 2D Artwork 3D Artwork Blocks e Viewpoints podendo o utilizador come ar a montar a exposi o com as obras dispon veis na base
93. tedb db3 Add2DArts Add3DArts Constat 28 ConsuitEdit3D Figura 4 3 Janela de manuten o de bases de dados A nome da base de dados seleccionada no momento mostrada como acima a verde para que o utilizador tenha a certeza de que est a manipular a base de dados correcta AS op es Add oferecer o uma interface que o utilizador poder usar para inserir obras 2D Quadros Tape arias e obras 3D Em ambos os casos surgem formul rios para o utilizador preencher segundo os campos da tabela correspondente Apresentamos de seguida as figuras 4 4 e 4 6 que representam as op es de inser o de dados de obras 2D e 3D 36 wine OR Figura 4 4 Janela de inser o de dados das obras 2D Como se pode ver na figura 4 4 foi feita uma interface bastante simples pedindo ao utilizador os dados da obra e a imagem sua localiza o no disco que pode procurar atrav s do bot o Browse Para ajudar na inser o de obras com um autor ou tipo de obra j presentes na base de dados s o diponibilizadas essas informa es em Combo Boxes com os dados existentes referentes a esses campos como mostramos a seguir na figura 4 5 Figura 4 5 Exemplo de preenchimento pr vio de Combo boxes 31 Ao seleccionar uma das op es em cada combo box a caixa de texto em baixo ficar preenchida com o nome seleccionado Caso n o o queira fazer o utilizador ter de
94. tica na Faculdade de Ci ncias da Universidade de Lisboa num dos grupos de investiga o do Departamento de Inform tica o LabMAg Laborat rio de Modela o de Agentes O principal objectivo da elabora o deste projecto foi construir uma aplica o que auxilie os t cnicos de museus a construir uma exposi o tendo tamb m em linha de conta permitir visitas virtuais exposi o Este projecto deu seguimento aos trabalhos Galeria de Arte Virtual e Virtual Exhibition Builder desenvolvidas por Pedro Semi o e Jorge Gomes respectivamente Estes trabalhos basearam se em modelos tridimensionais elaborados em X3D Este projecto visou a cria o de uma ferramenta mais robusta com mais funcionalidades Estas foram sugeridas pela equipa do Museu da Cidade da C mara Municipal de Lisboa qual foi mostrada a ferramenta Virtual Exhibition Builder Gomes11 e de que se destacam as seguintes visualiza o da informa o das dist ncias das obras nas paredes cria o de uma interface mais amig vel para cria o e actualiza o de bases de dados cria o de vitrines como novo tipo de objectos amov veis possibilidade de associar v rias imagens a um objecto de forma a construir um modelo tridimensional com baixo n vel de detalhe Atentendo s limita es no realismo da aplica o existente em particular no que diz respeito projec o de sombras explorou se outra tecnologia para a constru o da aplica o o W
95. tionFiter So VERTICAL int addFiter Filter void a Filter SF OBLIQUE int amp accepts Surface boolean al accepts Surface boolean Sof ZERO int equals Object boolean equals Object boolean SF NON_ZERO int O hashCode int hashCode int SF ALL int o xRestriction int a yRestriction int filters 0 1 lt lt Java Class gt gt da Class gt gt o zRestriction int AreaFilter hen a amp Normaffiter int int int core ace filters 2 d Torraversmnup ae serialVersionUID long a accepts Surface boolean amp FilterSet El componentAccepted int float boolean passFilters Surface boolean a accepts Surface boolean e hashCode int e add Filter boolean O equals Object boolean C 4 Diagrama de classes do pacote core surface filters lt Java Class gt gt lt lt Java Class gt gt 8 Authorinfo 3 DBConnection database database a name String a conn Connection lt lt Java Class gt gt a nationality String o stm Statement 9 CreateDB o id int a dbpath String a dbName String amp Authorinfo a db dir String O setName String void E DBConnection String CreateDB String O setNationality String void setDbdir void O GetDbName String setiDiint void O getDbdir String amp run void O getName String getDbpath String O getNationality String update String void getiD int O query String ResultSet C
96. to do tra o teria de ser calculado de outra forma dado que o tra o ter a mesma origem Para calcular a dist ncia de uma obra para outra era usado um array com as dist ncias j ordenadas e esse array era percorrido de 2 em 2 casas ou seja para o desenho de um tra o era sempre usada a obra imediatamente sua direita isto a obra que anterior no vector Imaginemos a seguinte situa o Temos uma parede com 3 obras Segundo o m todo que descrevemos at agora temos as dist ncias das 3 obras relativamente extremidade direita da parede dist ncias estas que est o ordenadas da mais pr xima para a mais distante Ora o tra o da obra mais perto ter logicamente de ser desenhado at extremidade da parede j o tra o da 2 obra ter de ser desenhado at ao ponto mais esquerda da 1 obra e por a adiante 48 Ent o para o c lculo do comprimento do tra o da 2 obra ter de entrar a dist ncia da 1 at parede mais a largura da 1 obra Para facilitar o racioc nio do c lculo mostramos a seguinte imagem Move artwork CHOOSE ARTWORK SELECTED ARTWORK All art types Tite Gioconda All authors Y Author Leonardo Da Vinci Gioconda v TRANSFORM Author Leonardo Da Vinci ela SIE D zen Description gioconda IU pjs Jura Less El s dands Sa File Exhibition Database Help ep ae Dama rs ees Place artwork a
97. w khronos org webgl wiki Main_Page 17 11 2011 Wiki WebGL Woj04 Wojciechowski R Walczack K White M Cellary W Building Virtual and Augmented Reality Museum Exhibitions Proceedings of the 9th International Conference on 3D Web Tecnology 2004 Xampp http www apachefriends org pt br xampp html 04 01 2012 Apache Friends 82

Download Pdf Manuals

image

Related Search

Related Contents

Fisher & Paykel DD24 User's Manual  JediSmash - Julien Issartel  Récepteur Terrestre Numérique SRT 5200/SRT 5202/SRT5205  COMMODITY USER GUIDE  ANEXO 5.1.6-b. PROCEDIMIENTO PARA LA ENTREGA DEL  PARAGON960 x4 32CH  USER MANUAL English Français .50 Caliber Semi  Télécharger la liste complète des publications de - Traverses 19-21  BodyGuard LV 4.5 Installation Manual  Samsung Microwave Oven MW1050STC User Manual  

Copyright © All rights reserved.
Failed to retrieve file