Monograa Mobile 3D Graphics (JSR 184) OpenGL ES (JSR 239) Grupo 4

Tamanho: px
Começar a partir da página:

Download "Monograa Mobile 3D Graphics (JSR 184) OpenGL ES (JSR 239) Grupo 4"

Transcrição

1 Monograa Mobile 3D Graphics (JSR 184) OpenGL ES (JSR 239) Grupo 4 Roseane Midori Miya Sileno Rocco Tatiane Silvia Leite 22 de Abril Introduc~ao Esta monograa tem como objetivo apresentar duas diferentes APIs utilizadas no desenvolvimento de aplicac~oes gracas 3D, sendo elas a API JSR 184 e JSR 239. Ser~ao descritas as principais caractersticas de cada biblioteca, assim como exemplos de codigos e descric~ao dos princpios de programac~ao de aplicac~oes 3D. 2 Mobile 3D - JSR Introduc~ao A API Mobile 3D Graphics foi desenvolvida para a plataforma J2ME como um pacote opcional para ser utilizado com os pers MIDP. Esta API foi denida pala comunidade Java (JCP) como JSR-184 [2], sendo esta a primeira especicac~ao 3D para dispositivos moveis. Esta especicac~ao foi liderada pela Nokia, mas contou com um grande grupo de membros colaboradores, como Sun Microsystem, Sony Ericson, Symbian, Motorola dentre outros [3]. Existe uma incrvel variedade de areas que podem fazer uso da API 3D, o que inclui jogos, interfaces com o usuario, aplicac~ao de screen saver, visualizac~ao de mapas e mensagens animadas, dentre outras. Em todas as areas e comum a necessidade de criac~ao simples de conteudo, mas em algumas 1

2 delas sera necessario tambem grande processamento de polgonos, enquanto em outras sera necessario alta qualidade no processamento de imagens. Assim, para atender a todas essas diferentes necessidades ela suporta tanto aplicac~oes de alto nvel, quanto de baixo nvel. A exist^encia de interfaces ecientes e gracos 3D interativos e possvel gracas a possibilidade de alto e baixo nvel de programac~ao. O diferencial da API Mobile 3D e possibilitar a utilizac~ao de gracos 3D mesmo em dispositivos moveis que possuem um poder de processamento mais limitado, assim como uma menor quantidade de memoria. Estes dispositivos em geral tambem n~ao possuem suporte de hardware para gracos 3D ou operac~oes de ponto utuante. Porem, com a rapida evoluc~ao destes dispositivos com relac~ao a processamento, memoria e ate mesmo displays e cores, esta API pode ser usada mais amplamente e com uma preocupac~ao menor com a otimizac~ao do codigo desenvolvido. A API Mobile 3D funciona em cima da vers~ao 1.1 do CLDC (Connected Limited Device Conguration) [4], e tambem sobre o perl MIDP (Mobile Information Device Prole) [5] a partir da vers~ao 2.0. O CLDC e uma congurac~ao que dene os recursos da maquina virtual e as bibliotecas principais para J2ME, sendo que dentre elas esta a capacidade de ponto utuante. Ja o MIDP consiste em um perl para dispositivos portateis, denindo APIs como a de interface com o usuario, redes e conectividade, armazenamento, entre outros. Atualmente a capacidade de processamento e memoria dos dispositivos moveis lancados no mercado est~ao surpreendendo, porem o mercado e composto por uma maioria que n~ao t^em efetivamente hardware para calculo de ponto utuante, assim a API precisou balancear e encontrar um equilbrio entre a velocidade obtida atraves de operac~oes de inteiro e a facilidade de programac~ao fornecida por operac~oes de ponto utuante. Calculos que exigem um processamento mais rapido aceitam par^ametros inteiros de 8 ou 16 bits, e outros calculos podem ser realizados com a matematica de ponto utuante para facilitar a programac~ao da aplicac~ao. A Figura 1 apresenta o relacionamento da API com as outras estruturas. A partir da vers~ao 2.2 do software J2ME Wireless Toolkit ja e fornecido o suporte a API jsr-184. Mas ao desenvolver qualquer aplicativo utilizando esta API deve-se atentar para o fato de que esta API e um pacote opcional, e portanto, apesar de funcionar no simulador fornecido pelo Wireless toolkit, alguns dispositivos moveis podem n~ao suportar esta API e n~ao sera possvel executar a aplicac~ao desenvolvida. 2

3 Figura 1: A pilha de camadas da Mobile 3D Graphics API 2.2 Especicac~ao A API Mobile 3D Graphics e denida no pacote javax.microedition.m3g, possibilitando o uso facil da API para renderizac~ao de gracos 3D nos seus dois modos de operac~ao. O M3G fornece aos desenvolvedores dois modos para desenhar gracos 3D: immediate mode e retained mode. No immediate mode, os comandos gracos s~ao mandados diretamente para o pipeline graco e executados imediatamente pelo mecanismo de renderizac~ao do dispositivo. Neste modo o desenvolvedor deve escrever um codigo que diz ao mecanismo de renderizac~ao exatamente o que renderizar a cada quadro de animac~ao. Alem disso, a cena normalmente possui uma c^amera e um conjunto de luzes associados, mas que n~ao s~ao necessariamente parte dela. Usando o immediate mode e possvel renderizar objetos individualmente. No retained mode sempre e usado um grafo de cena que conecta todos os objetos geometricos do mundo 3D em uma estrutura de arvore 2, e tambem especica a c^amera, luzes e background. Este modo funciona com um nvel mais alto de informac~ao sobre cada objeto, guardando caractersticas como estrutura geometrica, posic~ao e apar^encia de quadro pra quadro. E possvel utilizar estes modos separadamente ou ao mesmo tempo, dependendo da tarefa a ser executada. O formato de arquivo especco da API Mobile 3D possibilita a criac~ao de estruturas de mesh, hierarquia de cenas, materiais, texturas, keyframes de animac~ao, luz, dentre outras, que s~ao carregados pela classe Loader e depois manipuladas dentro da aplicac~ao 3D. A renderizac~ao e feita pela classe Graphics3D. A classe World e a raiz de um grafo de cena. A classe Object3D e a base para todos os objetos que s~ao carregados de um arquivo e que podem ser renderizados. No total a API Mobile 3D e composta por 30 classes divididas em 6 grupos: classes basicas, classes para nos de grafo de cena, classes para carga de arquivos e funcionalidades de baixo nvel, classes para atributos visuais, 3

