sexta-feira, 21 de outubro de 2011

O Quê É OGRE

OGRE (sigla para Object-oriented Graphics Rendering Engine, do inglês, motor/engine de renderização gráfica orientado a objetos) é uma engine gráfica 3D escrita em C++ e desenvolvida para facilitar a produção de aplicações que utilizam hardware de aceleração gráfica. O OGRE utiliza bibliotecas gráficas como OpenGL e Direct3D mas sua API abstrai todos os detalhes de implementação, fornecendo uma interface intuitiva orientada a objetos.


OGRE pode ser usado para criar jogos?


Apesar de ser utilizado no desenvolvimento de muitos jogos, OGRE não é uma engine de games. Sua biblioteca fornece apenas soluções gráficas universais e pode ser unida a outras API's (que forneçam sonorização, inteligência artificial, colisões, etc.) para criar games.

Nem todo mundo que precisa da biblioteca quer usá-la pra desenvolver jogos. Por isso, a engine é construída com o propósito de ser utilizada para diversas finalidades: jogos, simulações, aplicações comerciais, qualquer coisa. Além disso, dentro da própria indústria de games os requisitos podem variar bastante.

Por exemplo: um MMORPG irá precisar de uma API que forneça muitas funcionalidades de rede, o que não acontece com um FPS ou um simulador de voo - que precisa de funcionalidades específicas para colisões / física. Se OGRE fosse dispor de todas essas características, teria que impor um conjunto determinado de API's a serem usadas.  Em vez disso, a engine favorece a fácil integração de sua API com quaisquer outras que você quiser usar na sua aplicação.

A proposta do OGRE é permanecer sempre independente e flexível o suficiente para ser utilizado por qualquer outra biblioteca que queira dispor de suas funcionalidades - através de colaboração e integração mas não assimilação. Esse é um princípio dogmático na área de projeto baseado em componentes.


Por que usar OGRE em vez das outras milhares de bibliotecas gráficas que existem por aí?


Muitas outras engines, apesar de impressionar com suas técnicas, falham em relação à coesão do projeto e consistência da documentação para permitir que sejam utilizadas eficientemente. Muitas delas têm extensas listas de funcionalidades mas parecem um aglomerado de "tecnologias demo", sem uma visão clara que as integre.

Como acontece em outros sistemas de software, essa falha se torna sua ruína quando a biblioteca começa a crescer demais. Além disso, a maioria das outras engines é desenvolvida para um estilo específico de jogo ou demo.

OGRE é diferente: cada uma de suas funcionalidades é completamente considerada e inserida no projeto global da forma mais elegante possível e completamente documentada. Isso significa que todas elas são coesas com o todo.

Qualidade é favorecida em lugar de quantidade. Quantidade pode vir depois mas qualidade nunca pode ser adicionada posteriormente. OGRE se utiliza de ótimos princípios de projeto aprendidos, testados e aprovados muitas vezes em avaliações de software comercial. Além da orientação a objetos mencionada na sigla, outro princípio utilizado é o uso frequente de padrões de projeto.

O núcleo do time de desenvolvimento da engine é mantido sempre pequeno e seus integrantes são engenheiros de software experientes com muitos anos de prática no mundo real. Correções são bem-vindas através da comunidade mas passam por uma revisão rigorosa antes de serem aceitas. Tudo para manter a filosofia OGRE de qualidade e coesão.

OGRE não assume que tipo de jogo ou demo você quer fazer. Ele usa uma hierarquia de classes flexível que lhe permite desenvolver plugins que especializam a abordagem de organização da cena para que você possa renderizar qualquer cenário que queira. Quer renderizar ambientes in-door rapidamente? Use o BSP/PVS plugin scene manager que já foi escrito. Quer uma paisagem externa? De novo: use outro plugin scene manager já desenvolvido. O restante da engine continua funcionando exatamente como antes!

Portanto, se você preza por qualidade de projeto, flexibilidade e documentação clara, escolha OGRE!


OGRE é gratuito?


Todos os recursos do OGRE são disponibilizados sob a licença do MIT, o que significa que você pode utilizá-los da maneira que quiser contanto que inclua o conteúdo do arquivo COPYING em algum lugar da aplicação. O código de seu programa ou suas modificações ao OGRE não precisam ser disponibilizadas - mas seria legal que fossem.


Para saber mais a respeito...


Esta postagem foi retirada quase que completamente da seção do site oficial do ogre [http://www.ogre3d.org/about]. Detalhes sobre a licença do OGRE podem ser acessados na seção de licença [http://www.ogre3d.org/licensing].

Os próximos passos pra começar a aprender a utilizar essa poderosa engine são os estudos do manual [http://www.ogre3d.org/docs/manual/] e dos tutoriais [http://www.ogre3d.org/tikiwiki/Tutorials] disponíveis na Wiki [http://www.ogre3d.org/tikiwiki] - que possui fóruns e outras seções muito úteis, principalmente pra quem tá começando agora.

Além disso, é interessante dar uma olhada na documentação da API [http://www.ogre3d.org/docs/api/html/]  e na galeria [http://www.ogre3d.org/gallery/], que contém imagens de projetos bastante motivadoras. Detalhes sobre download e instalação podem ser encontrados em outras postagens deste blog.

Nenhum comentário:

Postar um comentário