Comparing Ogre with other rendering engines

A place for users of OGRE to discuss ideas and experiences of utilitising OGRE in their games / demos / applications.
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Comparing Ogre with other rendering engines

Post by JeDi »

Hi,

I work at a research facility in Belgium, and we're currently doing research with virtual communities. Untill now, we've been using our own rendering engine, but we want to stop developing it (it's very basic and outdated) and use an external rendering engine.

I've been following Ogre for some time now, and have experimenting with it a little bit. I really like it! But I have to convince my collegues too. My current job is to compare some rendering engines. I have to compare CrystalSpace and Ogre.

The first test-scenario is a simple 3ds scene (.3ds file with a bunch of textures) that I have to render, and use the keyboard and mouse to navigate through the scene (no collision detection needed for now). The last couple of days I've tried doing that with CrystalSpace, but I don't really like it. There was an experimental tool to convert 3ds scenes to CrystalSpace scenes, but the scene wasn't rendered correctly (actually, half of the scene just didn't get rendered). I also found programming with CrystalSpace very unintuitive.

Now I'm starting the first Ogre test with the same scene. How should I start, and what is the simplest and easiest way to get this scene on screen? I'm going to look at the .scene addon later, but for now I just want this scene rendered in the easiest possible way (to convice the other people to start using Ogre).

So my question (sorry for the long introduction btw) is:
- Which exporter or converter should I use
- Should I use any addons (is the .scene addon and exporters easy to install and use)?
- I have access to 3ds max, but it would be nice if I could convert the scene to Ogre withouth it. Is that possible?
- Are there any particular reasons I should mention why Ogre is better than CrystalSpace?

Thanks already, and thumbs up for this great engine and the huge community!

Greetz,
JeDi
Mr. Turner
Halfling
Posts: 88
Joined: Sun Sep 05, 2004 7:01 pm
Location: Belgium

Post by Mr. Turner »

- Which exporter or converter should I use
For 3ds, check out the Octopus WIP & use the xmlconverter
- Should I use any addons (is the .scene addon and exporters easy to install and use)?
Yes, use the dotSceneInterface. It's not entirely complete (like terrain.cfg loading is missing). You can load a scene by just dsi::load(file, extra parameters)
- I have access to 3ds max, but it would be nice if I could convert the scene to Ogre withouth it. Is that possible?
You mean 3ds >>> .mesh? There are some WIP arround, but don't have any links.
- Are there any particular reasons I should mention why Ogre is better than CrystalSpace?
* ease of use
* way better design, without being a c++ guru, you can still understand a lot
* I think a bit faster too.

Mr. Turner[/code]
User avatar
monster
OGRE Community Helper
OGRE Community Helper
Posts: 1098
Joined: Mon Sep 22, 2003 2:40 am
Location: Melbourne, Australia
Contact:

Post by monster »

Howdy!

First off, Ogre's obviously better than CrystalSpace, so you might as well face that right now.
:)

What? You (or your colleagues) want more convincing?

You're probably aware of it already, but there's a database of 3D engines here;
http://www.devmaster.net/engines/
Might be useful for "first cut" comparisons of the different engines available, until you want to delve a bit deeper.

The simplest way to get a 3ds scene rendered in Ogre is to just convert it to a mesh and modify one of the simpler examples to load that mesh. Say, take Demo_SkyBox, remove the "setSkyBox" bit and the stuff about particle systems (basically everything after line 107 of SkyBox.h) and change the "createEntity" call to use your mesh.

The easiest way to convert a 3ds to a mesh is (as you know) to import it into something that Ogre's exporters support and then export it. You can use 3dsmax, Milkshape, Blender, Lightwave, XSI, AC3D, etc, etc. Or, just post the 3ds model here and someone nice will probably convert it for you!

I'm guessing that when you say "simple" 3ds scene you're not talking about a huge amount of triangles? As long as it's not too many you should just be able to use that single mesh and not worry about .scene's and all that complicated stuff for now.

Unfortunately I've never used Crystal Space so I can't give you a comparison. Sorry.

