I'm looking into using irrlicht with C# for a project. I found a lot of useful information on here on lightmaps and the like - even if it is a bit scattered - and I've been playing with light map maker/lmmaker a bit.
Only problem is, apparantly the only way to load a mesh that has a lightmap attached is through loaders which as far as I can tell aren't part of the normal distribution of the Irrlicht engine, nor have bindings for .NET?
So I'm basically wondering what my options are for using lightmaps in .NET, or if there even are any options short of compiling in a new loader using VS2003/VS2005 (which I don't have) and then writing a wrapper using SWIG (which I have no idea how to do).
Thanks in advance if anyone can give some advice there. ^^;
EDIT: Also, I read that Irrlicht.net doesn't have "Custom Scene Nodes" implemented. Um, what exactly does that mean or entail? <_< Still evaluating wether to go with Irrlicht or not at this point.
Light map options with Irrlicht.net?
Well, I guess I spoke too soon! I downloaded Pulsar LMTools, after trying many other lightmapping solutions once I noticed Irrlicht had a built in importer for it and it worked like a charm!
Now I'm left wondering which of the three .NET ports is best though, the official port, DeusXL's port, or the native C# port?
My gut is telling me to go with the official port since that one has proper documentation which always helps a bunch, and I used the official to hack up the hello world example and produce the above.
Any suggestions as far as that goes?
Now I'm left wondering which of the three .NET ports is best though, the official port, DeusXL's port, or the native C# port?
My gut is telling me to go with the official port since that one has proper documentation which always helps a bunch, and I used the official to hack up the hello world example and produce the above.
Any suggestions as far as that goes?
There is no *best* port I would say... They're all different :Shanira wrote:Now I'm left wondering which of the three .NET ports is best though, the official port, DeusXL's port, or the native C# port?
My gut is telling me to go with the official port since that one has proper documentation which always helps a bunch, and I used the official to hack up the hello world example and produce the above.
Any suggestions as far as that goes?
-Irrlicht's official wrapper is made by the same guys as Irrlicht so it is always "up to date" with Irrlicht's versions and moreover, it is very well documented.
-My wrapper is perhaps more complete than the official one but its main feature is the cross-platform aspect... I would say that if you are not interested at all in making your work available on Linux (if you only want to use DirectX for instance), then apart from the fact that it is a bit more complete, the official one would be better (mostly because it is well documented, with lots of overload functions).
-Whereas these two above are wrappers (meaning that they *need* Irrlicht's native librairies to work), Irrlicht# is a port... It does NOT use Irrlicht, it is just a rewrite of the library in managed languages and, since it is a huge work, it is not as advanced as the two others.
To be short, I'd say that if you are discovering Irrlicht, the official one may be easier because it is more supported, well-documented, with lots of examples and a mature community.
But if you aim to work with OpenGL (or softwares engines, who knows) or if you need advanced features that may not be in the official wrapper then you should try mine.
(sorry not to talk of Irrlicht#, I don't really know how advanced this project is and I would not say something wrong or stupid)
Irrlicht .NET complete and Cross Platform Wrapper
The kid on my avatar wrote:A painless lesson is one without any meaning
.NET port/wrappers
i have worked with all three, and can tell you a little bit about them. The official port is of course the best documented, as irrlicht is very widely known for great documentation, and the official .NET wrapper is no exception. However, it lags behind a LOT on the features of the native c++, and is windows-only. most annoyingly, you will probably NEVER see the ability to inherit from irrlicht objects in this one.
the Irrlicht.NET CP port is very complete, and actually really easy to use, as it follows the standard irrlicht API pretty closely. It should be easier to add you own features to this one, and easier to maintain up-to-date than the official one, because it is a simpler structured wrapper, since it uses p/invoke rather than managed c++. same time, currently you dont quite have the ability to inherit from many irrlicht objects, though a few are supported last I checked.
IrrSharp is an undoubtedly the most ambitious, being a ground-up rewrite of irrlicht in pure c#. its taken several years to get official irrlicht in c++ to this point, and even if they have it's design as a guide, there is a lot of work there to make it all happen in c#. They have also set out to improve on irrlicht's internal design and make it fit better with the strengths of c#. However, at this time, IrrSharp is not complete enough to really use.
so all 3 have their strengths and weaknesses. for now, both the official wrapper, and CP are great choices. in the long run, I think IrrSharp might offer even more for us .NET guys, so we shall see.
the Irrlicht.NET CP port is very complete, and actually really easy to use, as it follows the standard irrlicht API pretty closely. It should be easier to add you own features to this one, and easier to maintain up-to-date than the official one, because it is a simpler structured wrapper, since it uses p/invoke rather than managed c++. same time, currently you dont quite have the ability to inherit from many irrlicht objects, though a few are supported last I checked.
IrrSharp is an undoubtedly the most ambitious, being a ground-up rewrite of irrlicht in pure c#. its taken several years to get official irrlicht in c++ to this point, and even if they have it's design as a guide, there is a lot of work there to make it all happen in c#. They have also set out to improve on irrlicht's internal design and make it fit better with the strengths of c#. However, at this time, IrrSharp is not complete enough to really use.
so all 3 have their strengths and weaknesses. for now, both the official wrapper, and CP are great choices. in the long run, I think IrrSharp might offer even more for us .NET guys, so we shall see.
My irrlicht-based projects have gone underground for now, but if you want, check out my webcomic instead! http://brokenboomerang.net
Re: .NET port/wrappers
Thanks for the replies.
So I'm wondering how this is with the pinvoke port for Irrlicht. Are there a lot of changes from the main API? And are changes documented in any way? Because I personally found having to guess at what I needed and needed to do in OgreDotNet very annoying. In fact being unable to solve that lead me to give up on it as an engine and try irrlicht.
Or maybe I should just start in the official port and then port that back to the pinvoke version later. So many options, so much chance for "buyer's remorse".
I was tempted to use this one, and still actually am, since I am thinking of portability to linux as well. But having just come from OgreDotNet which is also a pinvoke wrapper, I'm kinda hesitant. The basics of OgreDotNet were basically the same as Ogre3d, but any more advanced stuff was changed with no documentation on the changes that I could find, nor a forum presence that could help you with this.buhatkj wrote:the Irrlicht.NET CP port is very complete, and actually really easy to use, as it follows the standard irrlicht API pretty closely. It should be easier to add you own features to this one, and easier to maintain up-to-date than the official one, because it is a simpler structured wrapper, since it uses p/invoke rather than managed c++. same time, currently you dont quite have the ability to inherit from many irrlicht objects, though a few are supported last I checked.
So I'm wondering how this is with the pinvoke port for Irrlicht. Are there a lot of changes from the main API? And are changes documented in any way? Because I personally found having to guess at what I needed and needed to do in OgreDotNet very annoying. In fact being unable to solve that lead me to give up on it as an engine and try irrlicht.
Or maybe I should just start in the official port and then port that back to the pinvoke version later. So many options, so much chance for "buyer's remorse".
There are absolutely no change between Irrlicht native and the CP wrapper but the needed language changes (for instance, OnEvent is an event in CP whereas it is a class in C++) which is the best-documented part. Anyway I tried to fit the more on Irrlicht's native API.
I would say that 75% of problems you would have with CP should be solved the same way as with the official port, 20% would need a post in "Advanced Help" forum (for advanced features not existing on the official wrapper) and only the 5% left would be bugs/issues/problems in CP (because it is still young and needs an even-bigger work to fix everything than to create new features) that would need a special answer.
BTW, porting a huge code from the official wrapper to the CP would be not such a small job... Indeed, names aren't the same (IAnimatedMeshSceneNode becomes AnimatedMeshSceneNode) and overload functions are different. It's only small differences but when you have a huge code, it may be quite annoying
For me two main questions remain :
-Do you plan to have a cross-platform work ?
-Do you plan to use advanced features from Irrlicht or do you just want to discover the engine ?
If you answer positively to one of these two questions, I would suggest my wrapper.
I would say that 75% of problems you would have with CP should be solved the same way as with the official port, 20% would need a post in "Advanced Help" forum (for advanced features not existing on the official wrapper) and only the 5% left would be bugs/issues/problems in CP (because it is still young and needs an even-bigger work to fix everything than to create new features) that would need a special answer.
BTW, porting a huge code from the official wrapper to the CP would be not such a small job... Indeed, names aren't the same (IAnimatedMeshSceneNode becomes AnimatedMeshSceneNode) and overload functions are different. It's only small differences but when you have a huge code, it may be quite annoying
For me two main questions remain :
-Do you plan to have a cross-platform work ?
-Do you plan to use advanced features from Irrlicht or do you just want to discover the engine ?
If you answer positively to one of these two questions, I would suggest my wrapper.
Irrlicht .NET complete and Cross Platform Wrapper
The kid on my avatar wrote:A painless lesson is one without any meaning
As to Irrlicht# (ILS), we are currently playing catch up. As the others have said, it's not really ready yet.
However - A good percentage of Irrlicht has been converted, and it's getting near to the point where it is going to be usable in certain types of projects(if we can get the bugs out), watch for the next file release.
If you are interested in porting one or more scenenode(s), we would be very interested to hear from you..
However - A good percentage of Irrlicht has been converted, and it's getting near to the point where it is going to be usable in certain types of projects(if we can get the bugs out), watch for the next file release.
If you are interested in porting one or more scenenode(s), we would be very interested to hear from you..
Sometimes you've just gotta say, the laws of time and space, who gives a smeg ?!
Irrlicht.Net Information - http://www.irrforge.org/index.php/.net
Irrlicht# (aka the C# port) - http://irrlichtsharp.sourceforge.net
Irrlicht.Net Information - http://www.irrforge.org/index.php/.net
Irrlicht# (aka the C# port) - http://irrlichtsharp.sourceforge.net