4 classes modicadoras e classes para animac~ao e tratamento de colis~ao. A seguir s~ao descritas brevemente todas as classes do pacote M3G. AnimationController - Controla a posic~ao, velocidade e peso de uma sequ^encia de animac~ao. Essa classe pode ser usada para controlar as caractersticas de qualquer elemento de uma animac~ao; por exemplo, pode controlar o brilho e a movimentac~ao da luz. AnimationTrack - Associa uma sequ^encia de keyframes com um objeto do tipo AnimationCrontroller e com uma propriedade animavel, que e uma variavel (scalar ou vetor) que o sistema de animac~ao pode atualizar diretamente. Appearance - Um conjunto de componentes que dene os atributos de renderizac~ao de um Mesh ou um Sprint3D. Background - Dene se e como o viewport sera limpado. No retained mode, o objeto Background associado com o World e utilizado. No immediate mode, o objeto Background e passado como par^ametro. Camera - Um dos elementos do grafo de cena que dene a posic~ao do campo de vis~ao na cena e a projec~ao de 3D para 2D. CompositingMode - Um componente da classe Appearance que encapsula atributos de composic~ao por pixels. Fog - Um componente da classe Appearance que encapsula atibutos para fogging. Graphics3D - Classe unica de gracos 3D que pode ser vinculado a um alvo de renderizac~ao. Toda a renderizac~ao deve ser feita atraves do metodo render() dessa classe. Group - Um no do grafo de cena que armazena um conjunto de nos como lhos. Image2D - Uma imagem bidimensional que pode ser utilizada com textura, fundo ou sprite. As imagens 2D pode ser mutaveis, que podem ser atualizadas a qualquer momento, e imutaveis, que s~ao criadas pelo construtor da classe e n~ao podem ser modicadas depois. IndexBuer - Classe abstrata que dene como conectar vertices para formar um objeto geometrico. 4

5 KeyframeSequence - Encapsula os dados de uma animac~ao como uma sequ^encia de keyframes com timestamps e valores, que representam um caracterstica da animac~ao em um determinado instante. Pode ser associado com multiplos alvos de animac~ao. Light - Um no do grafo de cena que representa diferentes tipos de fontes de luz, que s~ao utilizadas para determinar a cor de cada objeto. Loader - Responsavel por ler e carregar os nos do grafo de cena. Carregar um grafo de cena a partir de um arquivo M3G e a forma mais utilizada para se construir uma cena 3D. Material - Um componente da classe Appearance que encapsula atributos de material para os calculos de luz. Outros atirbutos para a luz s~ao denidos nas classes Light, PolygonMode e VertexBuer. Mesh - Um no do grafo de cena que representam um objeto 3D denido como uma superfcie poligonal. Essa classe representa objetos mesh convencionais, ou seja, que s~ao rgidos. Suas subclasses MorphingMesh e SkinnedMesh extendem as caractersticas do Mesh e conseguem transformar verticas independentemente. MorphingMesh - Um no do grafo de cena que representa um mesh polignal do tipo vertx-morphing. Node - Classe abstrata para todos os nos do grafo de cena. Existem 5 tipos diferentes de nos: - Camera, que dene a projec~ao de 3D para 2D assim como a posic~ao de visualizac~ao da cena; - Mesh, que dene um objeto 3D constitudo de tri^angulos com propriedades de material associadas; - Sprite3D, que dene uma imagem 2D com a posic~ao no espaco 3D; - Light, que dene a posic~ao, direc~ao, cor e outros atributos de uma fonte de luz; - Group, que serve como raiz para um grafo de cena. Object3D - Classe abstrata para todos os objetos que fazem parte do World da aplicac~ao. Isso inclui o proprio objeto World, outros nos do grafo de cena, animac~oes, texturas, etc. PolygonMode - Um componente da classe Appearance que encapsula atributos de polgonos, inlcuindo caractersticas relacionadas a culling das faces, winding de polgonos, calculos de luz, correc~ao de perspectiva e shading. 5

6 RayIntersection - Armazena a refer^encia para um Mesh or Sprite3D que sofreu intersecc~ao e informac~oes referentes ao ponto de intersecc~ao. Um objeto RayIntersection e preenchido pelo metodo pick() na classe Group. SkinnedMesh - Um no do grafo de cena que representa um polgono mesh animado. Sprite3D - Um no do grafo de cena que representa uma imagem 2D em uma posic~ao 3D. Essa e uma alternativa para a texturizac~ao geometrica, mas apresenta uma serie de restric~oes. E renderizada como um array retangular de pixels com uma profundidade constante. Texture2D - Um componente da classe Appearance que encapsula uma imagem de textura 2D e um conjunto de atributos especicando como a imagem deve ser aplicada nos sub-meshs. Transform - Uma matriz generica 4x4 de numeros de ponto-utuante que representa uma transformac~ao. Transformable - Classe abstrata para Node e Texture2D que dene metodos para manipulac~ao de nos e transformac~ao de texturas. TriangleStripArray - Dene um array de triangle strips. Em um triangle strip os primeiros 3 ndices de vertices denem o primeiro tri^angulo e cada proximo ndice dene um novo tri^angulo juntamente com os 2 ultimos ndices. VertexArray - Array de vetores inteiros que representam as posic~oes dos vertices, os vetores normais, cores ou coordenadas de textura. VertexBuer - Armazena refer^encias para objetos VertexArray que contem posic~oes, cores, vetores normais e coordenadas de textura para um conjunto de vertices. World - No especial do tipo Group que e a raiz de um grafo de cena. 2.3 Desenvolvimento A seguir s~ao explicadas as estruturas basicas de uma aplicac~ao baseada na API Mobile 3D, incluindo exemplos e princpios de programac~ao 3D. 6

