OGRE - Le Bottin des Jeux Linux

OGRE

Specifications

Title: OGRE Type: Tool
Genre: Development Status:
Category: Development ➤ Engine ➤ 2D & 3D ➤ Misc. Commercial:
Tags: IDE; 3D rendering engine; OGRE engine; Multi-platform; Animation Toolset; Realistic Materials; Mesh and Skeletal Animation; Particle system Demo:
Released: OGRE-Next: Latest : 2.1 / Dev : 2.2.4 Cerberus / C8a0c23 / OGRE1: Latest : 1.12.9 / Dev : D1aae44 Package Name: libogre-dev
Date: 2020-09-25 Extern Repo:
License: MIT Repo: Debian
Perspective: Third & First person Package: ✓
Visual: 2D & 3D Binary: ✓
Pacing: Real Time Source: ✓
Played: Single & Multi PDA:
Quality (record): 5 stars Quality (game):
Contrib.: Goupil & Louis ID: 12122
Created: 2011-09-15 Updated: 2020-10-01

Summary

[fr]: Un moteur libre, multiplateforme et flexible orienté vers le rendu de scènes 3D accélérées matériellement (pas de rendu logiciel) supportant Direct3D et OpenGL. Il ajoute une couche d'abstraction entre l'API et les plateformes et ainsi permet un codage orienté scène au travers d'un modèle d'objet facile à utiliser. Il est adaptable à de multiples types de scènes (internes ou externes). [en]: A libre, multi-platform and flexible engine oriented towards hardware-accelerated 3D scene rendering (no software rendering) supporting Direct3D and OpenGL. It adds an abstraction layer between the API and the platforms and thus allows scene oriented coding through an easy to use object model. It is adaptable to multiple scene types (internal or external).

Videos

Version courante / Current release (OGRE 1: 1.12) : Gamefromscratch,


Version courante / Current release (OGRE-next: 2.1) : Gamefromscratch,


Fonctionnalités / Features :


Quelques exemples / Some examples (Showcase) :

Links

Website & videos
[Homepage] [Dev site] [Features/About 1 2] [Screenshots] [WIKI] [FAQ]

OGRE-next : [Dev site] [RSS] [Changelog 1 2 3] [Videos ft ft ft ft t ts gd gu id r(2.1) r lp d d d d d d d d d d d g[fr] g[de] g[ru] g[pl] g[cz] g[sp] g[pt] g[it] g[tr] g g]
OGRE1 : [Dev site] [RSS] [Changelog 1 2 3] [Videos t ts gd gu id r(1.12) lp g g[fr] g[de] g[ru] g[pl] g[cz] g[sp] g[pt] g[it] g[tr] g g]

Commercial : [Support their work (Donate)]

Resources
• (empty)
Technical informations
[Open Hub] [List of links to Games, Utilities, ... using Ogre]

Social
Devs (The OGRE Team 1 2a 2b 3a 3b [fr] [en]) : [Site 1 2] [mastodon] [twitter] [PeerTube] [YouTube] [Interview 1 2]
Game : [Blog] [Forums] [twitter] [YouTube]

On other sites
[Wikipedia (OGRE) [fr] [en] [de]]
[Debian] [Mod DB] [Indie DB]

Reviews


News / Source of this Entry (SotE) / News (SotN)
[Changes with OGRE-next v. 2.2.4 Cerberus (unstable) (20200924)]
[Changes with OGRE-next v. 1.12.9 (stable) (20200920)]
[HOLaRSE on Mastodon [de] (20200926) (SotN)] [Gaming on Linux (20200930)]

Description [fr]

Un moteur multiplateforme et flexible orienté vers le rendu de scènes 3D accélérées matériellement, par The OGRE Team.
En C++.

OGRE (Object-Oriented Graphics Rendering Engine, Ogre 3D) est un moteur libre, multi-plateforme et flexible orienté vers le rendu de scènes 3D accélérées matériellement (pas de rendu logiciel). Il supporte à la fois Direct3D et OpenGL. C'est un moteur polyvalent et très utilisé, permettant d'ajouter une couche d'abstraction entre l'API et les plateformes et ainsi d'effectuer un codage orienté scène au travers d'un modèle d'objet facile à utiliser. Il est adaptable à de multiples types de scènes (internes ou externes).


