Tópicos de Informática Avançada II

32
TÓPICOS DE INFORMÁTICA AVANÇADA II Processo de Desenvolvimento de Ambientes Virtuais Java3D Prof. Régis Albuquerque

description

Tópicos de Informática Avançada II. Processo de Desenvolvimento de Ambientes Virtuais Java3D Prof. Régis Albuquerque. Criação de Ambientes Virtuais. - PowerPoint PPT Presentation

Transcript of Tópicos de Informática Avançada II

Page 1: Tópicos de Informática Avançada II

TÓPICOS DE INFORMÁTICA AVANÇADA IIProcesso de Desenvolvimento de Ambientes VirtuaisJava3DProf. Régis Albuquerque

Page 2: Tópicos de Informática Avançada II

2

CRIAÇÃO DE AMBIENTES VIRTUAIS

Para criar um mundo virtual interativo, é necessário modelar um ambiente composto por múltiplos objetos e habilitá-los com características virtuais.

A maioria dos sistemas de construção de mundos virtuais compartilha alguns conceitos básicos e permitem aos desenvolvedores criar simulações bastante realistas.

Page 3: Tópicos de Informática Avançada II

3

JAVA3D

•Java 3D é uma API 2D e 3D para a linguagem Java baseada em grafos de cena.•Foi construída tendo como base o OpenGL.•o Java 3D tem a preocupação de possibilitar a utilização de conceitos da POO, como o Polimorfismo, para a criação da aplicações em ambientes tridimensionais.•O grafo de cena é estruturado como uma árvore contendo vários elementos que ditam o modo como a cena será construída e exibida, além de comportamentos que poderão ser observados ao longo do tempo (como animações, respostas a interação do usuário, colisões, etc).

Page 4: Tópicos de Informática Avançada II

4

JAVA3D - INTRODUÇÃO

JAVA: Linguagem de programação Orientada a objetos Independente de arquitetura

(multiplataforma) Portável Robusta Segura Interpretada Etc...

Page 5: Tópicos de Informática Avançada II

5

JAVA3D - INTRODUÇÃOJAVA Compilada e interpretada O compilador transforma o programa em

bytecodes (instruções de máquina compreendidas pela Java Virtual Machine)

O interpretador transforma os bytecodes em linguagem de máquina

Page 6: Tópicos de Informática Avançada II

6

Page 7: Tópicos de Informática Avançada II

7

Page 8: Tópicos de Informática Avançada II

8

JAVA3D - INTRODUÇÃO

Plataforma Ambiente onde um programa é executado,

incluindo software e hardware Como plataforma, Java possui dois

componentes JVM (Java Virtual Machine - interpretador Java -

runtime Java) API (Java Application Programming Interface)

Page 9: Tópicos de Informática Avançada II

9

JAVA3D - INTRODUÇÃO

Java Media Framework API Suporta tecnologias gráficas e multimídia

Áudio Vídeo 2D Animação 3D

Um dos componentes da API Java Standard Extension é Java 3D

Page 10: Tópicos de Informática Avançada II

10

JAVA3D - INTRODUÇÃO

O que é a API Java 3D? Hierarquia de classes Java Interface para o desenvolvimento de sistemas

gráficos tridimensionais Construtores de alto nível Criação e manipulação de objetos geométricos,

especificados em um universo “virtual” Grande flexibilidade para criar universos virtuais Representação de cenas: “grafo de cena” Detalhes de rendering gerenciados

automaticamente

Page 11: Tópicos de Informática Avançada II

11

JAVA3D - INTRODUÇÃO

Programa Java 3D Cria objetos Java 3D e posiciona-os em um grafo

de cena Grafo de cena

Combinação de objetos 3D em uma estrutura de árvore

Especifica o conteúdo do universo virtual e como este é visualizado

Page 12: Tópicos de Informática Avançada II

12

JAVA3D - INTRODUÇÃO

Programas Java 3D podem ser escritos como Aplicação Applet

Suporte para Java 3D nos navegadores está disponível através de um plugin que pode ser

obtido no site da Sun (java.sun.com) Ou ambas

Classe MainFrame

Page 13: Tópicos de Informática Avançada II

13

JAVA3D - HISTÓRICO

Idéia Construir uma API que fosse independente de

plataforma “Prima” de VRML

Alguns componentes familiares Muitos componentes novos

1998

Page 14: Tópicos de Informática Avançada II

14

JAVA3D - HISTÓRICO Especificação da API Java 3D

Intel, Silicon Graphics, Apple e Sun Microsystems Sun colocou a sua implementação para

download

Java 3D Baseada em OpenGL e Direct3D (depende da

plataforma na qual o programa é executado)

Page 15: Tópicos de Informática Avançada II

15

JAVA3D – APLICAÇÕES

Exemplos de aplicações onde Java 3D é usado Desenvolvimento de jogos Comércio eletrônico

Visualização 3D dos produtos Loja virtual

Representação 3D Interação

Visualização de dados Elaboração de interfaces

Page 16: Tópicos de Informática Avançada II

16

JAVA3D – GRAFO DE CENA

Uma aplicação Java 3D é projetada a partir de um grafo de cena

Grafo de cena: Possibilita a criação de um universo virtual Simples de construir

Não é necessário ter experiência em programação 3D Contém obejtos gráficos

Geometria, luz, som, entre outros

Page 17: Tópicos de Informática Avançada II

17

JAVA3D – EXEMPLO DE UM GRAFO DE CENA

Page 18: Tópicos de Informática Avançada II

