Ogre 3d

O que é o OGRE 3D?

O OGRE (Object-Oriented Graphics Rendering Engine, ou Engine de Renderização de Gráficos Orientada a Objetos) é uma engine em 3D flexível, orientada a cenas escrita em C++, feita para facilitar a produção de aplicativos usando gráficos em 3D acelerados por hardware. A classe da biblioteca abstrai todos os detalhes de usar bibliotecas como Direct3D e OpenGL e provê uma interface baseada em objetos e outras classes intuitivas.

O OGRE possuí uma grande flexibilidade e permite que VOCÊ escolha as outras bibliotecas que melhor se adaptam ao seu projeto.

O OGRE é uma das melhores engines 3d de código-fonte aberto, senão a melhor. Seu foco é a parte de renderização, portanto ausentando funções como I/O, Networking, etc… Ela é gratuita e está disponível no site: Site oficial da Ogre.

Versão Atual: 1.7

Características do OGRE 3D

Características de produtividade

  • Interface simples e fácil de usar orientada a objetos feita para minimizar o esforço necessário para renderizar cenas em 3D e ser independente de implementações de 3D, exemplo: Direct3D/OpenGL.
  • Framework de exemplo extensiva permite você colocar seu aplicativo para rodar rápido e fácil.
  • Requisitos comuns como manejo de render states, spatial culling, mexendo com transparências são feitas para você automaticamente, poupando tempo precioso.
  • Design limpo e organizado com documentação completa de todas as classes da engine.
  • Comprovado, engine estável usada em vários produtos comerciais.

Suporte a plataformas e 3D APIs

  • Suporte a Direct3D e OpenGL.
  • Suporte a Windows (todas as principais versões), Linux e Mac OSX.
  • Compila no Visual C++ e Code::Blocks no Windows.
  • Compila no GCC 3+ no Linux / Mac OSX (usando XCode).

Suporte a Material / Shader

  • Poderosa linguagem de declaração de materiais permite manter os materiais fora de seu código.
  • Suporta Vertex e Fragment programs (shaders), tanto programas em baixo-nível escritos em assembler como programas em alto-nível escritos em Cg, DirectX9 HLSL, ou GLSL e provê suporte automático para várias constantes comuns como matrizes de worldview, informações de estado de luz e object space eye position, etc.
  • Suporta todos os operadores de função fixa como multitexture e multipass blending, geração de coordenada de texturas e modificação, operações de alpha e cores independentes para hardware não-programável ou para materiais de baixo custo.
  • Suporta efeitos com vários "passes", com interação se necessário.
  • Suporte para múltiplas técnicas de materiais significa que você pode fazer efeitos alternativos para uma grande variedade de placas e o OGRE automaticamente usa o que é melhor suportado.
  • Suporte a Material LOD (Level of Detail, ou Nível de Detalhe), permite que seus materiais possam reduzir o custo de acordo com o quão distantes eles ficam.
  • Carregar texturas de arquivos PNG, JPEG, TGA, BMP ou DDS, incluindo formatos incomuns como texturas 1D, texturas volumétricas, cubemaps e texturas comprimidas (DXT/S3TC).
  • Texturas podem ser providas em tempo real por plugins, por exemplo uma alimentação de vídeo.
  • Suporte a texturas projetivas fácil de usar.

Meshes (Malhas)

  • Formatos de malhas flexíveis são aceitos, separação dos conceitos de vertex buffers, index buffers, vertex declarations e buffer mappings.
  • Biquadric Bezier patches para superfícies curvadas.
  • Malhas progressivas (LOD), geradas manualmente ou automaticamente.
  • Agrupamento de geometria estática.

Animação

  • Suporte sofisticado de animação por esqueletos.
    • Combinação de várias animações com pesos variáveis.
    • Skinning com peso de "bones" multiplos/variáveis.
    • Pipelines de skinning em software ou hardware com compartilhamento de buffer inteligente.
    • Controle de bones manual.
    • Modos de interpolação configurável, troca de precisão por velocidade.
  • Suporte de animação de formas flexíveis.
    • Morph animation para aplicativos onde você deseja fazer simples combinações lineares entre formatos.
    • Pose animation para animação de superfícies modernas, permitindo combinar várias poses com pesos variáveis ao longo de uma timeline, por exemplo expressão / formas da boca para fazer animações faciais.
    • Ambas as técnicas podem ser implementadas em hardware ou software dependendo do suporte de hardware.
  • Animação de SceneNodes para caminho de câmeras e técnicas similares, usando interpolação de spline quando necessário.
  • Trilhas de animação genéricas podem aceitar objetos plugáveis para possibilitar animar qualquer parâmetro de qualquer objeto ao longo do tempo.

Características de Cena

  • Administração flexível de cenas, altamente personalizável, liago a nenhum tipo de cena. Use classes pré-definidas para organização das cenas se elas servirem ou então coloque suas próprias subclasses para ganhar controle total sobre a organização das cenas.
  • Vários plugins exemplo demonstram várias formas de manipulação da cena específica para um tipo particular de layout (ex: BSP, Octree).
  • Gráfico de cena hierárquico; nodes permitem objetos serem anexados uns aos outros e seguir o movimento dos outros, estruturas articuladas e etc.
  • Várias técnicas de renderização de sombras, tanto técnicas modulativas como aditivas, stencil e texturizadas, cada uma altamente configuável e tomando total vantagem de qualquer aceleração de hardware disponível.
  • Características de consulta de cena.