À propos

OGRE (Object-Oriented Graphics Rendering Engine) est un moteur 3D flexible, orienté vers les scènes et écrit en C++, conçu pour permettre aux développeurs de produire plus facilement et plus intuitivement des applications utilisant des graphiques 3D accélérés par le matériel. La bibliothèque de classes résume tous les détails de l'utilisation des bibliothèques système sous-jacentes comme Direct3D et OpenGL et fournit une interface basée sur des objets du monde et d'autres classes intuitives.

Que peut-il faire ?

Beaucoup de choses ! Consultez la page des fonctionnalités pour obtenir une liste actualisée des fonctionnalités actuelles. Jetez également un coup d'œil à la page des captures d'écran pour vous rendre compte par vous-même du genre de bonbons pour les yeux qu'OGRE est capable de pomper.

OGRE est-il un moteur de jeu ?

Non. OGRE peut être (et a été) utilisé pour créer des jeux, mais OGRE est délibérément conçu pour fournir uniquement une solution graphique de classe mondiale ; pour d'autres fonctionnalités comme le son, la mise en réseau, l'IA, les collisions, la physique, etc., vous devrez l'intégrer à d'autres bibliothèques, ce que plusieurs frameworks ont fait, et nous avons une bibliothèque d'intégration de référence pour les collisions / la physique comme exemple dans notre distribution.

Pourquoi ? Eh bien, l'une des raisons est que tous ceux qui ont besoin d'un moteur 3D ne veulent pas faire des jeux, donc nous ne supposons pas que vous en faites - vous pouvez utiliser OGRE pour des jeux, des simulations, des applications commerciales, n'importe quoi. Deuxièmement, même dans l'industrie du jeu, les besoins peuvent varier considérablement ; par exemple, un MMORPG aura besoin d'un type de bibliothèque réseau très différent d'un FPS, et une simulation de vol aura besoin d'un type de système de collision/physique différent de celui d'un jeu de combat. Si OGRE incluait toutes ces fonctionnalités, nous vous imposerions un ensemble particulier de bibliothèques, avec un ensemble intégré d'exigences supposées, et ce n'est pas une bonne conception. Au lieu de cela, nous fournissons une API très facile à intégrer et nous vous laissons choisir les autres bibliothèques, si vous les voulez. De nombreux développeurs de jeux expérimentés ont exprimé leur approbation de cette approche, car il n'y a pas de contraintes intégrées. Cela peut être plus intimidant pour les nouveaux utilisateurs qui veulent juste construire un autre jeu de style FPS, mais pour ces personnes, il existe un nombre croissant de frameworks utilisant OGRE qui fournissent une solution complète en utilisant une combinaison donnée de bibliothèques ; mais il est important de réaliser qu'OGRE lui-même restera toujours séparé, suffisamment flexible pour être incorporé dans l'une d'entre elles. Le principe est la collaboration et l'intégration avec d'autres bibliothèques, plutôt que l'assimilation de celles-ci, un principe standard de conception basée sur les composants.

Pourquoi devrais-je envisager d'utiliser OGRE (plutôt que les autres zillions de moteurs 3D qui existent) ?

De nombreux autres moteurs, bien qu'ils soient techniquement impressionnants, n'ont pas la conception cohésive et la documentation cohérente qui leur permettraient d'être utilisés efficacement. Beaucoup d'entre eux ont une longue liste de fonctionnalités, mais donnent l'impression d'être un tas de démonstrations technologiques attachées ensemble avec de la ficelle, sans vision claire pour les maintenir ensemble. Comme tout autre système logiciel, ils s'effondrent à mesure qu'ils deviennent plus volumineux. La plupart des autres moteurs sont également conçus pour un style particulier de jeu ou de démo (par exemple, les FPS, les Walking Sim).

