Is IRRlicht design broken?

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
powerpop

Is IRRlicht design broken?

Post by powerpop »

Sorry for the charged title - IRR has a nice oop design and some great features - but as i dig in there are some major concerns about the design of core features that it would be great to hear Niko's opinion on ...

(1) not using Quaternions
I have heard that IRR does not use quaternions which hampers the implementation of the animated characters - they end up being jerky

(2) using matrix4s for everything
Likewise I heard that IRR used Matrix4s internally and that this is also not on a part with commercial engines

(3) multitexturing
No support for this - is this going to be corrected or is it fundamental in the current design?

(4) multiple textures per model
I ran into this when converting some models to IRR - the current method only allows one texture to be wrapped around an object - it would seem better to allow multiple textures per object part - is this going to be fixed/added to IRR in the future

anyways - i am sure there are many people who are attracted by the great API that you made Niko - and the feature set is impressive - but the above things (esp 1 + 2) seem to tell those of us who want a strong engine base that we can expand and rely on that IRR is not matching current techniques found in commercial engines
DarkWhoppy
Posts: 386
Joined: Thu Sep 25, 2003 12:43 pm
Contact:

Post by DarkWhoppy »

Irrlicht isn't even at version 1.0 yet... so until then we can't determine what Niko will do with the engine. Hopefully multiply textures can be used for models as well as multitexturing.
Programmer of the Irrlicht Scene Editor:
Homepage - Forum Thread
Version 2 on its way!!
Homer
Posts: 58
Joined: Tue Nov 18, 2003 7:11 pm
Location: Germany

Post by Homer »

To (3): I think this will be implemented soon, if not by Niko then surely by someone else (OpenSource is great!).
keless
Posts: 805
Joined: Mon Dec 15, 2003 10:37 pm
Location: Los Angeles, California, USA

Post by keless »

The following makes a lot of assumptions as to what Niko wants to do with the engine, so bear that in mind:

1) "I Believe," using Quaternions is generally a little slower than straight matrix mults, especially if you're doing those MMults in hardware. And, as long as he is generating temporary rotation matrices from any rotation vectors before multiplying them into the transform matrix, there shouldnt be a problem. I havent heard anyone complain of models not following their proper animations (do to gimbal lock anyway).

2) OGL uses 4x4 matrices internally, to my understanding.

3) I know it doesnt handle open ended multi texturing, but there are some 'material properties' that use 2 textures, and even some with envirnoment mapping. I think real multi texturing support would be best left for when he adds Shader functionality to the render engine-- which I assume he is planning to have in a couple of versions. Any word Niko?

4) this definately needs to be added, right now individual model loading code is not all 100%, but niko is pretty stretched. I think if you were to write a well-coded/documented extention to his own model class, then write some loader code to handle N-textured models, he would be glad to incorperate it into the engine. For now, I think its less of a priority for him than some other things.

I think one of the best things about IrrLicht is the community which is helping develop extentions to the engine all the time. If Niko is able to keep an eye on the big picture, and get some basic functionality out there that is well-coded, then the rest of us who have silly needs like some obscure model format or an obsession with 1200FPS can write the optimizations, extentions and tweaks neccesary for our needs, and share those with everyone else.

I've only been around for a month though, I could be wrong. :wink:
a screen cap is worth 0x100000 DWORDS
buhatkj
Posts: 444
Joined: Fri Dec 12, 2003 4:53 am
Contact:

aside from the multitexturing i dont really need that stuff

Post by buhatkj »

i can see the use for mutitexturing, but otherwise i dont see your beef. if you arrange your textures right so that the different bits are all in one file then set up the UV's right its easier that way anyhow. besides, irrlicht was the first engine i was able to understand in any sense, before i found irrlicht i was muddling through writing my own engine along the very same design lines as irrlicht. that niko was able to come up with such a kickass API at all, whether it supports XYZ or not, is reason enough for me to use it. it has VASTLY streamlined the devel of my own project anyhow, i had been mucking with OGL by myself for a YEAR before i found irrlicht and was desperately trying to make a C lib play nice with OO C++; not fun.

if anything i think niko deserves MAJOR props for his accomplishments.

all the same, as has been said, this IS open source, madinitaly and I wanted to use MD3's, so he wrote a loader, and i modded it for VC++, want a feature, ADD IT! Niko has to go to class ;-) give the dude a break!

-Ted
My irrlicht-based projects have gone underground for now, but if you want, check out my webcomic instead! http://brokenboomerang.net
DarkWhoppy
Posts: 386
Joined: Thu Sep 25, 2003 12:43 pm
Contact:

Re: aside from the multitexturing i dont really need that st

Post by DarkWhoppy »

buhatkj wrote: if anything i think niko deserves MAJOR props for his accomplishments.

all the same, as has been said, this IS open source, madinitaly and I wanted to use MD3's, so he wrote a loader, and i modded it for VC++, want a feature, ADD IT! Niko has to go to class ;-) give the dude a break!

-Ted
Yeah seriously, Niko has done an excellent job with Irrlicht and if you find a problem with it... don't go bashing him. Use Irrlicht if you want no ones forcing you. And like buhatkj said, if you want a feature ADD IT yourself! Don't blame Niko! Its very nice to have such an engine Open Source and royalty free, some people just don't appreciate that... (not that i'm saying you're one of those people... just trying to make a point) Plus, the guy is taking classes...
Programmer of the Irrlicht Scene Editor:
Homepage - Forum Thread
Version 2 on its way!!
niko
Site Admin
Posts: 1759
Joined: Fri Aug 22, 2003 4:44 am
Location: Vienna, Austria
Contact:

Re: Is IRRlicht design broken?

Post by niko »