Good Luck.
User avatar
psyclonist
OGRE Expert User
OGRE Expert User
Posts: 286
Joined: Fri Nov 01, 2002 3:54 pm
Location: Berlin & Nuremberg, Germany
x 1
Contact:

Re: Comparing Ogre with other rendering engines

Post by psyclonist »

JeDi wrote:- Which exporter or converter should I use
Exporter: Preferrably, I'd use a native exporter for 3dsmax (if that's where the scenes are modelled). You've got the choice of 3 different exporters, two of them at least supporting the dotScene scene description format.

Converter: There's no 3ds-to-Ogre-mesh/scene converter that I know of. It'd be preferrable to use an exporter for the modelling application as that doesn't involve the loss of information due to use of the rather dated 3ds format.
JeDi wrote:- Should I use any addons (is the .scene addon and exporters easy to install and use)?
You don't necessarily need the dotSceneOctree scene manager in order to use .scene files. Personally, I like those scene files very much :)
JeDi wrote:- I have access to 3ds max, but it would be nice if I could convert the scene to Ogre withouth it. Is that possible?
see above, answer #1.
JeDi wrote:- Are there any particular reasons I should mention why Ogre is better than CrystalSpace?
Its community rocks. Highly professional, no BS.

EDIT: After seeing a few "Ogre is better than CS" posts I think I should mention that CS itself is called a "3D Game Development Kit" (quote from its site), not a pure rendering engine. So a 1:1 comparison can't be done, naturally, but one has to look at just CS's renderer when comparing it to Ogre. That said, I still prefer the Ogre way :)

HTH

-psy
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

Here is the link for a stand-alone 3ds-to-mesh converter :

http://www.ogre3d.org/phpBB2/viewtopic. ... verter+3ds

I think it might be possible to get it to work with Ogre 1.0 - but the results may be less than satisfactory - anyway, try it. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Post by JeDi »

Well,
For 3ds, check out the Octopus WIP & use the xmlconverter
I tried Octopus a while ago, and it seems great! Is it still maintained? And what about yake in general? I certainly hope it is still active, cause it seems like a great project, and something that we might use in the future.
Yes, use the dotSceneInterface. It's not entirely complete (like terrain.cfg loading is missing). You can load a scene by just dsi::load(file, extra parameters)
I'll certainly have a look at this. So this is all I need to load (simple) scenes exported with Octopus?
You mean 3ds >>> .mesh? There are some WIP arround, but don't have any links.
Yep, that's what I meant. I'll stick to exporting from 3ds max. That's the best way anyway I guess...
What? You (or your colleagues) want more convincing?
Well, I certainly don't need more convincing. I just want to convince my collegues to drop CrystalSpace as soon as possible :lol:
From what I've seen from Ogre, and from the projects and demos using it, it's by far the best free render engine available. And will be for a long time.
I'm guessing that when you say "simple" 3ds scene you're not talking about a huge amount of triangles? As long as it's not too many you should just be able to use that single mesh and not worry about .scene's and all that complicated stuff for now.
Well, it's not a very complex and big scene, but it consists of quite some different meshes (actyally, it's a platform with a ground, some pilars, and some video screens in the middle where you will be able to watch videos virtually. Video on demand and such...).
So I think I'm going to use the DotSceneInterface and the Octopus exporter.
Unfortunately I've never used Crystal Space so I can't give you a comparison. Sorry.
Well, I've been using it for a couple of days now, and I must say, you aren't missing a thing :wink:


Oh, and I'm leaving on a holiday tomorrow for 9 days, so you'll have plenty of time to answer :lol:


Greetz,
JeDi
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2
Contact:

Post by Kencho »

Of course, Ogre can't be compared with CrystalSpace directly as CS is a game engine. But Ogre kicks CrystalSpace rendering module's butt :P
User avatar
psyclonist
OGRE Expert User
OGRE Expert User
Posts: 286
Joined: Fri Nov 01, 2002 3:54 pm
Location: Berlin & Nuremberg, Germany
x 1
Contact:

Post by psyclonist »

Kencho wrote:Of course, Ogre can't be compared with CrystalSpace directly as CS is a game engine. But Ogre kicks CrystalSpace rendering module's butt :P
I didn't mean to say otherwise :twisted:
JeDi wrote:I tried Octopus a while ago, and it seems great! Is it still maintained? And what about yake in general? I certainly hope it is still active, cause it seems like a great project, and something that we might use in the future.
Octopus is maintained by its original authors and the Yake Team.
Changelog and todo can be found here

And Yake is definitely an active project. Actually, your humble code androids psy & meta are in a code & design frenzy for months already :twisted:

-psy
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Post by JeDi »

OK, this is what I did:
  • - I downloaded the octopus 3ds max scripts, and installed them into 3ds max 7.
    - I imported the 3ds scene
    - I exported the meshes, .material and .scene file (I only got the non-converted xml files, though the paths are set correctly in the config-file)
    - I converted the xml files to .mesh files using the precompiled version of the command-line tools
So far so good. I have a .scene file combining the different .mesh files of the scene. Than I did the following:
  • - I downloaded the ogre 1.0 source code, and got the ogreaddons from cvs
    - I copied the dotsceneformat dir to OgreAddons in ogrenew, and opened the visual studio solution
    - I had to comment out the calls to Except(), they weren't recognised. For the rest it compiled perfectly.
    - I compiled the DSISceneViewer executable (again commenting out the calls to Except).
When I try to drag the .scene file to the executable, I get an error saying it can't find resources.cfg (its in the same directory).
When I try to run the DSISceneViewer executable without dragging anything onto it, it crashes.

Anybody got any suggestions? Maybe the dotsceneformat project isn't yet compatible with ogre 1.0?

Thanks!
User avatar
psyclonist
OGRE Expert User
OGRE Expert User
Posts: 286
Joined: Fri Nov 01, 2002 3:54 pm
Location: Berlin & Nuremberg, Germany
x 1
Contact:

Post by psyclonist »

I can't be of help as I use Yake's dotScene viewer. Try to manually set the working directory (via a link or console) so that it finds the resources.cfg.

-psy
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Post by JeDi »

I got the DSISceneViewer from ogreaddons/dotsceneformat running now, without crashes. I run it and it asks me for a .scene file to open. When I open my .scene file (exported using octopus), it complains about ".scene file versionFormat attribute is not 0.2.0, will try to parse anyway..."
Along with that warning are a bunch of "blah.mesh failed to load" errors.

Are the octopus exporter and this DSISceneViewer incompatible? I tried the 3dssceneexporter from ogreaddons, with 3ds max 7, but it gave me a "Failed to load ExportPluginLib" error, though all files are in place.

Can I find the Scene viewer from yake (the one psyclonist said he was using) somewhere?

Any help appreciated!

Greetz,
JeDi
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Post by JeDi »

I tried putting the .scene, .material and all .mesh file into the bin directory where the SceneViewer is located, and starting the viewer with dragging the .scene file onto it. The .mesh loading errors are gone. This is the error I now get a strange error about stack unwinding and a bunch of strange characters.

:? [/img]
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

You could try and put the textures in there as well ...
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
psyclonist
OGRE Expert User
OGRE Expert User
Posts: 286
Joined: Fri Nov 01, 2002 3:54 pm
Location: Berlin & Nuremberg, Germany
x 1
Contact:

Post by psyclonist »

The exporter and the viewer work. With 3dsmax7. So it has to be a setup issues, most likely.

-psy
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Post by JeDi »

You could try and put the textures in there as well ...
I actually did that. But I remember that CrystalSpace complained about some textures as well. Maybe not all textures are included with the scene that was given to me? But should it shouldn't crash when the textures aren't found, right? Shouldn't it display a temp texture of some kind in that case? Or at least complain about which textures that are missing?