OGRE est différent. OGRE est basé sur la conception plutôt que sur les fonctionnalités. Chaque fonctionnalité d'OGRE est étudiée de manière approfondie et intégrée dans le design global de la manière la plus élégante possible. Elle est toujours entièrement documentée, ce qui signifie que les fonctionnalités qui s'y trouvent font toujours partie d'un ensemble cohérent. La qualité est privilégiée par rapport à la quantité, car la quantité peut venir plus tard - la qualité ne peut jamais être ajoutée rétrospectivement. OGRE utilise de solides principes de conception appris, éprouvés et testés à maintes reprises dans des logiciels de qualité commerciale - l'orientation objet mentionnée dans son nom n'est qu'une de ces approches - l'utilisation fréquente de modèles de conception en est une autre. L'équipe centrale de développement est délibérément réduite et tous ses membres sont des ingénieurs en logiciel chevronnés ayant de nombreuses années d'expérience dans le monde réel. Les correctifs sont les bienvenus de la part de la communauté, mais ils font l'objet d'un examen strict pour en vérifier la qualité et la cohésion avec la philosophie Ogre avant d'être acceptés.

OGRE ne présume pas du type de jeu ou de démo que vous voulez faire. Il utilise une hiérarchie de classes flexible qui vous permet de concevoir des plugins spécialisés dans l'approche de l'organisation de la scène, afin de vous permettre de créer n'importe quel type de scène que vous aimez. Vous voulez rendre des niveaux d'intérieur rapidement ? Très bien, utilisez le gestionnaire de scène du plugin BSP/PVS qui a déjà été écrit. Vous voulez un paysage d'extérieur ? Là encore, utilisez un autre gestionnaire de scène. Le reste du moteur continue à fonctionner exactement comme avant.

En bref, si vous privilégiez la qualité de la conception, la flexibilité et une documentation claire, choisissez OGRE. Vous savez que cela a du sens. 😉

Est-ce vraiment gratuit ?

Le source Ogre est disponible sous la licence MIT, ce qui signifie que vous pouvez l'utiliser comme vous le souhaitez à condition d'inclure le contenu de notre fichier COPYING quelque part dans votre application. Le source de votre application, ou vos modifications d'Ogre n'ont pas à être publiés (bien que ce serait bien si vous le faisiez). Consultez la page des licences pour connaître les conditions de licence complètes.


Ogre est un moteur de rendu graphique 3D. À ne pas confondre avec un moteur de jeu qui fournit des informations sur le réseau, le son, la physique, etc.

Ogre 2.2 a fait l'objet d'une refonte importante pour se concentrer sur des graphiques de haute performance utilisant la conception orientée données avec :

• une disposition des entités et des nœuds adaptée au cache
• Traitement par lots des nœuds, Frustum Culling et autres techniques telles que Forward Clustered
• Traitement SIMD utilisant la disposition de la mémoire AoSoA (Array of Structures of Arrays)
• Texture chargée via la diffusion en arrière-plan

Ogre convient donc aux projets qui visent à avoir un grand nombre d'objets à l'écran ou qui ont des budgets de rendu serrés, comme la Réalité Virtuelle.

OGRE n'est pas un, mais deux projets "frères". Ils sont liés, mais ils ne sont pas identiques • comme s'ils n'étaient pas compatibles entre eux. Vous risquez de ne pas savoir quelle version choisir. Les informations ci-dessous vous aideront à trouver la version qui correspond à vos besoins :

Ogre1

