OpenGL Wrapper in .Net
This question is similar to the one here . But I find the recommended answers (such as Tao and OpenTK) are not good enough because they are just a direct port from OpenGL, no OOP design and difficult to use.
What I am looking for is a .Net OpenGL wrapper that is written in clear OOP principles, easy to use (easy to apply text and lighting, easy to debug, etc.), able to rotate a 3D diagram with a mouse (function which is critically lacking in OpenGL and TAO) and the ability to export to other file formats (like dwg or dxf or the Google map file format).
Any suggestion? Both Open Source and commercial components.
a source to share
While you are correct that an OOP wrapper would be possible, the truth is that you need to understand how OpenGL works (this is true of any wrapper API, and doubly true for OpenGL). Since you find the OpenGL APIs difficult to use, you probably don't understand rendering well enough to use any wrapper API.
Most wrappers avoid heavy class structures because storing state with each object and sending it to the GPU for each object is very inefficient and can kill your frame rate. You, the programmer, should be aware of these pain points and not try to hide them behind an abstract wrapping layer. The library designer cannot solve them for you.
a source to share
The big problem is that OpenGL is not the backbone of OOP, it is a state machine ( http://en.wikipedia.org/wiki/Finite-state_machine ) as such any translation to the OOP library is going to add complexity highlighting that will slow down your program. So either use it as a state machine or look at an OOP library like OGRE. But for many things, OGRE will be too restrictive.
When it comes down to it, why do you need OOP with OpenGL? There was a reason the library was written the way it was, and that is because it displays the hardware underneath very well. The graphics card does not think in OOP, it is a state machine, and the library used to program it reflects this.
a source to share
Maybe too arrogant, but I write my own abstraction. It works most of the time, but it's in a planning state, but gives you an idea of how to implement the OpenGL OOP abstraction.
Have a look at SVN: http://sourceforge.net/projects/genomalib/develop
Of course this is not a production code solution, but it opens up and expands easily once the design is received. Again, I added a "legacy" API as it was originally written for rendering with shaders only (indeed, it still doesn't support "legacy" hardware); but certainly i have a render foundation ...
a source to share