OGRE 3 D Open Source Graphics Engine Seminrio

  • Slides: 31
Download presentation
OGRE 3 D Open Source Graphics Engine Seminário Introdução à Multimídia

OGRE 3 D Open Source Graphics Engine Seminário Introdução à Multimídia

Equipe l l Fábio Rocha - frp Paulo Aguila - psrda Thiago Arruda -

Equipe l l Fábio Rocha - frp Paulo Aguila - psrda Thiago Arruda - tan Tiago Vinícius - tvrc 9/19/2021

Roteiro l l l O que é OGRE? Licença Arquitetura – – – l

Roteiro l l l O que é OGRE? Licença Arquitetura – – – l l l Root Scene. Manager Render. System Entity Scene. Node Facilidades Comunidade Exemplos de uso Página Prática 9/19/2021

O que é OGRE? l l l OGRE (Object-oriented Graphics Rendering Engine) Engine gráfico

O que é OGRE? l l l OGRE (Object-oriented Graphics Rendering Engine) Engine gráfico open source Vasta gama de plugins e ferramentas Desenvolvido em C++ Encapsula o uso de bibliotecas como Open. GL e Direct 3 D Provê orientação a objetos 9/19/2021

Licença l Licenciado sob os termos da GNU Lesser Public License (LGPL) l Código

Licença l Licenciado sob os termos da GNU Lesser Public License (LGPL) l Código fonte pode ser adquirido e utilizado em aplicações (comercialmente ou não) gratuitamente 9/19/2021

Arquitetura l l l Vários padrões de projeto Simples e fácil de usar Vários

Arquitetura l l l Vários padrões de projeto Simples e fácil de usar Vários conceitos e abstrações 9/19/2021

Root l l l Ponto de entrada do OGRE Deve ser instanciado antes dos

Root l l l Ponto de entrada do OGRE Deve ser instanciado antes dos outros objetos, pois é responsável por dar origem a todo o sistema e administrar o acesso ao mesmo Root: : show. Config. Dialog() – – Configuração do sistema Detecta as opções disponiblizadas pelos sistemas de renderização (Open. GL e Direct. X) 9/19/2021

Root l l A partir do root é possível obter a referência para outros

Root l l A partir do root é possível obter a referência para outros objetos importantes do sistema Criando uma nova raiz – l temp. Root = new Root(); Outras tarefas desempenhadas pelo Root – – Habilitar o modo de renderização contínua (modo utilizado em jogos) Uso de Frame. Listeners 9/19/2021

Scene. Manager l Reúne e organiza todo o conteúdo da cena – – l

Scene. Manager l Reúne e organiza todo o conteúdo da cena – – l l Objetos Câmera Luzes Sombra. . . Podem ser criados pelo programador Após criada, a cena é enviada ao Render. System pelo Scene. Manager, quando necessário 9/19/2021

Scene. Manager l l l Diferentes tipos de cenas requerem diferentes algoritmos para decidir

Scene. Manager l l l Diferentes tipos de cenas requerem diferentes algoritmos para decidir que objeto pode ser enviado ao Render. System O Scene. Manager foi projetado para ser especializado (subclasses) em um determinado tipo de cena Criando um novo Scene. Manager – Scmgr = temp. Root->create. Scene. Manager(ST_GENERIC, “Name”); 9/19/2021

Render. System l Classe abstrata que define a interface entre o OGRE e a

Render. System l Classe abstrata que define a interface entre o OGRE e a API gráfica utilizada. l Responsável por executar comandos para renderização l Não deve ser acessado diretamente 9/19/2021

Render. System l Inicialização do sistema – l Root: : initialise(); Acesso ao objeto

Render. System l Inicialização do sistema – l Root: : initialise(); Acesso ao objeto Render. System – Root: : get. Render. System(); 9/19/2021

Entity l Instância de um objeto móvel na cena l Possui malha associada (mesh)

Entity l Instância de um objeto móvel na cena l Possui malha associada (mesh) l Várias entidades podem referenciar o mesmo objeto mesh (mais de uma cópia de um objeto em uma cena) 9/19/2021

Entity l Para que uma entidade seja renderizada, é necessário associá-la a um Scene.

