High-end Professional 3d application
High-end Professional 3d application
Hi all,
Just found this site and the work shown here looks really good. On a similar note, I have a question you guys could answer.
I plan to write a fully blown 3d application that is gonna be in the league of Maya, Softimage XSI, 3ds Max, LightWave, etc. I have some friends from work as part of the group. C# is our target language.
We are all professional 3d artists working in the film industry and some of us are more in the programming/art area.
Anyway the problem is we don't know which 3d framework to use as the base.
Right now these are on our list (some might be irrelevant due to our misinformation):
XNA
SlimDX
OpenTK
Tao
Irrlicht
Unity3d
MOGRE
WPF
Please add others that we could use if we have missed them?
We included WPF because some people suggested that it has "serious" 3d capabilities, I doubt it, but haven't tried.
We don't really need very specific stuff like pathfinding, etc as they are no use to use. We need a core framework to build on top.
What we really care mostly is having a consistent, nicely designed API (also in .NET sense) we can use that's gonna give us the ultimate performance. So if the framework we choose ends up 3 times slower than something else we could use, then that wouldn't be desirable. We know that by using C# we already trade some performance, so don't wanna trade much more of it.
So if you guys can help us find the right framework to use, we would be most that grateful.
Thanks all.
edit: Added MOGRE.
Just found this site and the work shown here looks really good. On a similar note, I have a question you guys could answer.
I plan to write a fully blown 3d application that is gonna be in the league of Maya, Softimage XSI, 3ds Max, LightWave, etc. I have some friends from work as part of the group. C# is our target language.
We are all professional 3d artists working in the film industry and some of us are more in the programming/art area.
Anyway the problem is we don't know which 3d framework to use as the base.
Right now these are on our list (some might be irrelevant due to our misinformation):
XNA
SlimDX
OpenTK
Tao
Irrlicht
Unity3d
MOGRE
WPF
Please add others that we could use if we have missed them?
We included WPF because some people suggested that it has "serious" 3d capabilities, I doubt it, but haven't tried.
We don't really need very specific stuff like pathfinding, etc as they are no use to use. We need a core framework to build on top.
What we really care mostly is having a consistent, nicely designed API (also in .NET sense) we can use that's gonna give us the ultimate performance. So if the framework we choose ends up 3 times slower than something else we could use, then that wouldn't be desirable. We know that by using C# we already trade some performance, so don't wanna trade much more of it.
So if you guys can help us find the right framework to use, we would be most that grateful.
Thanks all.
edit: Added MOGRE.
Last edited by lachdanan on Sun Jan 11, 2009 6:52 am, edited 1 time in total.
Scrap Irrlicht unless you come back to the fold of c++, especially if you guys are artists looking for good looking end result. The .NET section of Irrlicht is, to my knowledge, pretty much abandoned and so many changes happened recently that using an old version would be a heart-breaker, especially in comparison to other engines.
Look around, even a search on this forum should bring up the topic of the guy doing the wiki with a list of various engines and all their characteristics.
But honestly, it all depends of your goals. Commercial or not, high-end, low-end, demonstrate something in particular, etc. Give us at least a rough draft if you want us to help guide you.
P.S.: HEAD MY WARNING AND FLEE XNA! No, seriously, I never suffered as much as when I had to use that...
Look around, even a search on this forum should bring up the topic of the guy doing the wiki with a list of various engines and all their characteristics.
But honestly, it all depends of your goals. Commercial or not, high-end, low-end, demonstrate something in particular, etc. Give us at least a rough draft if you want us to help guide you.
P.S.: HEAD MY WARNING AND FLEE XNA! No, seriously, I never suffered as much as when I had to use that...
Thanks Dorth.
When I heard about Irrlicht, I thought it was written in C#. And you are right we certainly don't want to use C++ for this, too much overhead for us.
It's hard to demonstrate it, but we wanna have say stuff like this:
http://www.softimage.com/press/visuals/ ... haders.jpg
It's gonna be a pretty advanced app, and while we might suffer some performance, I think careful design decisions and implementations and less overhead overall is gonna balance it out.
Basically it will be able to handle pretty much everything these high-tier 3d apps like Maya, XSI can do, so say in modeling, animation (character, particles, simulations, etc)
Off top my head, I see myself using either using:
1. Some framework that handles both DirectX and OpenGL successfully
or
2. A well designed wrapper for DirectX or OpenGL only.
Either is fine but #1 would be cool if it was possible. We don't really want to abstract it out ourselves.
And as long as our base is strong, the rest is not big of a problem for us, just time which is ok
Thanks again.
When I heard about Irrlicht, I thought it was written in C#. And you are right we certainly don't want to use C++ for this, too much overhead for us.
It's hard to demonstrate it, but we wanna have say stuff like this:
http://www.softimage.com/press/visuals/ ... haders.jpg
It's gonna be a pretty advanced app, and while we might suffer some performance, I think careful design decisions and implementations and less overhead overall is gonna balance it out.
Basically it will be able to handle pretty much everything these high-tier 3d apps like Maya, XSI can do, so say in modeling, animation (character, particles, simulations, etc)
Off top my head, I see myself using either using:
1. Some framework that handles both DirectX and OpenGL successfully
or
2. A well designed wrapper for DirectX or OpenGL only.
Either is fine but #1 would be cool if it was possible. We don't really want to abstract it out ourselves.
And as long as our base is strong, the rest is not big of a problem for us, just time which is ok
Thanks again.
I would recommend Irrlicht.Net Cross Platform, which is now the only (and therefore official) .Net wrapper for Irrlicht, but this isn't what you want. The power of Irrlicht is that it's very easy to edit and extend, but using a wrapper takes this away and demotes you to a user rather than a developer.
I think you're going to have the same problem with other wrapped engines, if you need to add some functionality then you'll have to edit the C++ source and then the wrapper. If you really must use C# then I'd go against Dorth and say use XNA or something open source and XNA-based, at least you'll be able to edit the code.
Having said this I think it's a bit backward to work C# or any other language into your requirements, it would make more sense to choose a language based on the requirements of your product.
I think you're going to have the same problem with other wrapped engines, if you need to add some functionality then you'll have to edit the C++ source and then the wrapper. If you really must use C# then I'd go against Dorth and say use XNA or something open source and XNA-based, at least you'll be able to edit the code.
Having said this I think it's a bit backward to work C# or any other language into your requirements, it would make more sense to choose a language based on the requirements of your product.
-
3DModelerMan
- Posts: 1691
- Joined: Sun May 18, 2008 9:42 pm
yeah
C++ is the industry standard. And it really isn't that hard once you get used to it. What's this program going to be called by the way?
That would be illogical captain...
My first full game:
http://www.kongregate.com/games/3DModel ... tor#tipjar
My first full game:
http://www.kongregate.com/games/3DModel ... tor#tipjar
Thanks guys for replying. I and a few friends in the group write tools in C++ regularly but we don't want to deal with it's overhead for our app, simply because we are a handful of people so the scope of the software is already huge, choosing C++ over C# would only makes things far more complicated that we would rather not deal with.
Also we plan to make it open source, not commercial and have a timespan of possibly several years, so it's not something we wanna release tomorrow. We still work on the design and to be honest the design is what makes the difference, or else there would be no point in writing another 3d app, just for the sake of it.
We didn't really settled on a name yet for the app
Thanks.
Also we plan to make it open source, not commercial and have a timespan of possibly several years, so it's not something we wanna release tomorrow. We still work on the design and to be honest the design is what makes the difference, or else there would be no point in writing another 3d app, just for the sake of it.
We didn't really settled on a name yet for the app
Thanks.
-
FuzzYspo0N
- Posts: 914
- Joined: Fri Aug 03, 2007 12:43 pm
- Location: South Africa
- Contact:
Cant believe noone has asked this, why do you want to reinvent the wheel? you will be reinventing a wheel that,by the time your wheel can barely stand up will be obsolete and irrelevant in the graphics industry. If you truly are in the real 3d industry you would know that its a cutthroat cutting edge scene where advancements are made daily.as a non programmer setting out to make something a dam awesome programmer would never do, it makes no sense. The flexibility of the applications like xsi,max and even luxologys modo is so enhanced and advanced i dont see it as a setback.
Why not integrate your solution into an existing tool,making it do what you need,if thats your aim.if your aim is to rival the apps that are on such high standards i think its best you step down from the clouds and wake up.
Sorry if i sound harsh,but be honest with yourself up front it saves you the trouble of disappointment.
If you doing it purely for learning,or wasting your weekends and free time, hey! Go ahead
but i would suggest using whats available and expanding. Besides,those applications,to hold up performance wise are deep coated engine level graphics api programming.directx,opengl core stuff.there is no fluff when it comes to pushing the limits of the industry.its either amazingly well constructed with incredible skill,or its a team of hundreds constantly working to make it work.not a side project that will take time away from the tools you could be making to make things easier. Stuff like realtime ao shaders might be slow for realtime,but it renders a hell of a lot faster for animation.look into evolving what the industry is doing rather than tryin to follow in the footsteps of giants.
Hope you hear what im saying behind this,not the way its delivered. I wish you the best of luck
Why not integrate your solution into an existing tool,making it do what you need,if thats your aim.if your aim is to rival the apps that are on such high standards i think its best you step down from the clouds and wake up.
Sorry if i sound harsh,but be honest with yourself up front it saves you the trouble of disappointment.
If you doing it purely for learning,or wasting your weekends and free time, hey! Go ahead
Hope you hear what im saying behind this,not the way its delivered. I wish you the best of luck
You could use WPF as a GUI front while perhaps using C++ version of Irrlicht as the main engine?
I currently use WPF and Irrlicht.Net and concur it does suck not having the latest C++ version, especially considering I can't at the moment implement many of the new features into the wrapper.
Regards Wolfe
I currently use WPF and Irrlicht.Net and concur it does suck not having the latest C++ version, especially considering I can't at the moment implement many of the new features into the wrapper.
Regards Wolfe
FuzzYspo0N, trust me we know what are doing. We use these apps daily in and out and have complete mastery over them both as an artist and as a programmer (for a few of us).
I can see where you are coming at but bear in mind that we are not approaching this from a traditional POV. So it's not another copy of these apps, else it would serve no purpose.
Anyway thanks for the feedback.
I can see where you are coming at but bear in mind that we are not approaching this from a traditional POV. So it's not another copy of these apps, else it would serve no purpose.
Anyway thanks for the feedback.
-
FuzzYspo0N
- Posts: 914
- Joined: Fri Aug 03, 2007 12:43 pm
- Location: South Africa
- Contact:
yea omaremad has the same mindset as me. its not about the application failing, its about reusing what is reusable already... seeing as you are such a master ( no doubt ) a master would understand that the apps of today can give you anything, and do anything from within itself.. (using its native tools even) so i dont see why you would recreate a whole bunch of tools that exist to make new tools, it only slows you down 
You guys are missing the point. We sure do know that anything can be done in those apps, but that's more to the artist than the app.
The important thing is not about doing it, but how.
If we were thinking like you guys, then apps like Mudbox wouldn't exist as it was also written by production artists. And people would easily argue and did in fact that ZBrush was more than enough, so what's the point of reinventing it since it does exactly the same thing? But if you have actually used both apps in production, you surely would know
As for blender, same thing, it's just another copy of Maya, XSI, Max, etc. Doesn't bring anything new to the table as those fancy features like "fluid sims", etc don't matter in actual production work.
So it's pointless to discourage us
The important thing is not about doing it, but how.
If we were thinking like you guys, then apps like Mudbox wouldn't exist as it was also written by production artists. And people would easily argue and did in fact that ZBrush was more than enough, so what's the point of reinventing it since it does exactly the same thing? But if you have actually used both apps in production, you surely would know
As for blender, same thing, it's just another copy of Maya, XSI, Max, etc. Doesn't bring anything new to the table as those fancy features like "fluid sims", etc don't matter in actual production work.
So it's pointless to discourage us
I think what your group need is a workflow tailored exactly to your environment. And if you're simply looking to build one tool to cover all of that is probably a mistaken idea.
Anyway, I wouldn't recommend higher-level APIs like the one you posted above, they're too focused and narrow for your requirements. Start with DirectX and OpenGL as your base then work your way up, setting-up the layers aren't that hard, tho. I've done it, I have my own API already just because I have to learn it. I use that knowledge to navigate around Irrlicht code which isn't that hard.
But to think you can code and finish it in one year is simply way too optimistic.
So, the point I'm driving at here is you have to cover the basics and then work your way up.
Good luck. Hope you get that application going.
Anyway, I wouldn't recommend higher-level APIs like the one you posted above, they're too focused and narrow for your requirements. Start with DirectX and OpenGL as your base then work your way up, setting-up the layers aren't that hard, tho. I've done it, I have my own API already just because I have to learn it. I use that knowledge to navigate around Irrlicht code which isn't that hard.
But to think you can code and finish it in one year is simply way too optimistic.
So, the point I'm driving at here is you have to cover the basics and then work your way up.
Good luck. Hope you get that application going.

