创建本机C ++ OpenGL 3D编辑器并将其用作C#中的WinForms或WPF控件

我想创建一个简单的3D编辑器程序,我不喜欢C ++ windows编程。 但是,我也不想在使用OpenGL时弄乱托管代码。 因此,可以在本机C ++中创建一个控件,它将托管OpenGL 3D绘图表面,没有其他控件,也有接口(方法和属性),并将其用作WinForms中的控件,甚至更好,WPF申请?

也可以使用托管C ++。 我为WinForms创建了一个简单的OpenGL控件,它符合您的要求。 你可以在这里找到更多关于它的信息 。

它必须是OpenGL吗? 考虑使用XNA,它可以让你使用C#和DirectX。 否则我建议你找一个OpenGL的C#包装器。 这里列出了两个包装器http://www.opengl.org/resources/bindings/ 。

我真的不明白你的意图。 你说你讨厌C ++编程,你不想在使用OpenGL时弄乱托管代码,你想要没有ui控制的opengl窗口,但是你需要winform或wpf。

如果你讨厌编程c ++,你必须使用托管代码。 如果您不想在使用OpenGL时弄乱托管代码,则必须使用c ++编程。 如果你想在原生C ++中创建一个控件,它将承载OpenGL 3D绘图表面,没有其他控件(我假设UI控件),为什么要考虑winform或wpf?

不要使用WPF来创建3d繁重的应用程序。 wpf意为ui。 你会发现很多限制。 托管(WPF)也有局限性,这使得将opengl与wpf一起使用毫无用处。

我认为最好的选择是XNA或http://www.opentk.com/(如果你必须使用OpenGL)。 Tao Framework已经过时,不值得付出努力。

我建议你看看Ogre 3D( http://www.ogre3d.org )。 这个跨平台的C ++库涵盖Open GL和DirectX。 它已经成功嵌入到Qt,MFC中,甚至还有.NET表示。 我强烈建议你看看它。

你所要做的就是用c ++创建一个包装器来公开c#中的函数