• Vous avez besoin de plugins/composants principaux et externes (CEGUI, ParticleUniverse, Terrain, Volume, etc.)
• Vous voulez programmer en Python/ C#/ Java
• Vous ciblez les plateformes mobiles (Android, iOS, WebGL, Windows UWP)
• Vous n'avez besoin que d'un nombre modéré (de l'ordre de 1000) d'objets par image
• Vous voulez utiliser un code vérifié (comme dans les tests unitaires)
• Vous aimez apprendre à partir des extraits de code Wiki et de nombreuses ressources existantes trouvées en ligne.
• Vous êtes déjà habitué à Ogre ou vous disposez d'une base de code existante de longue date.
• Vous avez besoin d'un large support matériel, y compris DX9 et OpenGL 1.5.

Ogre Next

• Vous avez besoin de nombreux objets (de l'ordre de 10 000) par image.
• Vous voulez l'énorme gain de performance dans le cas d'utilisation ci-dessus. Votre cible principale est Windows et/ou Linux pour l'instant.
• Vous aimez les performances de pointe.
• Vous connaissez déjà Ogre ou vous pouvez apprendre l'API à partir du code source car la documentation est encore rare
• Vous n'avez pas besoin des plugins/composants principaux et externes qui n'ont pas encore été portés (comme CEGUI, ParticleUniverse, Terrain Component, Volume Component, etc). Consultez le Forum 2.0+ car certains de ces plugins, comme ParticleUniverse, ont été portés par des membres de la communauté.
• Vous ne vous souciez pas du support d'Android (ou de tout ce qui est plus ancien que l'iPhone 5S) pour l'instant et vous pouvez attendre.



Wikipedia :

OGRE (Object-Oriented Graphics Rendering Engine) est un moteur 3D libre multi-plateforme (Linux, Win32, OS X, iOS, Android et Windows Phone 8) orienté scène qui permet à partir d'objets à facettes de réaliser un environnement tridimensionnel qui sera perçu par un rendu bidimensionnel au travers d'une ou plusieurs caméra virtuelle.

OGRE est une couche d'abstraction supplémentaire au-dessus des API Direct3D et OpenGL, qui permet l'utilisation des cartes accélératrices 3D (OGRE ne fournit pas de moteur de rendu 3D logiciel, il faut une carte 3D ou un émulateur de cartes 3D).

Jusqu'à la version 1.6 incluse, il est distribué selon les termes de la licence GNU LGPL. À partir de la version 1.7, Ogre est distribué sous licence MIT.

En novembre 2018, les développeurs annoncent qu'ils sont en train de porter le moteur sur l'API Vulkan.

Programmer avec OGRE

OGRE est écrit en C++, orienté objet, avec des motifs de conceptions, une documentation complète, l'objectif principal (notamment lors des arbitrages d'évolution du code) étant la lisibilité et la maintenance du code avant tout, pour que l'utilisateur puisse profiter de toute la flexibilité du moteur 3D.

Il peut être utilisé depuis d'autres langages : C#, Python, Java, Lua, Ruby, Eiffel…

OGRE veut simplifier la création de programmes 3D temps réel, par rapport à accéder directement aux API 3D, notamment en fournissant des interfaces de haut niveau pour l'animation de personnages, d'effets de traitement plein-écran (bloom, HDR, etc.), des scripts pour les particules, les matériaux.

Extensions fournies par la communauté

À cela s'ajoute une communauté qui fournit des extensions permettant l'intégration de moteurs physiques, d'effets spéciaux, de gestionnaires de scènes plus avancés ainsi que des codes source utilisables (lecteur vidéo, intégration de webcam, réalité augmentée, son 3D, météo, particules, forêt, etc.).

Moteurs physiques

• NxOgre (PhysX)
• OgreBullet (Bullet)
• OgreODE (Open Dynamics Engine)
• OgreNewt (Newton Game Dynamics)

Effets spéciaux

• Caelum ;
• FXplugin ;
• Calle ciner.

Gestionnaires de scène

• PagingLandscapeManager ;
• CHCOctree ;
• DotSceneManager ;
• Ofusion.

Sons

• OgreAl(OpenAL)

Vegetation

• PagedGeometry

Description [en]

"A libre & flexible engine oriented towards hardware-accelerated 3D scene rendering" -- Le Bottin.

About

OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce applications utilising hardware-accelerated 3D graphics. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.

What can it do?

Lots of things! See the features page for an up-to-date list of the current features. Also, take a look at the screenshots page to see for yourself the kinds of eye candy OGRE can pump out.

Is OGRE a Game Engine?

No. OGRE can be (and indeed has been) used to make games, but OGRE is deliberately designed to provide just a world-class graphics solution; for other features like sound, networking, AI, collision, physics etc, you will need to integrate it with other libraries, something several frameworks have done, and we have a collision / physics reference integration library as an example in our distribution.