-
full.metal.coder
- Posts: 68
- Joined: Sat May 10, 2008 11:30 am
- Contact:
I'd just recommend that you reconsider your language requirements in some way. C++ is definitely the best option for desktop apps, especially if you need them to be fast which, I believe, is one of your requirements. If for some reason you cannot afford to write the whole application in C++ then it would probably still be a good idea to write its core in C++ and use whichever language you like most for the less critical parts (mostly UI).
I am not so familiar with C# myself but I believe you can easily use both C++ and C# in a project fairly easily.
Last, but not least, there is (almost) ALWAYS a point in writing "concurrents" to existing desktop apps. Not everyone realize this but USABILITY matters a lot for apps used in intensive production environments (no flame war intended but Blender's UI kinda sucks IMO).
Good luck with your project.
P.S : almost forgot the actual topic... I've only ever tried Irrlicht and Ogre so I can't help you that much. The only thing I can tell you is that Ogre is slightly harder to tweak and its API is more high-level and more verbose than Irrlicht's.
I am not so familiar with C# myself but I believe you can easily use both C++ and C# in a project fairly easily.
Last, but not least, there is (almost) ALWAYS a point in writing "concurrents" to existing desktop apps. Not everyone realize this but USABILITY matters a lot for apps used in intensive production environments (no flame war intended but Blender's UI kinda sucks IMO).
Good luck with your project.
P.S : almost forgot the actual topic... I've only ever tried Irrlicht and Ogre so I can't help you that much. The only thing I can tell you is that Ogre is slightly harder to tweak and its API is more high-level and more verbose than Irrlicht's.