我用C++/OpenGL(使用Dev-C++编译器)为我的微积分2类编写了一个程序.老师很喜欢这个程序,他请我以某种方式把它放到网上,这样我就可以在网页浏览器上运行它而不是下载.exe.有点像java小程序在浏览器上运行.
问题是:
如果可能,我可以在Web浏览器中显示C++/OpenGL程序吗?我正在考虑转向JOGL,这是对OpenGL的Java解释,但我更喜欢使用C++,因为我对它更熟悉.
还有其他更好,更简单的3D网络基础API我可以考虑吗?
AFAIK,只有3种选择:
Java的.它包括整个OpenGL堆栈.
Google的Native Client(NaCL),基本上它是一个允许你运行可执行x86代码的插件.只需编译它并从HTML中调用它.高度实验性,没有人会安装它.不确定它是否允许您访问OpenGL库.
画布:3D.另一个很实验的项目.这是一个可从JavaScript访问的加速3D API.AFAICT,它仅适用于Firefox的实验版本.
如果有的话,我会选择Java.
OTOH,如果它主要是矢量作品(没有大量纹理和照明/阴影),你可以简单地通过将矢量从3D投影到2D来使其适用于SVG.在这种情况下,您可以使用SVGWeb实现跨浏览器兼容性,它是一个简单的JavaScript库,允许您透明地使用浏览器的本机SVG支持或基于Flash的SVG渲染器.
最近WebGL有很多活动.它是Javascript与本机OpenGL ES 2.0实现的绑定,设计为canvas HTML5元素的扩展.
它得到了Firefox,Safari,Chrome和Opera的夜间版本的支持.
看看这些教程的基础上,众所周知讷河OpenGL教程.
基于WebGL的几个项目正在兴起,最着名的是Scenegraphs API.
来自独立团队:SceneJS,GLGE,SpiderGL.
来自Google:O3D插件背后的团队正在尝试为项目实现纯WebGL后端(源代码),因此不需要插件.
来自W3C/Web3D:正在进行讨论,将X3D作为任何HTML5 DOM树的一部分,与HTML4中的SVG非常相似.该X3DOM项目去年出生支持这一想法.现在它使用WebGL作为其渲染后端,并且自2010年3月以来版本为1.0.
我几乎可以肯定WebGL是不久的将来的方式.Mozilla/Google/Apple/Opera正在推广它,如果技术有效并且有足够的客户/开发人员需求,微软可能会在IE上实现它(我们希望不会有"WebDX"!).