A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Equipe: Durval Augusto Elton Magalhães Dihego Oliveira Natanael Silva Rafael Araujo Vladimir Alves Introdução a Multimídia Estudo sobre OGRE Object Oriented.

Apresentações semelhantes


Apresentação em tema: "Equipe: Durval Augusto Elton Magalhães Dihego Oliveira Natanael Silva Rafael Araujo Vladimir Alves Introdução a Multimídia Estudo sobre OGRE Object Oriented."— Transcrição da apresentação:

1 Equipe: Durval Augusto Elton Magalhães Dihego Oliveira Natanael Silva Rafael Araujo Vladimir Alves Introdução a Multimídia Estudo sobre OGRE Object Oriented Graphics Rendering Engine

2 Introdução à Multimídia - UFPE/CIn OGRE – Object Oriented Graphics Rendering Engine  Engine 3D;  Flexível;  Escrito em C++;  Une facilidade com poder;  É gratuito. 2

3 Introdução à Multimídia - UFPE/CIn Não é um engine de jogos.  OGRE é muito usado como módulo gráfico em jogos;  Decisão de restringir para abranger;  Liberdade ao desenvolvedor – engines de jogos geralmente são específicos;  Flexibilidade: de aplicações médicas a jogos. 3

4 Introdução à Multimídia - UFPE/CIn O que faz de OGRE uma boa opção?  Fácil integração com módulos externos – grande aceitação em jogos;  Documentação consistente;  Qualidade favorecida à quantidade. 4

5 Introdução à Multimídia - UFPE/CIn Projetos que utilizam o OGRE. JetRacer Live Interior 3D 5

6 Introdução à Multimídia - UFPE/CIn Projetos que utilizam o OGRE[2]. FirstAid Sim Interactive Museum 6

7 Introdução à Multimídia - UFPE/CIn Projetos que utilizam o OGRE[3]. Nimble MotorM4X 7

8 Arquitetura Introdução à Multimídia - UFPE/CIn8

9 Arquitetura  SceneManager  Responsável por desenhar cenas e objetos;  SceneNode  Encapsula posicionamento e objetos da cena;  Entity  Qualquer elemento com uma malha (mesh) ‏ ;  Root  SceneNode especial. Usa padrão Singleton. 9

10 Introdução à Multimídia - UFPE/CIn Root  Ponto de partida da aplicação. Todos os objetos são atingíveis deste objeto;  Acesso aos fundamentos do sistema  Sistemas de renderização;  Acesso às demais classes do sistema;  Deve ser construído antes de chamar qualquer operação do sistema Ogre.  Depois de instanciado pode ser acessado por: Root :: getSingleton() ou Root :: getSingletonPtr(). 10

11 Introdução à Multimídia - UFPE/CIn SceneManager  É uma abstração representando o que é mostrado no mundo virtual;  Responsável por iterar sobre os objetos que contém e desenhá-los na tela;  Pode ser de vários tipos:  ST_GENERIC  ST_EXTERIOR_CLOSE  ST_EXTERIOR_FAR  ST_EXTERIOR_REAL_FAR  ST_INTERIOR 11

12 Introdução à Multimídia - UFPE/CIn SceneNode  Contém instâncias da classe Entity;  Agrupam objetos sem malhas, como luzes, sombras, câmeras e partículas;  Podem possuir SceneNodes filhos, gerando assim uma hierarquia de cenas;  Possuem sua posição sempre relativa ao SceneNode pai. 12

13 Introdução à Multimídia - UFPE/CIn Entity  Podem ser imaginados como os objetos 3D com malha (mesh) que devem ser desenhados na tela;  São os objetos propriamente renderizáveis na cena;  Deve ser adicionado a um SceneNode para adquirir a informação de posicionamento e orientação. 13

14 Introdução à Multimídia - UFPE/CIn Entity  Podem possuir SubEntity  Se qualquer operação que mudar a orientação ou coordenadas da Entity pai for efetuada, as SubEntitys sofrerão modificações;  São exemplos de Entity e SubEntity  Um mesh de um carro como Entity;  Os pneus com SubEntitys se movimentando junto com o carro. 14

15 Entity - Mesh Introdução à Multimídia - UFPE/CIn15

16 Introdução à Multimídia - UFPE/CIn Coordenadas e Vetores  Sistema de Coordenas Canônicas  X e Z plano horizontal  Y eixo vertical  Classe Vector  Origem em (0,0,0)  Responsável pela representação:  Posição e Direção  Dimensões  2 – Classe Vector2  3 – Classe Vector3  4 – Classe Vector4  Não há uma classe para representar um ponto y z x 16

17 Introdução à Multimídia - UFPE/CIn Redimensionamento  Redimensionando um objeto  sceneNode->scale(x, y, z);  sceneNode->scale( Vector(x, y, z));  Exemplo:  Funciona de maneira proporcional a escala já existente  Ex:  sceneNode->scale(3, 2, 4);  sceneNode->scale(0.3, 0.7, 0.5); 17