7 Figura 2: Estrutura de um grafo de cena Grafo de cena O grafo de cena e uma estrutura de dados em arvore na qual cada folha dene um tipo de estrutura 3D, como por exemplo c^amera, fonte de luz, mesh, material, etc. Na API Mobile 3D o grafo de cena contem objetos de classes que extendem Object3D; alem disso todo o grafo de cena t^em como no raiz um objeto World. E possvel carregar um grafo de cena a partir de um arquivo M3G. O arquivo carregado pode ser renderizado no retained mode, caso contenha um grafo de cena, ou ainda no immediate mode, caso contenha apenas uma estrutura simples, como um mesh. Quando a aplicac~ao possui muitos objetos 3D em cena a estrutura de grafo e a melhor forma de se organizar os objetos e de modica-los; o programador consegue inserir e retirar objetos apenas inserindo e retirando nos no grafo. 7

8 2.3.2 World A classe World prov^e uma forma de manter todo o grafo de cena 3D concentrada em uma forma unica, simples de ser acessada. Um objeto World pode conter um grande numero de meshes, fontes de luz, c^ameras, etc. A classe World e o no raiz de um grafo de cena e n~ao pode, assim, conter nos pai. Um World pode ser criado manualmente pelo programador e novos nos podem ser inseridos nele. Normalmente, porem, o que se faz e carregar um World a partir de um arquivo M3G e depois modicar o seu conteudo de acordo com a aplicac~ao. Os arquivos M3G podem conter desde simples estruturas mesh ate complexos grafos de cena, com diversas c^ameras, luzes, materiais, etc. Durante o processo de carregamento da cena o objeto Loader extrai o conteudo do arquivo M3G e constroi todas as estruturas necessarias para o grafo de cena, instanciando os objetos, inicializando-os, criando as ligac~oes entre os nos do grafo, etc. Devido a complexidade e exig^encias de memoria e processamento que esse processo requer, e recomendado que o programador utilize ferramentas 3D, com o 3D Studio Max, para eliminar dados desnecessarios dos arquivos M3G a serem carregados Loader A classe Loader foi desenvolvida para facilitar a escrita e leitura de estruturas de grafo de cena em arquivos. E possvel, porem, realizar a gravac~ao e leitura do arquivo manualmente, para ns de otimizac~ao da aplicac~ao. Os arquivos de formato compatvel com a API Mobile 3D t^em extens~ao.m3g. Quando um arquivo M3G e lido, todos os objetos que extendem Object3D s~ao transformados em um array, que pode ser acessado pelo desenvolvedor. O exemplo de cogido a seguir mostra o processo de carregamento do arquivo. Object3D[] obj = null; try { obj = Loader.load(file); } catch (Exception e) { } World loadedworld = (World) obj[0]; O array obj possui todos os objetos do grafo de cena. O no raiz (obj[0]) e do tipo World e deve ser utilizado para se obter acesso aos outros objetos da cena. E possvel tambem acessar os objetos diretamente a partir do array obj, mas normalmente essa tarefa e feita a partir de um objeto World. 8

9 2.3.4 Object3D Todas as classes, com excec~ao as classes: Loader, Transform, RayIntersection e Graphics3D, s~ao extendidas do pacote javax.microedition.m3g.object3d. A classe Object3D fornece um conjunto de funcionalidades basicas comuns a todas as classes. Usando estes metodos fornecidos, qualquer classe derivada da Object3D pode ser facilmente animada com controladores referenciaveis, que utilizam um codigo de identicac~ao para cada informac~ao, possibilitando encontra-la na cena Graphics3D O World inteiro ou quaisquer nos da cena podem ser renderizados atraves de uma requisicde coordenadas ~ao do Graphics3D especicando uma c^amera. A renderizac~ao da c^amera pode ser selecionada manualmente ou pode ser usada a c^amera padr~ao (default). Existem quatro modos diferentes de renderizac~ao. O primeiro modo, conhecido como retained mode, e usado quando todo o grafo de cena e renderizado. Neste modo, a c^amera ativa e as luzes s~ao setadas pelo Mundo que sera renderizado. Os outros modos, conhecidos como immediate mode, tambem possuem uma c^amera ativa e um conjunto de luzes ativas. O segundo modo e usado para renderizac~ao de apenas alguns grafos de cena selecionados. O terceiro e quarto modos s~ao utilizados para renderizac~ao de um unico submesh. Estes modos podem ser muito uteis para os diversos truques gracos, tais como renderizac~ao de textura. Alem disso, as aplicac~oes que utilizam algum tipo de algoritmo de otimizac~ao de visualizac~ao podem se beneciar da renderizac~ao de meshes com estes metodos Camera A classe Camera e uma classe responsavel em transformar as coordenadas do espaco 3D para o espaco de coordenadas da tela. E possvel denir diversas c^ameras, tanto no immediate mode quanto no retained mode. Teoricamente qualquer numero de c^ameras e permitido, o que signica que e possvel criar diferentes ^angulos de visualizac~ao, bem como os efeitos especiais por rotac~ao apenas trabalhando com os par^ametros das c^ameras Luz A API JSR-184 suporta 4 tipos diferentes de luzes, cada uma com complexidade computacional diferente. Os tipos de luzes s~ao: 9

10 Luz ambiente (Ambient light): dene a intensidade geral dos objetos na cena. A luz ambiente ilumina toda a cena com a mesma quantidade de luz, diminuindo os calculos, ja que sua localizac~ao e direcionamento podem ser desconsiderados. Luz direcional (Directional light): dene apenas a direc~ao de onde a luz esta vindo. A sua posic~ao ou dist^ancia dos objetos, n~ao tem qualquer efeito, embora esta possa ser livremente posicionada na cena. Esta luz e boa para simular fontes distantes de luz, tais como um sistema de luz solar. Luz omni (Omni light): dene um ponto de fonte luminosa. Essa luz afeta objetos em todas as direc~oes ao seu redor. Uma curva de atenuac~ao (linear ou quadratica) pode ser setada para que a iluminac~ao perca a intensidade quando aumenta-se a dist^ancia entre a luz e a superfcie do alvo. Luz spot (Spot light): dene a direc~ao, a posic~ao e o raio da luz. E uma especie de cone apontando para o espaco a ser iluminado. A luz spot n~ao atinge objetos que se encontram fora do seu cone ^angulo. A seguir e apresentado um exemplo de codigo mostrando como setar o modo de luz e a gura 3 que demonstra o efeito dos diversos modos de luz. // Create light. _light = new Light(); _lightmode = LIGHT_OMNI; setlightmode(_light, _lightmode); Transform lighttransform = new Transform(); lighttransform.posttranslate(0.0f, 0.0f, 3.0f); _graphics3d.resetlights(); _graphics3d.addlight(_light, lighttransform); /** * Sets the light mode. * light light to be modified. mode light mode. */ protected void setlightmode(light light, int mode) { switch (mode) { case LIGHT_AMBIENT: light.setmode(light.ambient); light.setintensity(2.0f); break; case LIGHT_DIRECTIONAL: 10