Why? Well, one reason is that not everyone who needs a 3D engine wants to make games, so we don’t assume that you do – you can use OGRE for games, simulations, business applications, anything at all. Secondly, even within the games industry, requirements can vary widely; for example a MMORPG will need a very different kind of network library than an FPS, and a flight sim will need a different kind of collision / physics system to fighting game. If OGRE included all these features, we would be enforcing a particular set of libraries on you, with an inbuilt set of assumed requirements, and that’s not good design. Instead, we provide a very integration friendly API and let YOU choose the other libraries, if you want them. Many experienced game developers have expressed their approval of this approach, because there are no inbuilt constraints. It can be more daunting for newer users who just want to build another FPS-style game, but for those people there are a growing number of existing frameworks using OGRE which provide a complete solution using a given combo of libraries; but it’s important to realise that OGRE itself will always remain separate, flexible enough to be incorporated into any of these. The principle is of collaboration and integration with other libraries, rather than assimilation of them, a standard tenet of component-based design.

Why should I consider using OGRE (rather than the other zillion 3D engines out there)?

Many other engines, whilst technically impressive, lack the cohesive design and the consistent documentation to allow them to be used effectively. Many of them have long features lists, but have the feel of a bunch of tech demos lashed together with twine, with no clear vision to hold them together. Like any other software system this becomes their downfall as they become larger. Most other engines are also designed for one particular style of game or demo (e.g. first-person shooters, terrain roamers).

OGRE is different. OGRE is design-led rather than feature-led. Every feature that goes into OGRE is considered thoroughly and slotted into the overall design as elegantly as possible and is always fully documented, meaning that the features which are there always feel part of a cohesive whole. Quality is favored over quantity, because quantity can come later – quality can never be added in retrospect. OGRE uses sound design principles learned, tried and tested many times in commercial-grade software – the object-orientation mentioned in it’s moniker is just one of those approaches – frequent use of design patterns is another. The core development team is kept deliberately small, and all of its members are veteran software engineers with many years of real-world experience. Patches are welcomed from community, but they undergo a strict review for both quality and cohesion with the Ogre philosophy before being accepted.

OGRE does not assume what type of game or demo you want to make. It uses a flexible class hierarchy allowing you to design plugins to specialise the scene organisation approach taken to allow you to make any kind of scene you like. Want to render indoor levels fast? Fine, use the BSP/PVS plugin scene manager which has already been written. Want an outdoor landscape? Again, use another plugin scene manager. The rest of the engine continues to function exactly as before.

So the short answer is – if you favour design quality, flexibility and clear documentation, choose OGRE. You know it makes sense. 😉

Is it really free?

The Ogre source is made available under the MIT License, which basically means you can use it however you like as long as you include the content of our COPYING file somewhere in your application. The source to your application, or your modifications to Ogre do not have to be released (although it would be nice if you did). See the licensing page for full licensing terms.


Ogre is a 3D graphics rendering engine. Not to be confused with a game engine which provides Networking, Sound, Physics, etc.

Ogre 2.2 has had a substantial overhaul to focus on high performance graphics using Data Oriented Design with:

• Cache friendly Entity and Node layout
• Threaded batch processing of Nodes, Frustum Culling and other techniques such as Forward Clustered
• SIMD processing using AoSoA (Array of Structures of Arrays) memory layout
• Texture loaded via background streaming

This makes Ogre suitable for projects aiming to have a large number of objects on screen, or have tight rendering budgets such as VR.

OGRE is not one, but two “sister” projects. They are related, but they are not the same – as in being not compatible to one another. You may be confused which version to pick. The information below will help you to find the correct version for your needs:

Ogre1

• You need the 1st and 3rd party plugins/components (CEGUI, ParticleUniverse, Terrain, Volume, etc.)
• You want to program in Python/ C#/ Java
• You target mobile platforms (Android, iOS, WebGL, Windows UWP)
• You only need a moderate about (order of 1000) of objects per frame
• You want to use a verified code (as in Unit Tests)
• You like to learn from Wiki code snippets and a lot of existing resources found online.
• You are already used to Ogre or have a long-standing existing code base.
• You need broad hardware support including DX9 and OpenGL 1.5 class Hardware

Ogre Next