18 Introdução à Multimídia - UFPE/CIn Rotação  Rotaciona um objeto  Em torno do eixo X  Usando o método pitch:  SceneNode->pitch( Degree ( x ) );  Usando o método yaw  SceneNode->yaw( Degree ( y ) );  Usando o método roll  SceneNode->roll( Degree ( z ) );  Rotacionando em um eixo qualquer  SceneNode->rotate( Vector (x,y,z) ); 18

19 Introdução à Multimídia - UFPE/CIn Rotação  Exemplos de Uso:  Usa-se pitch para rotacionar para cima ou para baixo do eixo x  Ex: quando se está voando com um jato;  Ex: quando se está dirigindo um carro para subir ou descer uma colina;  Usa-se o yaw para rotacionar para esquerda ou direita em torno do eixo y  Ex: quando se está dirigindo um carro.  Usa-se o roll para rotacionar de forma inclinada, em torno do eixo z.  Ex: O que acontece com o carro quando se tira de uma curva demasiadamente rápida. 19

20 Introdução à Multimídia - UFPE/CIn O que são Scripts?[1]  Simples arquivos de texto que fazem calls a engine de Ogre, de alguns recursos por ela suportados  Facilidade e rapidez no desenvolvimento  Permite reuso, sem ligação a um particular código fonte 20

21 Introdução à Multimídia - UFPE/CIn O que são Scripts?[2]  Sem necessidade de recompilação do código quando parâmetros são mudados, o script simplesmente é relido  Testes mais rápidos;  Código mais claro. 21

22 Introdução à Multimídia - UFPE/CIn Scripts OGRE.  Initialization Scripts;  Material Scripts;  Particle Scripts;  Overlay Scripts;  Font Definition Scripts. 22

23 Initialization Scripts  Definição dos paths necessários a aplicação(ogre.cfg);  Load dos plugins(plugins.cfg);  path folders de outros scripts e demais recursos(resources.cfg). 23 Introdução à Multimídia - UFPE/CIn

24 Material Scripts[1/3]  Definição simples e rápida de materiais complexos;  Podemos, para facilitar o entendimento, definir mais de um material dentro de um único file `.material`, aconselha-se que estes guardem uma relação semântica entre si. 24

25 Introdução à Multimídia - UFPE/CIn Material Scripts[2/3]  Estrutura  Material;  Technique;  Pass;  Texture_unit;  Technique é a mais relevante pois define o path para se obter um dado efeito, sua ordem é importante (different environments). 25

26 Material Scripts[3/3] 26 Introdução à Multimídia - UFPE/CIn

27 Particle Scripts[1/2]  Definição de sistemas de partículas independente do source program;  Esses scripts são carregados no momento da inicialização da aplicação. 27

28 Particle Scripts[2/2] 28Introdução à Multimídia - UFPE/CIn

29 Overlay Scripts [1/3]  Definição de overlays em um script;  Abre possibilidade de reuso;  Carregado pelo sistema durante sua inicialização;  Único script pode conter vários overlays;  Dentro do overlay podem existir vários elementos 2D e 3D. 29

30 Introdução à Multimídia - UFPE/CIn Overlay Scripts [2/3] Único Overlay com dois panels 30

31 Introdução à Multimídia - UFPE/CIn Overlay Scripts [3/3]  Formas padrão  Panel e BorderPanel são containers;  TextArea, TextBox são elements;  BorderPanel[tamanho das bordas, material usado];  TextArea[nome da fonte, cor e altura dos caracteres];  TextBox [TextArea e um Panel de fundo]. 31

32 Introdução à Multimídia - UFPE/CIn Font Definition Scripts [1/2]  Ogre usa textura baseda em fontes para renderizar a TextAreaOverlayElement;  Podemos usar também o Font Object para esta tarefa;  Existem dois caminhos para indicar a fonte a OGRE  Desenvolva a textura da fonte você mesmo usando algum pacote de auxílio ou uma ferramenta de geração automática;  Deixe Ogre gerar a fonte baseado na truetype font(melhor performance). 32

33 Font Definition Scripts [2/2] { type source...... custom attributes depending on type } 33Introdução à Multimídia - UFPE/CIn

34 Overlays  São utilizados para exibir na tela elementos 2D ou 3D sobre o conteúdo;  Normal;  Head-up Displays (HUDs);  Menu;  Status;  Painéis. 34Introdução à Multimídia - UFPE/CIn

35 Exemplo  Ogre oferece por padrão um mostrador da taxa de frame. 35

36 Introdução à Multimídia - UFPE/CIn Criação  Através de código ou scripts;  Código: SceneManager :: createOverlay;  Porém, scripts são mais utilizados;  Overlays são exibidos após o método ‘show()’;  Overlays são exibidos uns sobre os outros, respeitando a ordem de definida através de Overlay :: setZOrder(). 36

