
Few general questions
Posted Wednesday, 1 July, 2009 - 22:38 by Forseti9 inHello.
I am developing a collection of brain training application most of which can be completely made in standard WinForms or WPF, but there are few activities that will require more advanced graphics capabilities (Rubick's cube variant emulation), and WPF would be too clumsy solution for that.
After some research, i have decided that i'll use OpenTK for the graphic part of my application (i'm still not sure whether to integrate the OpenGL window inside the standard Form or to make my own GUI; i would prefer the first option, but i'm still not sure what will i do here).
Can someone tell me what would be the limits of OpenTK, ie. how complex scenes could it render, and yet maintain 30-40 fps at some average PC, what is the shader model support and complexity, what are the cons of OpenTK, what are the alternatives, and how do they compare?
Also, can you just tell me the names of some bigger projects that are using OpenTK? You just tell me some of the suspects, and i will google them to find out more about them and their implementation and integration of OpenTK into their applications.
I would just like to know more about OpenTK before i invest too much of my time into this.
I hope that i'm not too much pain in the ass with all these questions; i have tried to find as much info as i could, but these are some questions for which i need some more personalized answers.
Thanks for any help.
Regards,
Forseti.


Comments
Re: Few general questions
[OpenTK capabilities]
OpenTK only provides bindings to OpenGL and doesn't impose any limits to the size and complexity of your scenes. The only limits are a) the hardware of the target PC and b) the capabilities of your renderer.
Now, the hardware of an average PC varies wildly in performance and features:
In general, the older the hardware you wish to support, the more limited you are from a visual quality standpoint. It all boils down to a classic dilemma (trilemma): support for old hardware, visual effects, implementation cost - pick any two. What is your target audience?
[Alternatives]
As far as I am aware, OpenTK is the only library that a) is cross-platform and b) supports all OpenGL versions (1.0-3.1). The closest alternative is the Tao Framework which offers inferior OpenGL bindings and WinForms support.
Advantages of OpenTK (personal opinion):
The last two points may or may not be of interest, but additional flexibility never hurts.
Disadvantages:
Of course, these are personal opinions. Other people may like/dislike different parts of the library.
If you don't care for cross-platform support, you can also use SlimDX (DirectX 9, 10, 10.1) or XNA. That latter is higher-level, hence easier to use than either SlimDX or OpenTK, but I don't know if it can be used inside Windows.Forms applications.
Your final choice is to use a full-fledged graphics engine instead of plain bindings: Irrlicht3d and Axiom are two engines usable by .Net applications. Using a graphics engine is generally easier than plain OpenGL or DirectX, however I do not know if either engine supports Windows.Forms directly.
[Applications using OpenTK]
I am sorry, but I cannot help you here, as the only list of applications is woefully incomplete. Several posts in the forums indicate commercial use, but the names of the applications are sadly not disclosed.
Personally, I have used OpenTK successfully in my thesis project, which involved building a platform for brain-computer interfaces. The frontend is using OpenTK to drive a virtual environment and can scale all the way from laptop IGPs to one wall CAVEs with stereoscopic rendering. With the exception of the GLControl (WinForms integration), this project used the whole breadth of OpenTK APIs with no serious issues. The aforementioned disadvantages (and the focus of the current work on OpenTK) is mainly based on observations from this project.
Re: Few general questions
Forsetig9;
I use the GLControl on a WinForm app professionally, in a CAD/CAM program. The OpenGL1.3 API seems to work just fine to me, aswell as the WinForm integration.
This thread contains some screenshots from that app' (look for my user name, attached files).
Re: Few general questions
Objarni, i'm glad to see someone using OpenTK for such a complex project, if you're going to make a professional full-fledged CAD program. I hope that OpenTK is good enough for a large CAD/CAM solution.
TheFiddler, that answered most of my questions. Thank you.
Brain-computer interfacing... that's one very interesting subject.
I was thinking about using XNA some time ago, but i can't recall why did i eliminate XNA as an option... i think it had something to do with it's license, but i really can't recall why did i abandon that option. XNA would maybe be a perfect option for my project (it's windows only). SlimDX sounds interesting, but i have heard that it's far from complete, and can't be used in a professional application without heavy modifications and additions.
Re: Few general questions
Forseti9;
No it is not for the whole CAD system, only a special visualization function. (I'm not saying a full CAD is impossible with OpenTK just clarifying what my project was about)
Re: Few general questions
I was referring to the drawing space, modeling and rendering; i'm sure that GUI was done with WinForms or WPF.
Re: Few general questions
Yes it is a WinForms window, integrated into a bigger C++ CAD/CAM system called IGEMS (which is the main product of the company where I am employed). Sorry for the marketing Fiddler but Forseti9 seems to want to know this. Feel free to erase this post if you think it is inappropriate.
Re: Few general questions
SlimDX sounds interesting, but i have heard that it's far from complete, and can't be used in a professional application without heavy modifications and additions.
SlimDX is very complete (not 100%), but I doubt you will find any major feature missing. And if you are missing something, developers usuallly respond and implement missing features pretty fast.
And yes, you can use SlimDX on Windows.Forms. Actually all samples that comes with SlimDX usees Windows.Forms.
Re: Few general questions
Thanks for answering my questions, Fiddler, Objarni & Martinsm. I think I'll reconsider XNA, as it is a perfect choice for my project, and, judging by the number of noobs who manage to make their interactive D3D application in no time, i will have working prototypes very soon.
OpenTK will still be my first option if I ever abandon XNA. Community may not be very big here, new topics are rare, but I'm glad there are members who still frequent these forums and are willing to help other people who are using or considering using OpenTK.
Re: Few general questions
The reason why I had abandoned XNA was that it required both the .Net Framework and the XNA Framework installed in order to run applications. Although people had appropriate DirectX drivers, some of my testers had issues with the frameworks and the game would crash badly. Others would simply refuse to install the beta XNA Framework, knowing that "beta" (translated from "Microsoft language" to real language) means "alpha". Mind this was XNA 1.0, maybe the situation has changed nowadays. Just a friendly warning, because according to your description of the 3D capabilities you need, you would probably be better off with OpenGL (it would even run with unextended OpenGL 1.2, without any hardware accelerator present).
Re: Few general questions
Inertia, sorry for the late reply; I thought I would get a email notification if someone replies. My current project doesn't require advanced graphics or graphical effects; it requires something just a little bit more graphics oriented/optimized than WPF. However, I have already started learning XNA, and I find it really interesting and I will certainly use it for some of my future projects and maybe for this one. I'm still in the planning phase, so I still need to decide what should I use for my graphics engine.
I'm really bad at software architecture, especially when it involves game architecture, like in this project. I'm still not sure how to make all this stuff work; I'll need to have various activities that will be implemented in WinForms or WPF since they require only some standard form elements, then I'll have some activities that require basic 2D & 3D animation, each of these activities will have various levels of details, various kinds of skins for each element, perspectives, modes of playing (this is especially confusing to implement), and each of these along with each of it's suboptions will have an option to be included in a multiple step drill sequence.
*sigh*
I know this may not be the best forum to ask this question in, but can you recommend me some resources (books, training materials, anything that might help me design an optimal architecture for this) related to the above paragraph (one above my 'sigh')? This kind of project is somehow too complex for my current level of experience, but I need it, and I will learn everything needed to successfully finish it. :)
Thanks,
Forseti.