Efeitos Especiais

  • Sistema de "Compositor", permitindo que efeitos de postprocessing em tela-cheia sejam definidos facilmente, via scripts se desejado.
  • Sistema de Partículas, incluindo emissores extensíveis, affectors e renderizadores (personalizável através de plugins). Sistemas podem ser definidos em scripts de texto para fácil modificação. Uso automático de "particle pooling" para máxima performance.
  • Suporte a Skyboxes, Skyplanes e Skydomes, muito fácil de usar.
  • Billboarding para sprites.
  • Ribbon trails (rastro).
  • Objetos transparentes administrados automaticamente (ordem de renderização e depth buffer todos já configurados para você).

Outras Características

  • Infraestrutura comum de recursos para administração de memória e carregamento de arquivos comprimidos (ZIP, PK3).
  • Arquitetura de plugins flexível permite a engine ser estendida sem precisar recompilar.
  • "Controllers" permitem organizar valores derivados entre objetos de forma fácil, ex: mudar a cor de uma nave baseado nos escudo restante.
  • Debugging memory manager para identificar vazamento de memória (memory leak).
  • ReferenceAppLayer provê um exemplo de como combinar o OGRE com outras bibliotecas, por exemplo ODE para colisão e física.
  • XMLConverter para converter formatos eficientes em binário para/de arquivos XML.

Homenagens

"Nós estamos atualmente usando o Ogre3D em nosso simulador naval. Depois de testar outras engines gráficas em 3d, Ogre3D foi de longe a melhor combinação de qualidades: código limpo e legível, documentação excelênte, e uma grande comunidade.

Estas três características me fizeram escolher ele e até agora, depois de quase um ano e meio, Eu nunca me arrependi desta decisão. Ogre3D nos ajudou muito ao acelerar a fase de protótipo, testar novas técnicas para os algorítimos de física de forma realmente rápida, e como parte de minha Argo Engine, servindo realmente bem como módulo de apresentação."
Alvaro Pereyra Rabanal
Consultor Independente para a Marinha Peruana

"As características completas do Ogre, junto com a API bem feita e bem documentada foi a escolha perfeita para nossos próximos títulos. A engine nos possibilita usar tecnologia de ponta sem precisar gastar centenas de milhões de dólares para taxas de licenciamento que é inviável para pequenos times com o orçamento apertado. As questões nos fóruns nuca ficaram sem ser respondidas, o suporte também deixa pouco a desejar. E se ainda tem algo que você não pode fazer por si mesmo, sempre tem a Torus Knot Software em volta para te ajudar."
Thorsten Lange
Deck13 Interactive GmbH

"O Ogre é um brilhante sinal do desenvolvimento em código-aberto. Ostentando uma engine de renderização rápida e versátil, uma API elegante e simples e uma comunidade encorajadora que não deixa questões sem resposta, Ogre oferece um produto que vai além das engines de renderização comerciais. Ogre provou por a si mesmo como um habilitador de rápido desenvolvimento de aplicativos em 3D."
Time de Desenvolvimento da 3DNA

"Ogre nós proveu com uma sólida e confiável base para criar uma poderosa plataforma comercial. Ele provê um nível suficiente de abstração dos sistemas de renderização subjacentes para prover uma interface muito simples balanceada com o poder de chegar até o hardware se necessário.

Como uma aprovação para sua estabilidade, ele funcionou notávelmente bem em um ambiente embutido. A portabilidade transparente pemitiu o desenvolvimento em um ambiente Microsoft e subsequente desenvolvimento no Linux com uma facilidade sem sofrimentos. Com o constante desenvolvimento em uma comunidade crescente e cada vês mais encorajadora, nós temos planos em usar essa engine ainda por muitos anos a vir."
Chris Pratt
Diretor Técnico, AGD Design Ltd.

"Quando nós estávamos criando o Blink 3D nós sabiamos que para levar o 3D da Web para um próximo nível nós precisaríamos de uma engine com gráficos de ponta e de alta performance. Em nossa pesquisa nós examinamos e instantâneamente descartamos um número de engines gráficas respeitadas tanto comerciais quanto código aberto.

Quando olhamos para o Ogre nós notamos na hora, ele facilmente preencheu nosso critério e ainda mais. A arquitetura limpa, extensível e orientada a objetos se adaptava as nossas necessidades. Alguns projetos de código aberto freqüentemente consistem de códigos espaguete, não-mantíveis e obscuros. Eu acho que a coisa que mais gostei sobre o Ogre, é que eu não me sinto forçado a tomar banho cada vez que eu toco no coódigo."
Clive Jackson
CEO, Pelican Crossing, Inc.

"Para o desenvolvedor temperado o OGRE parece diferente. É como a faca de aço de carbono que meu amigo usa para cortar sushi no restaurante dele. Enganosamente simples, e ainda sim uma ferramenta muito potente na mão de um artesão. Uma única lâmina, um único propósito. O Zen das engines em 3D. "
Kai-Peter Backman
ShortHike.com

"Durante o desenvolvimento de Supremacy: Four Paths to power eu tive o prazer de usar Ogre para criar os efeitos de partículas e a funcionalidade do GUI que nosso jogo precisava. Devido a seu design orientado a objetos, foi fácil pegar o Ogre e começar a gerar o conteúdo funcional rápidamente. Por exemplo, se você pode aprender agora como usar um tipo de gerador de partículas no Ogre, você já sabe 90% do que você precisa usar para todos os outros tipos.

Em adição, criar scripts para componentes da interface é uma brisa desde que o jeito do Ogre é limpo e avançado. Em quando você pode (e nós fizemos) manipular os componentes do GUI através de código para efeitos avançados, é fácil colocar o GUI para rodar rápidamente. O design bem documentado do Ogre faz ele ótimo tanto para protótipo e para costumização de um produto já pronto."
Vance Vagell
Supremacy: Four Paths To Power

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.