I think I wont have to add much more, DarkWhoppy, buhatkj, keless and homer said it all, thanks :) Here a short summary of my view:
powerpop wrote:(1) not using Quaternions
I am already working on it. Quaternions are already in my dev version, mostly for doing skeletal animations. It will take some time until they are used in other parts of the engine, but we are still at version 0.4. :) At first, I only used matrices for everything, because most people don't even know what quaternions are. I wanted to keep it simple. And until now, there was no big reason for using quaternions.
(2) using matrix4s for everything
Likewise I heard that IRR used Matrix4s internally and that this is also not on a part with commercial engines
I think that that is no good reason: It is no good idea do things just because they are done like that in other engines. If it is working, I'm not gonna change it, until someone can give me a good reason why I should. If you have one, post it in here, and we can discuss it. :)
(3) multitexturing
Just like keless said: there is support for this. It is done a little bit strange compared to how it is done in other engines, yes. :) But I it is very simple this way. Vertex and Pixelshader support will be added, yes, but not in the very near future. It is also possible to create cool effects with the fixed function pipline now.
(4) multiple textures per model
And we've also support for this. That's why there are IMeshBuffer's in the IMeshes. Some model loaders simply ignore multiple materials until now - like the .ms3d loader. Other loaders like .3ds or .bsp support multiple textures. And the new .x file loader, which will first appear in version 0.5 will support everything the .x file format supports. This will then be the major file format for the engine, because it is simple, easy to understand, extensible, supports animations, and there are lots of exporters for most of the professional 3d packeges in it.
powerpop

Post by powerpop »

thanks Niko - your replies were very helpful - and it is a great engine - i will go back and ask my source why they feel that matrix4 can create problems

as for me - i started opengame.org to collect and promote opensource for gaming - i am reviewing and learning about the core graphic engines, physics, collision, audio, etc so that i can provide a source of information for the community

so, to the rest of the community, especially DarkWhoppy (lay off the sugars dude) it is a measure of strength of a community to be able to talk about the core design directions of the package - niko has done this very well and answered calmly - if everytime someone wonders what those directions are the community should NOT jump down their throat with calls of "build it yourself" or "niko is working hard so lay off" - my questions were about direction and where these areas were going - as i try to get a handle on the strengths of each opensource package i need to poke and prod, otherwise i will not be giving out information that is helpful to anyone just beginning down this road

there are things that really matter here in the long term - for opensource in gaming especially - something i very much care about - i see the day when even commercial work will be relying on what niko and others are buildings

things that matter are:

- stability of the dev team
- strength of the API (irr shines here!)
- solidness of the core implementation which after the first few releases can be difficult to change - so if someone builds something into their engine that is old tech (quake 1 rather than on a par with unreal II for instance) then i am going to poke at it because we need work that will stand up for a while
- integration (best graphics, audio, collision, physics, AI either internally or through integration)

so i ask you, the growing IRR community to not react defensively when design questions are raised - i never said "niko, you should have done this already, or do it now because i need it yesterday" - i simply asked, where are you going with these areas
powerpop

Post by powerpop »

one more question on the multiple textures (as a developer and not as the opengame guy) - can i change a texture on part of the model using the API? - last i looked at IRR i was not able to do this - and the reason i want to is that the users of my app have the ability to change parts of objects on the fly - like the leaves of a tree or the face of a sign - so i would like to be able to use the API to accomplish this dynamically ...
powerpop

Post by powerpop »

oops - not multiple textures but DIFFERENT textures on different parts - sorry about that ...
DarkWhoppy
Posts: 386
Joined: Thu Sep 25, 2003 12:43 pm
Contact:

Post by DarkWhoppy »

powerpop wrote:so, to the rest of the community, especially DarkWhoppy (lay off the sugars dude)
So while "poking" your way through the internet finding information. Show alittle respect for someones hard work. Especially if the things you're "poking" hasn't reached the first version of its self. And might I ask, how old are you?
Programmer of the Irrlicht Scene Editor:
Homepage - Forum Thread
Version 2 on its way!!
keless
Posts: 805
Joined: Mon Dec 15, 2003 10:37 pm
Location: Los Angeles, California, USA

Post by keless »

Whoppy, I dont think powerpop was being disrespectful. if you feel he was a bit blunt, you must still admit he poses some pressing comments and questions, and I agree that its important for the IrrLicht community to be able to take questions and challenges like this and grow from them, instead of passing them off with "build it yourself."

I hope that Niko will provide some greater look into his more immediate workings, such as perhaps weekly updates on the mysterious "todo list" he keeps talking about :wink: . I would like to point out, however, that "build it yourself" has actually provided a number of community-built additions and fixes to the engine, and while there may be a little overlap, most people use the forums and communicate well enough to prevent this, or even collaborate.

But, please dont make this personal DW (asking age). PP hasnt said anything that would make me think he is acting irresponsibly.
a screen cap is worth 0x100000 DWORDS
DarkWhoppy
Posts: 386
Joined: Thu Sep 25, 2003 12:43 pm
Contact:

Post by DarkWhoppy »

I'm not trying to sound angry or anything. I don't get why the guy told me to "lay off the sugars" WTF?, ... thats what got me. Read the post I put up before and you'll see that I didn't say anything "out of line". :roll:
Programmer of the Irrlicht Scene Editor:
Homepage - Forum Thread
Version 2 on its way!!
Boogle
Posts: 162
Joined: Fri Nov 21, 2003 3:16 pm
Location: Toronto, Canada

Post by Boogle »

keless
Posts: 805
Joined: Mon Dec 15, 2003 10:37 pm
Location: Los Angeles, California, USA

Post by keless »

oh, hey. it does move.
a screen cap is worth 0x100000 DWORDS
Post Reply