Entity l Para que uma entidade seja renderizada, é necessário associá-la a um Scene. Node l Informações relativas à posição, à orientação e à escala não são armazenadas diretamente na entidade l Criação de uma entidade – Entity *entity = Scmgr->create. Entity(“entidade”, “entidade. mesh”); 9/19/2021

Scene. Node l Objeto utilizado para agrupar entidades, luzes, câmeras e objetos móveis l

Scene. Node l Objeto utilizado para agrupar entidades, luzes, câmeras e objetos móveis l Armazena informações relativas à posição, orientação e escala l Associado a uma entidade para torná-la visível 9/19/2021

Scene. Node l l Gerencia rotação e redimensionamento de objetos Um Scene. Node pode

Scene. Node l l Gerencia rotação e redimensionamento de objetos Um Scene. Node pode conter outros do mesmo tipo – l Criação de um Scene. Node – l Posições são relativas ao objeto Pai Scene. Node *teste = Scmgr->get. Root. Scene. Node()>create. Child. Scene. Node(“teste. Node”); Associação com uma entidade – teste -> attach. Object (entity ); 9/19/2021

Facilidades l Possibilitam aos desenvolvedores implementar aplicações mais agradáveis para o usuário – –

Facilidades l Possibilitam aos desenvolvedores implementar aplicações mais agradáveis para o usuário – – l Visual Interação Geração de sombras – – – Realismo de uma cena Percepção da distância entre os objetos Várias formas 9/19/2021

Facilidades l Render-to-Texture – – l Renderizar cenas em texturas Tornar os materiais reflexivos

Facilidades l Render-to-Texture – – l Renderizar cenas em texturas Tornar os materiais reflexivos Mouse Picking – – Usada em aplicativos 3 D Seleção de objetos 9/19/2021

Comunidade l OGRE Wiki – – l l l Características Instalação Utilização API Fórum

Comunidade l OGRE Wiki – – l l l Características Instalação Utilização API Fórum Testimoniais IRC 9/19/2021

Exemplos de uso Mapeamento com 3 luzes 9/19/2021

Exemplos de uso Mapeamento com 3 luzes 9/19/2021

Exemplos de uso Shading 9/19/2021

Exemplos de uso Shading 9/19/2021

Exemplos de uso Reflexão e Refração 9/19/2021

Exemplos de uso Reflexão e Refração 9/19/2021

Exemplos de uso 9/19/2021

Exemplos de uso 9/19/2021

Exemplos de uso 9/19/2021

Exemplos de uso 9/19/2021

Exemplos de uso 9/19/2021

Exemplos de uso 9/19/2021

Exemplos de uso l Demos – – – BSP Water Facial. Animation 9/19/2021

Exemplos de uso l Demos – – – BSP Water Facial. Animation 9/19/2021

Página l www. ogre 3 d. org 9/19/2021

Página l www. ogre 3 d. org 9/19/2021

Prática l Como as malhas podem ser exportadas para utilização no OGRE? l Diga

Prática l Como as malhas podem ser exportadas para utilização no OGRE? l Diga como é feito o uso de Texturas no OGRE l Cite uma facilidade do OGRE, descrevendo seu funcionamento 9/19/2021

Prática l l l Setar a variável de ambiente do usuário OGRE_HOME com o

Prática l l l Setar a variável de ambiente do usuário OGRE_HOME com o endereço C: TempOgre. SDK Abra o Visual Studio. NET 2003 Crie um novo Projeto – l l New->Project Na opção Visual C++, escolha OGRE SDK Application Escolha qualquer nome e a localidade em C: TempOGRE 9/19/2021

Prática l l Na tela OGRE Application Wizard, clique em Finish Dê um build

Prática l l Na tela OGRE Application Wizard, clique em Finish Dê um build em seu projeto Rode o projeto teste de C: TempOgre. SDKbindebug Em Rendering Subsystem, escolha a opção do Open. GL 9/19/2021

Prática l A partir do projeto exemplo, faça as seguintes alterações: – – –

Prática l A partir do projeto exemplo, faça as seguintes alterações: – – – Mude a posição da câmera para uma visão superior do OGRE Mude a cor da fonte de luz para vermelho Mude a posição da fonte de luz para o lado direito do OGRE 9/19/2021