The last items of the stack unwinding are "D3D9RenderSystem::refreshD3DSettings(..) <- ILImageCodec::decode(..) <- Image::load(..) <- <<beginning of stack>>", so it seems to have to do something with the textures allright. The strange thing is that I have chosen the OpenGL renderer, so why is it complaining about D3D?

Here's a screen capture of the error box (I hope that clears things up):
Image

I first tried to zip the .material, .meshes and textures to a file called vic.zip, added that in the resources.cfg, and tried to load the .scene that way, but that gave me all the .mesh loading errors? Doesn't the DSISceneViewer work with the resources?

Another strange thing: When I just run the Scene Viewer, it always goes fullscreen at 1024x768, no mather what config I choose at the setup dialog of Ogre. If I drag a .scene to the exe and start it that way, it does start up with the settings I chose. Strange, isn't it.

One last remark about this: I compiled Ogre and the dotscene stuff from source, but as I don't have the DirectX9 SDK here for now, I took the Direct3D render dll from the binary distribution. Could that cause these troubles? They're both 1.00, so it shouldn't, right?

The exporter and the viewer work. With 3dsmax7. So it has to be a setup issues, most likely.
Well, I have done exactly as in the documentation: buld the two files, but the plugin in the plugins dir of 3ds max (that gets loaded OK in max), and put the other, along with all ogre dlls (and to make sure all config files as well) in the 3ds max root. I tried with the IGame.dll that shipped with 3ds max, as well as the IGame.dll that was in the ogreaddons package. Both gave the same simple error when I chose to export all: "Failed to load ExportPluginLib".

I'm leaving in a couple of hours for the weekend, and haven't much time to spend on this than. I would really want to work this issue out before than...
My guess is that the best shot is to use both the 3ds exporter and the dotscene interface from ogreaddons CVS, but then I have to got that exporter running...

Any help greatly appreciated!!

Greetz,
JeDi
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Post by JeDi »

Well, I got the dotscene exporter of ogreaddons working. I accidently built the debug libraries for ogre (with _d at the end). It works with the release build... sort of.

The DSISceneViewer works now, but the scene is all black. All .mesh files are 1kb of size, what isn't exactly normal, is it?

I tried all sorts of options in the exporter tab, but all of them give the same result (except for the .scene file itself, which is correctly built I guess).

Pffff, I'll try again after the weekend.


Edit: I tried the scene exported from octopus again, and now it just complains about it not finding the material "Core/StatsBlockCenter" in the function "OverlayElement::setMaterialName". I just noticed that the .material file generated by the octopus editor is empty...

Greetz,
JeDi
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Post by JeDi »

I'm really stuck here. I want to use the octopus exporter, but it doesn't generate a .material file (its empty).
Is the dsisceneviewer from ogreaddons compatible with scenes exported from octopus (the .scene files look very different from the ones exported from 3dssceneexporter from ogreaddons)?

Maybe I should start another topic, as I have convinced my coworkers to drop crystalspace, and concentrate on using Ogre for now :twisted:

Greetz,
JeDi
User avatar
psyclonist
OGRE Expert User
OGRE Expert User
Posts: 286
Joined: Fri Nov 01, 2002 3:54 pm
Location: Berlin & Nuremberg, Germany
x 1
Contact:

Post by psyclonist »

JeDi: Sorry for the delay. I was trapped in a crunch and out of the country.

Send me the max file if possible. It'll be handled discreetly (no pun intended), of course ;).

The "Core/StatsBlockCenter" material is a basic material from OGRE. It's contained in one of its packages (OgreCore.zip?). Octopus will never export this material (except if you explicitely define and use such a material in 3dsmax).

-psy
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Post by JeDi »