11 Figura 3: Tipos de luz light.setmode(light.directional); light.setintensity(1.0f); break; case LIGHT_OMNI: light.setmode(light.omni); light.setintensity(2.0f); break; case LIGHT_SPOT: light.setmode(light.spot); light.setspotangle(20.0f); light.setintensity(2.0f); break; // no default } } 3 OpenGL ES - JSR Introduc~ao A OpenGL ES (Open Graphics Library for Embedded Systems ) e uma API graca para renderizac~ao de imagens 3D. Seu porte para a linguagem Java foi especicado pela JSR 239 [6], proposto pela propria Sun Microsystems. Em termos genericos ela pode ser denida como um sub-conjunto da API graca OpenGL, projetada para sistemas embarcados como telefones celulares, PDAs e consoles de jogos. Ela e denida e promovida pelo Khronos Group [7], um consorcio de industrias de software e hardware gracos interessadas em APIs abertas para gracos e multimdia. A OpenGL ES veio para preencher a necessidade dos desenvolvedores que ja s~ao familiares com OpenGL, facilitando o porte das varias aplicac~oes 11

12 Figura 4: OpenGL ES roadmap (fonte: em OpenGL de desktops para sistemas embarcados. Muito difundida atualmente, ja foi adotada como API graca padr~ao para varias plataformas e dispositivos, dentre eles: Symbian OS, Android, iphone, PlayStation Especicac~ao O desenvolvimento atual do OpenGL ES segue duas grandes linhas em paralelo: 1.x e 2.x. A linha \1.x" enfatiza a acelerac~ao graca por hardware, e e principalmente focada nos dispositivos que ainda n~ao possuem processamento de ponto-utuante, necessitando portanto de todo um suporte para func~oes que trabalhem apenas com dados inteiros. A linha \2.x" ja se preocupa em incorporar todas as funcionalidades de programac~ao graca, como a manipulac~ao de pontos utuantes e utilizac~ao de pipelines para processamento de shaders. OpenGL ES possui dois proles: "Common Prole" e "Safety Critial Prole". O "Common Prole" e especicado para entretenimento (console de jogos, celulares, etc), enquanto o "Safety Critical Prole" e mais focado em aplicac~oes comerciais crticas, onde a conanca e a garantia s~ao pontos essenciais (como em aviac~ao, telas automotivas, etc). A API contem cerca de 20 classes ao todo, sendo grande maioria interfaces de acesso ao pacote EGL e as primitivas (GL). Principais classes/interfaces do pacote EGL s~ao: 12

13 EGLContext { classe base para obter uma instancia do EGL e do GL. EGLDisplay { classe representativa do display do dispositivo. EGLCong { encapsula as possiveis congurac~oes de video do dispositivo. Para selecionar o modo desejado, deve-se descrev^e-lo de acordo com as caractersticas desejadas (ex: numero de bits para cada cor, se tera transpar^encia ou n~ao), e ent~ao chamar egl.eglchoosecong passando os atributos desejados. Caso o dispositivo tenha algum modo que atenda aos requisitos apresentados, sera ent~ao retornada uma inst^ancia do EGLCong. EGLSurface { interface entre o display do dispositivo e a congurac~ao de video desejada. Principais interfaces do pacote opengles s~ao: EGL / EGL10 / EGL11 { interfaces de acesso as func~oes/metodos da EGL. A classe EGL e a classe base, da qual deriva-se a classe EGL10 (EGL vers~ao 1.0), e desta deriva-se a classe representativa da vers~ao 1.1 (EGL11). GL / GL10 / GL11 - interfaces de acesso as func~oes/metodos da OpenGL. A classe GL e a classe base, da qual deriva-se a classe GL10 (GL vers~ao 1.0), e desta deriva-se a classe representativa da vers~ao 1.1 (GL11). Principais classes do pacote java.nio s~ao: ByteBuer / FloatBuer / IntBuer / ShortBuer { classes auxiliares para manipulac~ao de arrays de dados, de acordo com o tipo de dado a ser usado. 3.3 Comparac~oes com outras APIs Comparac~ao com OpenGL Apesar de ja existir uma especicac~ao com o intuito de portar o OpenGL para Java (JSR 231), a JSR 239 se diferencia dessa por: utilizac~ao de double-buering por padr~ao; aus^encia do par de primitivas \glbegin / glend" (usada na renderizac~ao de polgonos), em favor do uso de arrays de vertices (vertex arrays); presenca de tipos de dados inteiros para coordenadas de vertices, devido principalmente a aus^encia de unidades de processamento de ponto utuante (FPU) em alguns sistemas embarcados. 13

14 Figura 5: Abstrac~ao das camadas de acesso Comparac~ao com Mobile 3D Em comparac~ao com a JSR 184 (Mobile 3D Graphics), apesar de ambas proverem a mesma funcionalidade, a diferenca basica entre elas esta na interface. A JSR 184 e, alem de oferecer as caractersticas de desenvolvimento do OpenGL ES, atraves do immediate mode oferece uma interface mais alto nvel, proporcionando uma maior facilidade para tratar objetos 3D. Na tabela 1 mostra 2 exemplos de codigo em OpenGL ES e Mobile 3D. Tabela 1: Exemplos de codigos do OpenGL ES e Mobile 3D OpenGL ES gl.gltranslatef(0.f, 0.f, -30.f); gl.glrotatef(1.0f, 1.0f, 2.0f, 0.0f); gl.glrotatef(1.0f, -0.1f, 0.0f, -5.0f); gl.glvertexpointer(3, GL10.GL BYTE, 0, cubevertices); gl.glcolorpointer(4, GL10.GL UNSIGNED BYTE, 0, cubecolors); Mobile 3D troo = (Group)myWorld.nd(POGOROO ID); tcams = (Group)myWorld.nd(CAMERA ID);.... troo.setorientation(dirroo, 0, 0, 1); tcams.setorientation(dircam, 0, 0, 1); Isso tambem pode ser observado na gura 5, que demonstra o nivel de abstrac~ao do codigo em relac~ao ao sistema operacional: 3.4 Desenvolvimento A JSR 239 se concentra no pacote javax.microedition.khronos.opengles. Com o intuito de separar a implementac~ao da JSR 239 dos detalhes especcos de cada plataforma/hardware, foi criada a EGL (Nativa Platform 14

15 Figura 6: Exemplo de uso Graphics Interface). Ela e uma camada de interface para ger^encia de recursos gracos (obtenc~ao do display, sincronizac~ao da renderizac~ao, etc), cando entre o OpenGL ES e o sistema operacional nativo. Essa interface se encontra no pacote javax.microedition.khronos.egl. Um exemplo de utilizac~ao da OpenGL ES pode ser encontrado no toolkit de desenvolvimento de Midlets da Sun (Sun Java Wireless Toolkit for CLDC [1]): OpenGLESDemo (gura 6). A seguir e mostrado codigo OpenGl ES referente a gura 6. private void drawscene() { // Make the context current on this thread egl.eglmakecurrent(egldisplay, eglwindowsurface, eglwindowsurface, eglcontext); // Perform setup and clear background using GL egl.eglwaitnative(egl10.egl_core_native_engine, g); updatestate(width, height); gl.glclear(gl10.gl_color_buffer_bit GL10.GL_DEPTH_BUFFER_BIT); gl.glfinish(); // Wait for GL to complete egl.eglwaitgl(); // Draw a green square using MIDP g.setcolor(0, 255, 0); g.fillrect(20, 20, width - 40, height - 40); // Draw the scene using GL egl.eglwaitnative(egl10.egl_core_native_engine, g); gl.glmatrixmode(gl10.gl_modelview); gl.glloadidentity(); 15

16 gl.gltranslatef(0.f, 0.f, -30.f); gl.glrotatef((float)(time * 29.77f), 1.0f, 2.0f, 0.0f); gl.glrotatef((float)(time * f), -0.1f, 0.0f, -5.0f); gl.glvertexpointer(3, GL10.GL_BYTE, 0, cubevertices); gl.glcolorpointer(4, GL10.GL_UNSIGNED_BYTE, 0, cubecolors); gl.glnormalpointer(gl10.gl_byte, 0, cubenormals); gl.gldrawelements(gl10.gl_triangles, 6 * 6, GL10.GL_UNSIGNED_BYTE, cubeindices); gl.glfinish(); time += 0.1f; egl.eglwaitgl(); // Release the context egl.eglmakecurrent(egldisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); // Draw a red square using MIDP g.setcolor(255, 0, 0); g.fillrect((width / 2) - 25, (height / 2) - 25, 50, 50); } 4 Conclus~ao A API JSR-184 conseguiu combinar a facilidade de desenvolvimento da linguagem Java para o de aplicac~oes gracas, mesmo tendo como foco dispositivos moveis, que possuem poucos recursos de hardware e, consequentemente, deveriam exigir maiores otimizac~oes e conhecimento do programador. O amplo conjunto de classes disponvel torna simples o desenvolvimento de aplicac~oes complexas e abre caminho para o surgimento de novas aplicac~oes para o mercado de dispositivos moveis. O OpenGL ES tambem oferece uma otima biblioteca para os desenvolvedores acostumados com a programac~ao em OpenGL. Apesar de ser uma boa opc~ao, a biblioteca OpenGL ES ainda n~ao e disponibilizada em tantos dispositivos quanto a API Mobile 3D. Ambas bibliotecas disponibilizam recursos para desenvolvedores que buscam novos desaos para as aplicac~oes tridimensionais. Esta monograa apresenta uma breve descric~ao dos topicos mais relevantes destas APIs, porem podem ser encontradas mais informac~oes nas especi- cac~oes das bibliotecas. 16

17 Refer^encias [1] Sun Java Wireless Toolkit for CLDC Visitado em 18/04/2008 [2] JSR 184: Mobile 3D graphics API for J2ME Visitado em 18/04/2008 [3] Getting Started With the Mobile 3D Graphics API for J2ME Visitado em 18/04/2008 [4] JSR-139 Connected Limited Device Conguration Visitado em 18/04/2008 [5] Mobile Information Device Prole (MIDP) Visitado em 18/04/2008 [6] JSR 239: JavaTM Binding for the OpenGL ES API Visitado 18/04/2008 [7] Khronos Group Visitado em 18/04/2008 [8] "Developing Mobile 3D Applications with OpenGL ES and M3G"{ SIG- GRAPH 2005 course - course/ - Visitado em 18/04/2008 [9] Wikipedia Mobile 3D Graphics API Visitado em 18/04/2008 [10] Wikipedia OpenGL ES - ES - Visitado em 18/04/

Scalable Vector Graphics. Kadu Neves Rafael Rocha

Scalable Vector Graphics. Kadu Neves Rafael Rocha Scalable Vector Graphics Kadu Neves Rafael Rocha Roteiro Introdução Vantagens do Uso do SVG Perfis SVG A especificaçào JSR-226 Exemplos Introdução Scalable Vector Graphics é um padrão aberto para descrever

Leia mais

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora OpenGL Uma Abordagem Prática e Objetiva Marcelo Cohen Isabel Harb Manssour Novatec Editora Capítulo 1 Introdução A Computação Gráfica é uma área da Ciência da Computação que se dedica ao estudo e ao desenvolvimento

Leia mais

Java ME e suas principais tecnologias de conectividade. Gracieli Begia Mateus

Java ME e suas principais tecnologias de conectividade. Gracieli Begia Mateus Java ME e suas principais tecnologias de conectividade Gracieli Begia Mateus Telefones Celulares no Mundo Fonte: UIT e Wireless Intelligence (Ovum/GSM Association) Posição do Brasil no Mundo Principais

Leia mais

UM FRAMEWORK PARA DESENVOLVIMENTO DE

UM FRAMEWORK PARA DESENVOLVIMENTO DE UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA UM FRAMEWORK PARA DESENVOLVIMENTO DE APLICATIVOS EM WINDOWS MOBILE. PROPOSTA DE TRABALHO DE GRADUAÇÃO Aluno:

Leia mais

Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br. 3 de maio de 2011. SCC0250 - Computação Gráca

Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br. 3 de maio de 2011. SCC0250 - Computação Gráca Introdução à Opengl com Java SCC0250 - Computação Gráca Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Trabalho GA - Editor de Cenário Parallax

Trabalho GA - Editor de Cenário Parallax Objetivo A tarefa consiste em criar um editor gráfico de cenários para jogos 2D com visão lateral. O editor deve permitir que o usuário trabalhe com camadas, para simular o efeito parallax. O usuário pode

Leia mais

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Uma Introdução ao J2ME Computação Móvel (MAC5743/MAC330) DCC-IME-USP Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Visão Geral do Java 2 (1) A plataforma Java 2 engloba três elementos:

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

UM FRAMEWORK DE REALIDADE AUMENTADA

UM FRAMEWORK DE REALIDADE AUMENTADA UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA UM FRAMEWORK DE REALIDADE AUMENTADA PARA O DESENVOLVIMENTO DE APLICAÇÕES PORTÁVEIS PARA A PLATAFORMA POCKET PC

Leia mais

Ambiente Visual para o Desenvolvimento de Jogos Eletrônicos

Ambiente Visual para o Desenvolvimento de Jogos Eletrônicos Ambiente Visual para o Desenvolvimento de Jogos Eletrônicos Diego Cordeiro Barboza 1, Júlio César da Silva 2 1 UNIFESO, Centro de Ciências e Tecnologia, Curso de Ciência da Computação, diego.cbarboza@gmail.com

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS PROFESSOR: CARLOS BECKER WESTPHALL Terceiro Trabalho

Leia mais

O que é o Android? O que é o Android

O que é o Android? O que é o Android O que é o Android? O Android é um sistema operacional para dispositivos móveis, baseado em uma plataforma de código aberta sob a licença apache, permitindo que os fabricantes possam modificar seu código

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Formatos de Imagens

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Formatos de Imagens IntroduçãoàTecnologiaWeb HTML HyperTextMarkupLanguage XHTML extensiblehypertextmarkuplanguage FormatosdeImagens ProfªMSc.ElizabeteMunzlinger ProfªMSc.ElizabeteMunzlinger FormatosdeImagens Índice 1 FORMATOS

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Uso do SQLite no Android Professor: Danilo Giacobo OBJETIVOS DA AULA Aprender a persistir dados utilizando o banco de dados SQLite. Conhecer e utilizar a classe SQLiteOpenHelper.

Leia mais

Introdução ao Android SDK. Prof. Me. Hélio Esperidião

Introdução ao Android SDK. Prof. Me. Hélio Esperidião Introdução ao Android SDK Prof. Me. Hélio Esperidião Android SDK O Android SDK permite que os desenvolvedores elaborem as aplicações a partir de um dispositivo virtual para os aparelhos de celular e tablet,

Leia mais

Bruno Pereira Evangelista. www.brunoevangelista.com

Bruno Pereira Evangelista. www.brunoevangelista.com Bruno Pereira Evangelista www.brunoevangelista.com 2 Introdução Shaders Pipeline de Renderização Evolução dos Shaders Como Programar Shaders Programando Shaders com XNA Ferramentas Conclusões 3 Durante

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador

Leia mais

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Manual de Operação Aplicativo ClickIt

Manual de Operação Aplicativo ClickIt Manual de Operação Aplicativo ClickIt Rev. 1.1 Agosto/2010 GSControl Automação Ltda. Rua Washington Luiz, 675 ITC Conjunto 1101 Centro Porto Alegre RS CEP 90010-460 Telefone: (51)3026-0945 / (51)3287-2167

Leia mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

Computação Gráfica. Introdução. Profª Alessandra Martins Coelho

Computação Gráfica. Introdução. Profª Alessandra Martins Coelho Computação Gráfica Introdução Profª Alessandra Martins Coelho março/2013 Introdução Computação gráfica (CG) é a utilização de computadores para gerar imagens (GUHA, 2013). Nos dias atuais, para não se

Leia mais

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2 Estrutura de Repetição. Ex. 2 A ESTRUTURA Enquanto faça{} É MELHOR UTILIZADA PARA SITUAÇÕES ONDE O TESTE DE CONDIÇÃO (V OU F) PRECISA SER VERIFICADO NO INÍCIO DA ESTRUTURA DE REPETIÇÃO.

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

Introdução à Engenharia ENG1000

Introdução à Engenharia ENG1000 Introdução à Engenharia ENG1000 Aula 11 Utilizando Imagens na PlayLib Prof. Augusto Baffa < abaffa@inf.puc-rio.br> Baseado no material criado por Edirlei Soares de Lima Biblioteca

Leia mais

Interfaces Dinâmicas e Adaptativas para Celulares

Interfaces Dinâmicas e Adaptativas para Celulares Interfaces Dinâmicas e Adaptativas para Celulares Flavio Henrique Cardoso de Freitas, Silvano Maneck Malfatti Faculdade Católica do Tocantins (FACTO) Palmas TO Brasil {flaviohcf,silvanomalfatti}@hotmail.com

Leia mais

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME Java para Dispositivos Móveis Desenvolvendo Aplicações com J2ME Thienne M. Johnson Novatec Capítulo 1 Introdução à computação móvel 1.1 Computação móvel definições Computação móvel está na moda. Operadoras

Leia mais

X3DOM E WEBGL: O 3D INDEPENDENTE NA WEB

X3DOM E WEBGL: O 3D INDEPENDENTE NA WEB X3DOM E WEBGL: O 3D INDEPENDENTE NA WEB Augusto Francisco Ferbonink¹, Willian Barbosa Magalhães 1 Universidade Paranaense (UNIPAR) Paranavaí PR Brasil aferbonink@gmail.com wmagalhães@unipar.com Resumo.

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Open Graphics Library OpenGL

Open Graphics Library OpenGL Open Graphics Library OpenGL Filipe Gonçalves Barreto de Oliveira Castilho Nuno Alexandre Simões Aires da Costa Departamento de Engenharia Informática Universidade de Coimbra 3030 Coimbra, Portugal http://student.dei.uc.pt/~fgonc/opengl/

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit Vitor Paulo Silva Se você é um projetista e sua principal ferramenta de trabalho é o AutoCAD ou o Revit, certamente você já se deparou com

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Técnicas para Animação de Imagens em Jogos 2D Utilizando Java

Técnicas para Animação de Imagens em Jogos 2D Utilizando Java Técnicas para Animação de Imagens em Jogos 2D Utilizando Java Silvano Maneck Malfatti 1 1 Faculdade Católica do Tocantins (FACTO) Palmas TO Brasil Malfatti@catolica-to.edu.br Resumo. Um dos recursos que

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress. Sistemas Operacionais Aula 3 Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.com Nunca cone em um computador que você não pode jogar pela janela.

Leia mais

Introdução. Dados. Imagens. 1. CG Computação Gráfica. 2. Paradigmas de Abstração

Introdução. Dados. Imagens. 1. CG Computação Gráfica. 2. Paradigmas de Abstração Universidade Federal de Santa Maria Departamento de Eletrônica e Computação Prof. Cesar Tadeu Pozzer Disciplina: Computação Gráfica pozzer@inf.ufsm.br 19/03/2008 1. CG Computação Gráfica Introdução Teve

Leia mais

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS PROFª. M.Sc. JULIANA H Q BENACCHIO Links importantes http://www.android.com/ Site oficial de toda a documentação, downloads e informações sobre a plataforma. http://developer.android.com/

Leia mais

Agregador de feeds RSS para dispositivos móveis

Agregador de feeds RSS para dispositivos móveis Agregador de feeds RSS para dispositivos móveis Disciplina: Computação Móvel Professor: Mauro Nacif Rocha Data: 27/02/2007 Hadriel Toledo Lima 50290 Juliana Pinheiro Campos 47683 Luis Felipe Hussin Bento

Leia mais

Especificação Suplementar

Especificação Suplementar Especificação Suplementar Versão Histórico de Revisões Data Versão Descrição Autor 29/10/2014 2.0 2.1 funcionalidade e segurança de M. Vinícius acesso 30/10/2014

Leia mais

TRABALHO COM GRANDES MONTAGENS

TRABALHO COM GRANDES MONTAGENS Texto Técnico 005/2013 TRABALHO COM GRANDES MONTAGENS Parte 05 0 Vamos finalizar o tema Trabalho com Grandes Montagens apresentando os melhores recursos e configurações de hardware para otimizar a abertura

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr. dcfoltran@yahoo.com

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr. dcfoltran@yahoo.com Sistemas Operacionais 3º bimestre Dierone C.Foltran Jr. dcfoltran@yahoo.com Sistema de Arquivos (1) Todas as aplicações precisam armazenar e recuperar informações. Considerações sobre os processos: Espaço

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10 Índice 1. A Organização do Computador - Continuação...3 1.1. Memória Primária - II... 3 1.1.1. Memória cache... 3 1.2. Memória Secundária... 3 1.2.1. Hierarquias de

Leia mais

Sistemas Operacionais. Conceitos de um Sistema Operacional

Sistemas Operacionais. Conceitos de um Sistema Operacional Sistemas Operacionais Conceitos de um Sistema Operacional Modo usuário e Modo Kernel Como já vimos são ambientes de execução diferentes no processador Há um conjunto de funções privilegiadas acessadas

Leia mais

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

O modelo ISO/OSI (Tanenbaum,, 1.4.1) Cenário das redes no final da década de 70 e início da década de 80: Grande aumento na quantidade e no tamanho das redes Redes criadas através de implementações diferentes de hardware e de software Incompatibilidade

Leia mais

SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados

SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados Acadêmico: Bernardo Marquardt Müller Orientador: Prof. Dr. Mauro Marcelo Mattos Roteiro

Leia mais

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID Maik Olher CHAVES 1 ; Daniela Costa Terra 2. 1 Graduado no curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Leia mais

Introdução a programação de dispositivos móveis. Prof. Me. Hélio Esperidião

Introdução a programação de dispositivos móveis. Prof. Me. Hélio Esperidião Introdução a programação de dispositivos móveis. Prof. Me. Hélio Esperidião Windows Mobile O Windows Mobile é um sistema operacional compacto, desenvolvido para rodar em dispositivos móveis como Pocket

Leia mais

Descrição do Produto. Altus S. A. 1

Descrição do Produto. Altus S. A. 1 Descrição do Produto O software MasterTool IEC é um ambiente completo de desenvolvimento de aplicações para os controladores programáveis da Série Duo. Esta ferramenta permite a programação e a configuração

Leia mais

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual Algoritmos: Lógica para desenvolvimento de programação de computadores Autor: José Augusto Manzano Capítulo 1 Abordagem Contextual 1.1. Definições Básicas Raciocínio lógico depende de vários fatores para

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Manual Processamento de Imagem. João L. Vilaça

Manual Processamento de Imagem. João L. Vilaça Manual Processamento de Imagem João L. Vilaça Versão 1.0 31/1/2014 Índice 1. Sistema de eixo e movimentos possíveis do Drone... 3 2. Imagem... 3 3. Espaços de cor... 4 4.1 RGB... 5 4.2HSV... 5 4.3 GRAY...

Leia mais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

CorelDRAW 11 1. UM PROGRAMA DE DESIGN

CorelDRAW 11 1. UM PROGRAMA DE DESIGN CorelDRAW 11 1. UM PROGRAMA DE DESIGN Com o Corel você vai trabalhar com um dos aplicativos mais usados no campo do design e da auto-edição, já que permite operar com dois tipos de gráficos (vetoriais

Leia mais

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo Programação para Dispositivos Móveis Prof. Wallace Borges Cristo Acesso a informação Notícias, Ringtones, Vídeos Messenger/Chat Jogos Acesso a instituições financeiras M-commerce (Mobile Commerce) Aplicações

Leia mais

Algoritmos. Cláudio Barbosa contato@claudiobarbosa.pro.br

Algoritmos. Cláudio Barbosa contato@claudiobarbosa.pro.br Algoritmos Partes básicas de um sistema computacional: Hardware, Software e Peopleware Hardware - Componentes físicos de um sistema de computação, incluindo o processador, memória, dispositivos de entrada,

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

CONTROLE DE QUALIDADE e VALIDAÇÃO DE PRODUTO CARTOGRÁFICO

CONTROLE DE QUALIDADE e VALIDAÇÃO DE PRODUTO CARTOGRÁFICO CONTROLE DE QUALIDADE e VALIDAÇÃO DE PRODUTO CARTOGRÁFICO Editar dados em vários formatos e armazenar estas informações em diferentes sistemas é provavelmente uma das atividades mais comuns para os profissionais

Leia mais

Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D

Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D Cardoso Marchezi e Hans-Jorg Andreas Schneebeli VIII Simpósio Brasileiro de Automação Inteligente

Leia mais

NOKIA. Em destaque LEE FEINBERG

NOKIA. Em destaque LEE FEINBERG Em destaque NOKIA LEE FEINBERG A Nokia é líder mundial no fornecimento de telefones celulares, redes de telecomunicações e serviços relacionados para clientes. Como Gerente Sênior de Planejamento de Decisões

Leia mais

Manual do Usuário Android Neocontrol

Manual do Usuário Android Neocontrol Manual do Usuário Android Neocontrol Sumário 1.Licença e Direitos Autorais...3 2.Sobre o produto...4 3. Instalando, Atualizando e executando o Android Neocontrol em seu aparelho...5 3.1. Instalando o aplicativo...5

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 03 Introdução ao ambiente de desenvolvimento: Eclipse e Android SDK Dalton Martins dmartins@gmail.com São

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

VISEDU-CG 3.0: Aplicação didática para visualizar material educacional Módulo de Computação Gráfica

VISEDU-CG 3.0: Aplicação didática para visualizar material educacional Módulo de Computação Gráfica VISEDU-CG 3.0: Aplicação didática para visualizar material educacional Módulo de Computação Gráfica SAMUEL ANDERSON NUNES ORIENTADOR: DALTON SOLANO DOS REIS FURB Universidade Regional de Blumenau DSC Departamento

Leia mais

Thunder Pro II Gold Edition Manual de operações v 8.7 Rev:b

Thunder Pro II Gold Edition Manual de operações v 8.7 Rev:b Thunder Pro II Gold Edition Manual de operações v 8.7 Rev:b Este manual foi escrito exclusivamente para o chip Thunder Pro II Gold e será atualizado juntamente com as atualizações do chip, portanto acesse

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

Projeto de Jogos Parte II Gráficos

Projeto de Jogos Parte II Gráficos Projeto de Jogos Parte II Gráficos Paulo V. W. Radtke pvwradtke@gmail.com http://www.ppgia.pucpr.br/~radtke/jogos Conteúdo Introdução Vídeo Considerações (PC e celular) O Mundo em Blocos de Imagem Sprites

Leia mais

Software de rede e Modelo OSI André Proto UNESP - São José do Rio Preto andre.proto@sjrp.unesp.br O que será abordado Hierarquias de protocolos (camadas) Questões de projeto relacionadas às camadas Serviços

Leia mais

Tecnologia de armazenamento Intel (Intel RST) RAID 0, 1, 5, 10, Matrix RAID, RAID -Pronto

Tecnologia de armazenamento Intel (Intel RST) RAID 0, 1, 5, 10, Matrix RAID, RAID -Pronto Tecnologia de armazenamento Intel (Intel RST) RAID 0, 1, 5, 10, Matrix RAID, RAID -Pronto RAID 0 (striping) RAID 0 utiliza os recursos de leitura/gravação duas ou mais unidades de disco trabalhando em

Leia mais

Professor: Ronilson Morais Lobo. Salvador / 2015

Professor: Ronilson Morais Lobo. Salvador / 2015 Professor: Ronilson Morais Lobo Salvador / 2015 Introdução Motivação: Criar uma metodologia, Protótipar cenários reais, Proporcionar jogos divertidos, intuitivos e colaborativos. Tecnologia, Conceitos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Arquivos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Conceituação de arquivos Implementação do sistemas de arquivo Introdução Sistema de

Leia mais

Processos Técnicos - Aulas 4 e 5

Processos Técnicos - Aulas 4 e 5 Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)

Leia mais

Desvendando Jogos 2D. Por Marcos Romero Setembro / 2008. Cyborg Arena - RHGames

Desvendando Jogos 2D. Por Marcos Romero Setembro / 2008. Cyborg Arena - RHGames Desvendando Jogos 2D Por Marcos Romero Setembro / 2008 Cyborg Arena - RHGames Jogos Casuais Paciência Windows XP Paciência deve ser o jogo mais usado no PC. O mercado de jogos casuais tem um grande potencial,

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Apresentar os conceitos de requisitos de usuário e de sistema Descrever requisitos funcionais

Leia mais

Formação em game programming: 01 - Introdução à programação

Formação em game programming: 01 - Introdução à programação Formação em game programming: Para que um jogo eletrônico funcione adequadamente como foi projetado, é necessário que ele esteja corretamente programado. Todas as funções de controle de personagens e objetos

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

Exercícios de Revisão Java Básico

Exercícios de Revisão Java Básico Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1

Leia mais

Edição Visual Imagens, Tilemaps e Sprites 2006 PUCPR Tutoria de Jogos 1º Ano

Edição Visual Imagens, Tilemaps e Sprites 2006 PUCPR Tutoria de Jogos 1º Ano Edição Visual Imagens, Tilemaps e Sprites 2006 PUCPR Tutoria de Jogos 1º Ano Paulo V. W. Radtke pvwradtke@gmail.com http://www.ppgia.pucpr.br/~radtke/jogos/ Conteúdo Ferramentas necessárias. Classificação

Leia mais