Hello
new user here, i am starting development of a project that will be used commercially for visualizing and interacting with 3D models and i am thinking of using Irrlich for this.
The demands of the program includes the following :
- Allowing customizable clipping planes to see inside 3D models. Other clipping methods like Pie clipping should also be possible.
- Integrated overlay system controlled by Qt.
- Compatibility with both linux and windows operating systems.
- Active community forum and continued software support.
- Support for particle system.
- Good frame rate with a high amount of vertex.
Do you consider Irrlicht to be a supporting engine for these demands? Is there a better option?
Thanks in advance
Advanced project, is Irrlich the corrrect engine?
-
- Posts: 2
- Joined: Wed Aug 28, 2019 9:20 am
Re: Advanced project, is Irrlich the corrrect engine?
Hi,
- sorry, never tried doing customizable clipping planes, so not sure right now how that is usually done.
- Some people got Irrlicht working together with Qt. But not sure if and how well it works on different platforms.
- Linux and Windows are both supported
- Currently I'm pretty much the only maintainer left and Irrlicht is mostly in maintance mode with next release being overdue for years. So as much as I like the engine (and use it for my daily work) I'm not sure I'd chose it for a brand new project. A spinoff which has currently more active development is IrrlichtBAW https://github.com/buildaworldnet/IrrlichtBAW thought I haven't worked with it yet myself, so can't tell you much about it (it's nearly a rewrite using more modern c++ and got rid of the fixed-function pipeline, using OpenGL and Vulkan, if you plan to do a lot of work with shaders then it's very likely the better alternative at the moment). Alternatively there's OGRE which still is pretty active in development. Irrlicht is likely still the easiest engine to use for simple stuff. No need to spend your first weeks writing shaders to see anything on screen, very little dependencies so it's easy to set-up and pretty good examples to get started with. And the code is mostly easy to read, so it's great if you plan to adapt it to your needs.
- Yeah, we have some particle sytem. Depends on your needs if it's good enough. Another more advanced particle supporting Irrlicht can be found on the forum.
- Depends on what you do, in most cases your scene and used graphic-card are more important. But Irrlicht is still based a lot on old fixed-function architecture (the stuff people used before shaders). We support shaders obviously, but only on a very low level and there are some slow-downs simply because the architecture is so much worked around the old fixed function pipeline. And if you need instancing (lots of identical objects) - that's not in Irrlicht yet. So if you have scenes with hundred thousands of objects you likely shoud use something else. Then again - easy to test if you already have a model. Just load it in Irrlicht's modelviewer and check how fast/slow it is.
edit:
There is also Godot which is currently getting more famous. Note that Godot is not a programming library but a 3d development environment. So basically an editor with scripting. Which makes it great for some projects (doing quick simple games), but using it inside Qt is probably going to be very hard or impossible.
And obviously there's a few proprietary engines (Unity and Unreal being the most popular currently).
To evaluate I would recommend to first create some 3D scene. Then just spend some time getting it to work in different engines. Although first impressions can also be misleading, for a larger project it's probably worth doing that.
- sorry, never tried doing customizable clipping planes, so not sure right now how that is usually done.
- Some people got Irrlicht working together with Qt. But not sure if and how well it works on different platforms.
- Linux and Windows are both supported
- Currently I'm pretty much the only maintainer left and Irrlicht is mostly in maintance mode with next release being overdue for years. So as much as I like the engine (and use it for my daily work) I'm not sure I'd chose it for a brand new project. A spinoff which has currently more active development is IrrlichtBAW https://github.com/buildaworldnet/IrrlichtBAW thought I haven't worked with it yet myself, so can't tell you much about it (it's nearly a rewrite using more modern c++ and got rid of the fixed-function pipeline, using OpenGL and Vulkan, if you plan to do a lot of work with shaders then it's very likely the better alternative at the moment). Alternatively there's OGRE which still is pretty active in development. Irrlicht is likely still the easiest engine to use for simple stuff. No need to spend your first weeks writing shaders to see anything on screen, very little dependencies so it's easy to set-up and pretty good examples to get started with. And the code is mostly easy to read, so it's great if you plan to adapt it to your needs.
- Yeah, we have some particle sytem. Depends on your needs if it's good enough. Another more advanced particle supporting Irrlicht can be found on the forum.
- Depends on what you do, in most cases your scene and used graphic-card are more important. But Irrlicht is still based a lot on old fixed-function architecture (the stuff people used before shaders). We support shaders obviously, but only on a very low level and there are some slow-downs simply because the architecture is so much worked around the old fixed function pipeline. And if you need instancing (lots of identical objects) - that's not in Irrlicht yet. So if you have scenes with hundred thousands of objects you likely shoud use something else. Then again - easy to test if you already have a model. Just load it in Irrlicht's modelviewer and check how fast/slow it is.
edit:
There is also Godot which is currently getting more famous. Note that Godot is not a programming library but a 3d development environment. So basically an editor with scripting. Which makes it great for some projects (doing quick simple games), but using it inside Qt is probably going to be very hard or impossible.
And obviously there's a few proprietary engines (Unity and Unreal being the most popular currently).
To evaluate I would recommend to first create some 3D scene. Then just spend some time getting it to work in different engines. Although first impressions can also be misleading, for a larger project it's probably worth doing that.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Re: Advanced project, is Irrlich the corrrect engine?
Here's a modelviewer and PBR demo from IrrlichtBAW
https://drive.google.com/file/u/1/d/1x_ ... dxwvhNRHM4
Load your model into that (it will only display the first meshbuffer), see what performance you get.
There's also an example (nr. 26) on Multi-Draw-Indirect which uses "command buffers" to reduce CPU overhead of many drawcalls, that improves FPS by 100%
We have instancing, but no particles, if you want particles then they're not that hard to put together. The reason we don't have them is because the best way to do them is via compute shaders, but the code is very dependant on what sort of particle effects you want to support.
I have a fellow Qt-programmer on my discord support server who'll be looking into making a similar application to yours using IrrlichtBAW
https://discord.gg/4MTCVaN
https://drive.google.com/file/u/1/d/1x_ ... dxwvhNRHM4
Load your model into that (it will only display the first meshbuffer), see what performance you get.
There's also an example (nr. 26) on Multi-Draw-Indirect which uses "command buffers" to reduce CPU overhead of many drawcalls, that improves FPS by 100%
We have instancing, but no particles, if you want particles then they're not that hard to put together. The reason we don't have them is because the best way to do them is via compute shaders, but the code is very dependant on what sort of particle effects you want to support.
I have a fellow Qt-programmer on my discord support server who'll be looking into making a similar application to yours using IrrlichtBAW
https://discord.gg/4MTCVaN
-
- Posts: 2
- Joined: Wed Aug 28, 2019 9:20 am
Re: Advanced project, is Irrlich the corrrect engine?
Much appreciated answers, now i have a better idea of what to expect from Irrlicht. The BAW spinoff sounds very interesting, i will look further into that. Thanks