• You need many objects (order of 10 000) per frame.
• You want the huge performance boost in the above usecase. Your main target is Windows and/or Linux for now.
• You like bleeding edge.
• You already know your way around Ogre or can learn the API from source code as Documentation is still scarce
• You don’t need the 1st and 3rd party plugins/components that haven’t been ported yet (like CEGUI, ParticleUniverse, Terrain Component, Volume Component, etc). Check the 2.0+ Forum as some of these plugins e.g. ParticleUniverse have been ported by community members.
• You don’t care about Android support (or anything older than the iPhone 5S) for now and can wait for it.


Wikipedia:

Object-Oriented Graphics Rendering Engine (OGRE) is a scene-oriented, real-time, 3D rendering engine, as opposed to a game engine. It is written in C++ and is designed to make it easier to write programs that use hardware-accelerated 3D graphics. The class library abstracts from the underlying system libraries (Direct3D and OpenGL).

OGRE has an active community, and was SourceForge's project of the month in March 2005.[2] It has been used in some commercial games such as Ankh, Torchlight and Garshasp.

As of 2012, OGRE has multi-platform support. As of 2015, it supports Linux, Windows (all major versions), OS X, Google Native Client (NaCl), WinRT, Windows Phone 8, iOS and Android. An unofficial FreeBSD port is maintained by the FreeBSD community.[3]

Version 1.0.0 (Azathoth) was released in February 2005. The current release in the 1.x.y series is 1.9 (Ghadamon), released on November 24, 2013. Released under the terms of the MIT License,[1] as of version 1.7.0 and previously under a modified GNU Lesser General Public License (LGPL), the engine is free software. The modification of the LGPL allows users to statically link the library under the same terms as dynamic linking, through a distinction made by the LGPL.

General information

OGRE is a rendering engine. As such, its main purpose is to provide graphics rendering; though it also comes with other facilities (vector and matrix classes, memory handling, etc.), they are considered supplemental. It doesn't provide audio or physics support, for instance. OGRE explicitly supports the OIS, SDL and CEGUI libraries, and includes the Cg toolkit.

As of version 1.7.0, OGRE is released under the terms of the MIT License.[1] Earlier versions of OGRE were published under a dual license (one being GNU Lesser General Public License (LGPL), the other one called OGRE Unrestricted License (OUL)), to make it possible to be chosen for console development as well, because most of the publishers won't use the copyleft license terms.

Features

OGRE is a scene graph based engine, with support for a wide variety of scene managers, most notably octree, binary space partitioning (BSP) and a Paging Landscape scene manager, along with a beta-stage portal-based scene manager under ongoing development.

OGRE is multi-platform, and can use OpenGL and Direct3D[4][better source needed]. It renders the same content on different platforms without the content creator having to take into consideration the different capabilities of each platform. Currently, pre-compiled binaries exist for Linux, OS X, and all major versions of Windows. Both a FreeBSD binary package and a port are made available unofficially by the FreeBSD community.

OGRE also supports Vertex and Fragment programs along with custom shaders written in OpenGL Shading Language (GLSL), High-Level Shading Language (HLSL), Cg, and Assembly language.

The landscape scene manager has support for progressive level of detail (LOD), which can be created automatically or manually.

The animation engine has full support for hardware weighted multiple bone skinning, which can be fixed across several poses for full pose mixing.

OGRE also has a compositing manager with a scripting language and full screen video post-processing for effects such as high dynamic range rendering (HDR), blooming, saturation, brightness, blurring and noise. A particle system with extensible rendering and customizable effectors and emitters.

The libraries also feature memory debugging and loading resources from archives.

OGRE has an object-oriented design with a plugin architecture that allows addition of features, thus making it highly modular.

There are content exporter tools available for most 3D modelers around including 3D Studio Max, Maya, Blender, LightWave, Milkshape, Sketchup and more.

OGRE ports and wrappers

There exist a number of OGRE bindings to other languages and frameworks including Perl, PureBasic, Python-Ogre for Python, Ogre.rb for Ruby, Ogre4j for Java and OgreDotNet, GMOGRE for Game Maker, MOGRE for .NET and hogre for Haskell.