looking for 3D rendering middleware

Started by
12 comments, last by Robert Cav Campbell 4 years, 12 months ago

I'm looking for a 3D renderer (not a complete game engine) to use for my next project.  I've taken a close look at Ogre and turned away in horror.  I've taken a quick look at Horde3D, but did not get it to compile.  Are there any other (better) options?

I have three absolute requirements:

  • It must be open source, with a liberal license.
  • It must be usable from C++.
  • It must run on my main computer (great CPU, lots of RAM, relatively recent Nvidia graphics card, but OS is Lubuntu).

Everything else is technically negotiable.  Ideally, I'd like it to have low system requirement, great performance, a clean API, no bugs, visually beautiful results.  And a pony.

Advertisement

I use Urho3D.

Urho3D is a full game engine, isn't it?  I'm really looking for something that doesn't require me to structure my entire program around it.

Your next try should be Irrlicht Engine. It seems to have a very similar proposal to Ogre; 3d real time engine but not a game engine.

There is a list of renderers in wikipedia which can be ordered by license. https://en.wikipedia.org/wiki/List_of_3D_rendering_software But this list is for a different category; not quite engines for you to code with but rendering software ready to render 3d scenes, and possibly not intended to be real time. But, hey, they're open source so maybe you can find something there!

Another thing that comes to mind is Open Frameworks. It's a suite of libraries made for "creative programming", whatever that is. But it's not meant for games and it does render 3D stuff. But it does a million other things as well, which I believe is not what you want right now.

30 minutes ago, a light breeze said:

Urho3D is a full game engine, isn't it?  I'm really looking for something that doesn't require me to structure my entire program around it.

You can just use the rendering parts, though. That's what I did for a couple years. I abstracted out the rendering, then used some of my own existing code for all the rest of it. It's lightweight enough for that.

hi @a light breeze,

so far all I see is a moral and religious requirement for a considered rendering library. Could you perhaps put a peg in what 3D rendering capabilities are most important to your project. If these requirements are very small with limited expansion and contained target scope, then is an existing library the better choice?  

edit: just noticed.Interesting boost bug catch...

BGFX 

I use Urho3D and I'm happy with it. But Urho3D is a full (lightweight) game engine.

BGFX looks to be good quality and well maintained so far.

How did Horde3D not compile? I use it for most of my 3D projects and it works perfectly, it's a quick "cmake ./" followed by "sudo make install".

One tiny thing I did not like about it was that it places it's shared libraries in /usr/local/lib, where G++ does not usually look for, I had to copy paste it myself to /usr/lib.

1 hour ago, costin said:

BGFX 

I use Urho3D and I'm happy with it. But Urho3D is a full (lightweight) game engine.

BGFX looks to be good quality and well maintained so far.

BGFX is not a rendering engine, this is just a rendering API rendering engines could use to avoid developing their own agnostic graphics abstraction interface.

On 4/12/2019 at 3:51 PM, DiegoFloor said:

Your next try should be Irrlicht Engine. It seems to have a very similar proposal to Ogre; 3d real time engine but not a game engine.

 

Irrlicht looks good for what it is, but very dated.  Still uses the fixed function pipeline in some cases, and does all mesh animation on the CPU.

 

On 4/12/2019 at 3:53 PM, JTippetts said:

You can just use the rendering parts, though. That's what I did for a couple years. I abstracted out the rendering, then used some of my own existing code for all the rest of it. It's lightweight enough for that.

That's actually a very good point.  I'll take another look at Urho3D.

 

On 4/12/2019 at 10:50 PM, costin said:

BGFX 

 

BGFX looks interesting, but a little low-level for my tastes.

 

On 4/12/2019 at 10:57 PM, midn said:

How did Horde3D not compile? I use it for most of my 3D projects and it works perfectly, it's a quick "cmake ./" followed by "sudo make install".


[...]/Horde3D-1.0.0/Horde3D/Source/Horde3DEngine/egRenderer.cpp:2301:78: error: cannot take the address of an rvalue of type 'float'
        _renderDevice->setShaderConst( _defColorShader.uni_worldMat, CONST_FLOAT44, &Matrix4f().x[0] );
                                                                                    ^~~~~~~~~~~~~~~~

The error itself doesn't look hard to fix, but it also looks like Horde3D is no longer being actively maintained - the last update on GitHub was "a year ago".

This topic is closed to new replies.

Advertisement