18

GRAFO DE CENA - DENIFIÇÃO Consiste em objetos 3D (nodes) organizados em

uma estrutura do tipo árvore, composta de: Nodos (ou vértices): instâncias das classes Java

3D Arcos (ou arestas): relacionamento entre as

instâncias. Relacionamentos:

Pai-Filho Nodo do tipo grupo (pode ter um ou mais filhos, mas

apenas um pai) Nodo do tipo folha (não pode ter filhos e tem apenas um

pai) Referência

Associa um objeto com o grafo de cena

Page 19: Tópicos de Informática Avançada II

19

GRAFO DE CENAEXEMPLO CONCRETO(PROJETO DE UM ESCRITÓRIO)

Page 20: Tópicos de Informática Avançada II

20

PRIMEIRO PROGRAMA JAVA3D Passos para a criação do grafo de cena

Criar um objeto GraphicsConfiguration Criar um objeto Canvas3D Construir e compilar pelo menos um subgrafo de

conteúdo Criar um objeto SimpleUniverse, que referencie o

objeto Canvas3D criado e automaticamente cria os objetos VirtualUniverse e Locale,e contrói o subgrafo de visualização

Inserir o sub-grafo de conteúdo no universo virtual

Page 21: Tópicos de Informática Avançada II

21

OLÁUNIVERSO – BILIOTECAS

import java.applet.Applet; import java.awt.BorderLayout; import java.awt.GraphicsConfiguration; import

com.sun.j3d.utils.applet.MainFrame; import

com.sun.j3d.utils.geometry.ColorCube; import com.sun.j3d.utils.universe.*; import javax.media.j3d.*; import javax.vecmath.*;

Page 22: Tópicos de Informática Avançada II

22

OLAUNIVERSO – CORPO DA CLASSEpublic class OlaUniverso extends Applet { public BranchGroup criaGrafoCena() {

... }

public OlaUniverso() { ... } public static void main(String[] args) { new MainFrame(new OlaUniverso(), 256,256);

}}

Page 23: Tópicos de Informática Avançada II

23

OLAUNIVERSO – CRIAGRAFOCENA() public BranchGroup criaGrafoCena(){

BranchGroup objRoot = new BranchGroup();

Transform3D rotateY = new Transform3D();rotateY.rotY(.6);

TransformGroup objTrans = new TransformGroup(rotateY);

objRoot.addChild(objTrans);

objTrans.addChild(new ColorCube(0.4));

objRoot.compile();

return objRoot;}

Page 24: Tópicos de Informática Avançada II

24

OLAUNIVERSO – OLAUNIVERSO() public OlaUniverso(){

setLayout(new BorderLayout());

GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();

Canvas3D c = new Canvas3D(config);

add("Center", c);

SimpleUniverse u = new SimpleUniverse(c);BranchGroup scene = criaGrafoCena();

u.getViewingPlatform().setNominalViewingTransform();

u.addBranchGraph(scene);}

Page 25: Tópicos de Informática Avançada II

25

EXECUÇÃO - OLAUNIVERSO

Page 26: Tópicos de Informática Avançada II

26

SIMPLEUNIVERSE Uma das classes mais importantes é a

SimpleUniverse; É responsável pela configuração de um

ambiente mínimo para executar um programa Java 3D;

Fornece as funcionalidades necessárias para a maioria das aplicações.

Quando uma instância de SimpleUniverse é criada automaticamente são criados todos os objetos necessários para o sub-grafo de visualização, tais como Locale, ViewingPlatform e Viewer.

Page 27: Tópicos de Informática Avançada II

27

GRAPHICSCONFIGURATION GraphicsConfiguration é uma classe que

faz parte do pacote awt É responsável pela descrição das

características do dispositivo gráfico (impressora ou monitor).

Sua estrutura varia de plataforma para plataforma fornecendo, por exemplo, a resolução do dispositivo.

Page 28: Tópicos de Informática Avançada II

28

CANVAS3D A classe Canvas3D fornece o canvas ou seja,

uma área de desenho, onde é realizada a visualização 3D.

Page 29: Tópicos de Informática Avançada II

29

BRANCHGROUP A classe BranchGroup serve como ponteiro

para a raiz de um sub-grafo de cena; Instâncias desta classe são os únicos objetos

que podem ser inseridos em Locale. Um sub-grafo de cena que tem um

BranchGroup como raiz pode ser considerado como uma compile unit.

Pode ser compilado, inserido em um universo virtual (associando-o com Locale) e desassociado deste universo em tempo de execução.

Page 30: Tópicos de Informática Avançada II

30

TRANSFORM3D E TRANSFORMGROUP As transformações geométricas de escala,

rotação e translação, são especificadas através de uma instância de Transform3D

Uma instância de Transform3D representa uma matriz 4x4 de números reais (float).

Objetos da classe TransformGroup, por sua vez, especificam uma transformação, através de um objeto Transform3D, que será aplicada a todos os seus filhos.

Ao serem aplicadas as transformações, deve-se considerar que os efeitos num grafo de cena são cumulativos.

Page 31: Tópicos de Informática Avançada II

31

BOUNDINGSPHERE A classe BoundingSphere define uma região

(ou volume) limitada por uma esfera que é especificada a partir de um ponto central e um raio.

A esfera é associada com o limite para o objeto RotatorInterpolator, que é usado para fazer a animação do cubo.

Page 32: Tópicos de Informática Avançada II

32

EXERCÍCIO Criação de Grafo de Cena do Ambiente

Virtual Idealizado.