New interesting Ogre projects


10-09-2010 12:04:52

The aim of this forum topic is to show you new Ogre projects,
which could be an interesting addition for Mogre.

Gorilla + Canvas - high speed display of 2D, text, GUI, pics

In the showcase forum section I found the new project Gorilla, which seems to be interesting. It's looking nice and is optimized for high speed.

I tell you, because maybe not many people are looking to the showcase section.
Maybe somebody like it so much, that he create a wrapper or port for Mogre. :wink:

More details you find here:


16-09-2010 14:09:57

There is also an other interesting project called Canvas.

The advantages are:
* high speed rendering
* easy text stylizing (fonts, colours, size, italic) - also inside of a text block
* displayed containers like balloons (with floating text content)

Just run the precompiled demo :wink:

The project page is here:

The forum discussion is here:

Maybe Canvas is useful for somebody and like to wrap or port it.
If so, be welcome to publish it.

This post is just to let you know about this add-on.
(I just found it on yesterday, although it was published 2 years ago.)

What: A super-fast, lightweight, 2D-rendering engine for Ogre3D. To be used for powering simple HUDs or basic interface libraries.

Why: Existing solutions seemed a bit inefficient and I felt like tackling the issue. My implementation is able to batch all rendering into one operation, regardless of document complexity, without using any real-time texture caching.

How: The secret sauce is Atlas, a programmatic texture atlas that can pack font glyphs of multiple fonts and texture assets into a single texture. Assets are pre-loaded into an Atlas, eliminating the need for material-switching in a Canvas (allowing me to get the batch count down to one).

Screenshot: (click for bigger)

Here's a screenshot of the packed Atlas texture that was generated at run-time (in about 0.03s) for the demo. It contains 4 font faces and 5 font sizes (for a total of 500 glyphs) and a single texture (the logo). Please note that most of the unused space is due to POT limitations on texture-sizes. (click for bigger)

The demo itself is also a work of love; everything is data-driven, it can parse "<font></font>" tags (so that you can specify inline font styles), and I also wrote a simple multi-font text-layout implementation (see TextFlowElement).

Download the demo here.

The source is LGPL, non-platform-specific (feel free to port). All you need to build is MSVC8 and the OgreSDK (the only other dependency, FreeType, is included).

Download the source here.


03-02-2011 17:16:02

Beastie - A collision detection library for Ogre

Forum topic: here

Crivvens! What is Beastie?

Beastie is a C++ based simplified collision detection library for the Ogre3D
graphics engine, and it is neatly packaged in a single header, beastie.h.

"Beastie" should be always pronounced in a Glaswegian accent.

It only detects collisions and does not respond to them as you would typically
encounter in a more fully featured physics engine or more advanced collision

However the detections are accurate and are optimised, building some response
code on top of beastie shouldn't be to difficult, an example of some of this
is in the "beastie.example.cpp" test application that can be found at the beastie
Git repository.

Beastie only uses Ogre as a dependency, and is developed with Ogre 1.7 in mind;
but should work with any 1.x version.

Beastie is released under the MIT licence.

Gessa Download!

Beastie only comes in one file "beastie.h", alternatively a complete Sample may be downloaded.

Beastie is hosted and versioned by GitHub.

Further Documentation and information can be found there.


Beastie is very simple to use, and requires the minimal amount of code to setup.

For example; this is how you would raycasting:

beastie::collision_tree tree = OGRE_NEW collision_tree();

tree->createNode("tudorhouse.mesh", Ogre::Vector3(0,550,0);
ray_query result;
line ln(Ogre::Vector3(0,25000,0), Ogre::Vector3(0,-1,0), 25000);
tree->intersect(ln, result);

Additionally Beastie comes with an example application, using the OgreBites sample

The example is a self-installing-when-compiled Ogre Sample. Simply compile the Sample
(in the visual studio directory) and it will copy itself and self-install it self into your Ogre
Samples folder. Run the SampleBrowser application and you'll find "Beastie Example" under
the "Collision Detection" section


Beastie will be worked upon the future. My rough To-do list is as follows:

- Bug fixes.
- Box v.s. Box and Plane intersection.
- Further optimisation of raycasting.
- Jacmoe has convinced me to incorporate the works of Paul Nettle; more specifically the
ellipsoid character controller.


03-02-2011 21:32:39

Wow these are a lot of small cool projects which are great for my learning C++/CLI \ wrapping skills!

I wonder though if there are any other advantages to Gorilla or Canvas other than speed compared to Ogre's overlay system?

Either way they look so simple to use and wrap that it tempts me. I'll have a look into them after I'm done with MHydrax.


03-02-2011 21:56:50

Nice to see that you like my "news" :D

Ogre Overlays are very flexible and "just" some basic tools for GUI creation.
Canvas and Gorilla are more specialized and have functionality which Overlay doesn't have.
You can add text (styled by any font) without much speed loss, because all needed pixels are still in the auto-created "atlas" image. (I suppose you even don't have to add the font files.)
Canvas also has an auto-wrapping feature for a longer text, which needs line breaks. Maybe also some other features.
Start the demo application and get an impression.

All I know is from the linked topics. I never used the source code.


16-04-2011 16:55:53

User rattus published a wrapper for Gorilla with the name MogreGorilla.
More details here:


06-05-2011 06:15:09

I'm very impressed by the Canvas demo :)

I'm going to have a crack at porting it this weekend.


10-05-2011 21:32:44

Yes, Canvas looks impressive.
I look forward and wish you the best for porting the code.


11-05-2011 12:33:57

I look forward and wish you the best for porting the code.

I have the port half done but I ran out of time on the weekend and I may not get back to it anytime soon. Besides, I ran into some issues with FreeType and I'm not sure how to solve them just yet. I believe C# provides enough font libraries to get it going without FreeType but I'd have to figure out how the code works first. If anyone's interested in continuing what I started I'd be happy to hand over the code (it's messy and doesn't compile yet though).


07-08-2011 11:03:56

User rattus published a wrapper for Gorilla with the name MogreGorilla.

Now we also have a port of Gorilla, called Gorilla.NET.