Send me the max file if possible
It's actually a .3ds file, but that's OK too, right? Do you want the textures too? The scene is not very well moddelled. The skydome and shadows are all baked into the geometry and textures. But this is the scene they send me...
The "Core/StatsBlockCenter" material is a basic material from OGRE. It's contained in one of its packages
The package is present in the media/packs directory. When I extract the content of the OgreCore.zip into the directory of the executable, the viewer complains about some material that exists twice, but it runs! With an empty scene apparently :(

So, should I send you the .3ds file alone, or along with the textures?

P.S. The modellers use 3ds max mostyly, so new scenes can be created using the special ogre materials of the octopus package
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

OgreCore.zip should not be extracted - and definately not dropped on the viewer - it will be loaded automatically by the Ogre core.
When you export from max, and assign octopus/ogre materials to your object, try and feed it some texture in your dsiviewer directory, as a test.
Then export it, and give it a try.
I have no experience using the dsiviewer, but it works in meshviewer. :?
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Post by JeDi »

I managed to export the scene successfully, by changing the standard materials in the scene to ogre materials. Shouldn't the exporter handle standard max materials (just a diffuse texture, and a diffuse and ambient color)?

The viewer only works when I put all meshes and textures into the exe's directory. Isn't the viewer supposed to work with the recources.cfg?

I think I'm going to write a simple Ogre program myself, using the DSISceneViewer source as a starting point. I would want to take a look at yake, but I think that is far too complex for what we need now (but it might be perfect for what we want to do with it afterwards).

Thanks everybody! This forum and the Ogre community in general really rocks! Keep up the good work!

Greetz,
JeDi
User avatar
psyclonist
OGRE Expert User
OGRE Expert User
Posts: 286
Joined: Fri Nov 01, 2002 3:54 pm
Location: Berlin & Nuremberg, Germany
x 1
Contact:

Post by psyclonist »

JeDi wrote:I managed to export the scene successfully, by changing the standard materials in the scene to ogre materials. Shouldn't the exporter handle standard max materials (just a diffuse texture, and a diffuse and ambient color)?
It should. To say the truth, I'm mostly using Ogre materials, anyway, as they're tailored to the features of the engine.

Glad you managed the export, though. I put support for standard materials on low priority, though, as there are far more important features to tackle, Ogre materials work (see the note in the Wiki) and I have a limited time budget :)
JeDi wrote:Isn't the viewer supposed to work with the recources.cfg?
Sure. And it works for a lot of people and me... except you, obviously ;)
JeDi wrote:I would want to take a look at yake, but I think that is far too complex for what we need now (but it might be perfect for what we want to do with it afterwards).
Too complex? One can ignore everything that isn't needed (by simply not using the specific component) and lots of the stuff is abstraction (and some simplification even) :)
JeDi wrote:Thanks everybody! This forum and the Ogre community in general really rocks!
Agreed.
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Post by JeDi »

I'm going to start another thread, as the title of this thread isn't correct anymore. I had some other things to do first, but now I'm returning to this issue: Getting a multi-mesh 3ds scene easily (that is, without much hacking in source code and such) exported into Ogre.

Thanks every one!
nitekrawler
Gnoblar
Posts: 23
Joined: Mon Apr 04, 2005 6:55 am

Post by nitekrawler »

Hi JeDi,

I was wondering if the DSISceneViewer compiled after you commented out all the Except or did you have to change some other stuff too.

I commented out the Excepts and I had to change RENDERABLE_DEFAULT_PRIORITY -> OGRE_RENDERABLE_DEFAULT_PRIORITY but I still get this error:
DSISceneViewer error LNK2019: unresolved external symbol _WinMain@16 referenced in function _WinMainCRTStartup.

jw
JeDi
Gnome
Posts: 351
Joined: Thu Oct 21, 2004 1:34 pm
Location: Diepenbeek, Belgium
x 3
Contact:

Post by JeDi »

This is what I did (don't know if I'm missing something though):
- I changed all the Excepts to OGRE_EXCEPT
- I just deleted the RENDERABLE_DEFAULT_PRIORITY, my guess is that it takes the default anyway withouth that parameter
- I changed some defines to OGRE_PLATFORM_WIN32. I'm not sure what they were before, but I think PLATFORM_WIN32. This is what's giving you the linker errors.

Greetz,
JeDi

P.S. Please take a look at my new post. Maybe you can help me too :wink:
Post Reply