37 Classe OverlayElement  Todo item que pode ser incluído a um overlay, é derivado desta classe;  Usuários devem criar suas próprias subclasses;  Atributos comuns: Tamanho, posição, material, etc...  Subclasse nativa do ogre: OverlayContainer -> pode conter outros OverlayElements, agrupando-os.  Provê sistema de coordenadas local. 37Introdução à Multimídia - UFPE/CIn

38 OverlayManager  Utilizado quando se deseja criar elementos 2D e acrescentar a um Overlay (ou container);  Ex: OverlayManager :: getSingleton().createOverlayElement("Panel“, "myNewPanel");  Para adicionar elementos a um overlay: Overlay::add2D. Apenas Containers podem ser adicionados diretamente a um Overlay, estabelecendo a ordem que seu conteúdo irá ser exibido;  OverlayContainer :: addChild -> adiciona elementos (ou containers) a um container. 38

39 Introdução à Multimídia - UFPE/CIn  Pixel Mode / Relative Mode;  Alinhamento;  Posição/tamanho;  Material;  Caption;  Transformando Overlays -> Overlay :: scroll, Overlay :: rotate, Overlay :: scale. Atributos: 39

40 Interface  Overlays foram feitos para elementos não interativos;  Para criar GUIs -> http://www.cegui.org.uk. 40Introdução à Multimídia - UFPE/CIn

41 Ambiente de desenvolvimento.  A instalação do SDK (Software Development Kit) pré- compilado é feita de maneira bastante intuitiva e rápida (através de um wizard);  Ao fim do processo, um diretório é criado contendo as bibliotecas e os arquivos de cabeçalho necessários para desenvolver as aplicações. Introdução à Multimídia - UFPE/CIn41

42 Ambiente de desenvolvimento. Introdução à Multimídia - UFPE/CIn42

43 Ambiente de desenvolvimento.  Após a instalação, o wizard cria uma variável de ambiente chamada OGRE_HOME que contém o caminho do diretório onde o SDK foi instalado;  A IDE utilizada é o Visual C++ 2003;  É necessário ainda o download de algumas bibliotecas que são pré-requisitos para a compilação do OGRE e das suas ferramentas;  O OGRE também tem como pré-requisito a instalação do DirectX 9.0. Introdução à Multimídia - UFPE/CIn43

44 Inicialização de Scripts  Fazem parte dos scripts de inicialização os arquivos “plugins.cfg”, “ogre.cfg” e “resources.cfg”;  Eles são responsáveis, respectivamente, pelo carregamento dos plugins, autopreenchimento das opções de configuração e definição de caminhos para os recursos utilizados pela aplicação. Introdução à Multimídia - UFPE/CIn44

45 Inicialização de Scripts.  Cada arquivo tem seu formato específico. No caso do arquivo “plugins.cfg” existe uma configuração chamada de PluginFolder, que aponta para a pasta onde estarão localizados todos os plugins listados no arquivo;  O arquivo “resources.cfg” é formado de diretivas Zip e FileSystem, que apontam respectivamente para arquivos compactados no formato zip e para pastas onde o OGRE procurará por mais arquivos de scripts e recursos utilizados na aplicação. Introdução à Multimídia - UFPE/CIn45

46 Facilidades oferecidas pelo OGRE.  Elas estão descritas em três subseções intituladas Geração de Sombras, Render-to-Texture e Mouse Picking;  Aplicações mais agradáveis para o usuário, tanto do ponto de vista visual quanto do de interação;  Geração de sombras é um aspecto importante na busca pelo realismo de uma cena, pois ajuda na percepção da distância entre os objetos. Introdução à Multimídia - UFPE/CIn46

47 Facilidades do OGRE.  Geração de Sombras  OGRE suporta três tipos de cálculos de sombra:  Texture Modulative, Stencil Modulative, Stencil Additive;  Render-to-Texture  Render-to-Texture consiste numa técnica para renderizar cenas em texturas que são utilizadas em materiais para torná-los reflexivos. Introdução à Multimídia - UFPE/CIn47

48 Facilidades do OGRE.  Mouse Picking  Uma rotina bastante comum em aplicativos 3D é a seleção de objetos da cena utilizando o mouse, a qual é denominada Picking;  Picking padrão implementado no OGRE detecta os objetos com base no AxisAlignedBox dos objetos, o que faz com que os resultados sejam imprecisos, porém rápidos. Introdução à Multimídia - UFPE/CIn48

49 Facilidades do OGRE.  Um AxisAlignedBox é um tipo de BoudingBox que sempre está alinhado com o eixo de coordenadas do mundo, assim, mesmo que os objetos sejam rotacionados seus BoudingBoxes continuarão alinhados;  Se a aplicação requisitar uma forma mais acurada de Picking, esta deverá ser implementada pelo desenvolvedor. Introdução à Multimídia - UFPE/CIn49

50 Dúvidas? Introdução à Multimídia - UFPE/CIn50


Carregar ppt "Equipe: Durval Augusto Elton Magalhães Dihego Oliveira Natanael Silva Rafael Araujo Vladimir Alves Introdução a Multimídia Estudo sobre OGRE Object Oriented."

Apresentações semelhantes


Anúncios Google