Looking for a 3D /Rendering/ Engine

Miscellaneous Forums/General Discussion/Looking for a 3D /Rendering/ Engine

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

What about loading assets? Some engines bother me with really specific and arbitrary stuff in that realm, where all the artwork is stored in a particular way and getting it my way (with my own crazy formats) is made oddly difficult.
How is Ogre with that sort of stuff?

It's pretty good, actually. Ogre's resource management system is very flexible and allows you to organize your data any way you want. The only limitation is that you need to register the folders/archives you are going to read from before the resource manager knows where to look for files. But this can be done in real-time if you want, so it's no bother.

However, one "limitation" with Ogre is that it can only load it's own special mesh format (in contrast to it's image loading capability, which can load just about anything). This can be a disadvantage if you have a lot of media already in .3ds/.x/etc. format, but in every other respect this is a great advantage:

- There are Ogre .mesh exporters for just about all major open-source and commercial modeling software

- The .mesh format loads practically instantly, since there's no need to parse anything - it's a straight binary dump of the internal representation of the mesh as far as I know

- .mesh files contain no material data - just the names of materials that each surface uses. Exporters place material data in separate .material files, and it's amazing how easy it is to tweak your mesh's materials with notepad. Practically every rendering feature of your graphics card (and more) can be used with Ogre's amazingly powerful .material files (pixel/vertex shaders, alpha rejection, z offset, custom fixed-function blending modes, animation, material LOD, etc., etc.).

(with my own crazy formats)

And you can implement loaders for your own formats if you want.

I have looked at Ogre's feature set and it sounds to do some odd extra stuff. Is that done via detached modules, then?

I think every feature mentioned on Ogre's site should be available in the SDK right out-of-the-box. However there are some really nice plugins that expand Ogre's feature set; for example you can download improved terrain rendering engines with easy-to-use splatting capability, dynamic paging, procedural detail generation, and other advanced features. There are all kinds of add-ons that you can download and use with Ogre very quickly (like my PagedGeometry add-on, which is an advanced vegetation rendering system).

That is quite a good bit of marketing talk there, John :)
I'll have to play with it for a while so that doesn't go to waste...

:D Honestly, Ogre has very few disadvantages. Here's all I can think of:

- Ogre's material system is very nice except for per-entity material variation. For example, there's no way to set an entity's transparency individually unless you give it a material of it's own. In a way this is good since this can result in better performance due to reduced state changes, but personally I wish they would allow you to at least modify transparency per-entity.

- Although Ogre is very fast (much faster than many commercial graphics/game engines), it's not quite as fast as pure DirectX or OpenGL code, but unless you like me (an optimization freak ;) ), it shouldn't be an issue.