在网络中使用openGL的最佳方法是什么?

时间:2009-09-03 03:00:36

标签: opengl

我用C ++ / OpenGL(使用Dev-C ++编译器)为我的微积分2类编写了一个程序。老师很喜欢这个程序,他请我以某种方式把它放到网上,这样我就可以在网页浏览器上运行它而不是下载.exe。有点像java小程序在浏览器上运行。

问题是:

如果可能,我可以在网络浏览器中显示C ++ / OpenGL程序吗? 我正在考虑转向JOGL,这是对OpenGL的Java解释,但我更喜欢使用C ++,因为我对它更熟悉。

还有其他更好,更简单的3D网络基础API,我可以考虑吗?

7 个答案:

答案 0 :(得分:5)

AFAIK,只有3个选项:

  1. Java的。它包括整个OpenGL堆栈。

    • Google's Native Client (NaCL),基本上它是一个插件,让你运行可执行的x86代码。只需编译它并从HTML中调用它。高度实验性,没有人会安装它。不确定它是否允许您访问OpenGL库。

    • Canvas:3D。另一个很实验的项目。这是一个可从JavaScript访问的加速3D API。 AFAICT,它仅适用于Firefox的实验版本。

  2. 如果有的话,我会选择Java。

    OTOH,如果它主要是矢量作品(没有大量的纹理和照明/阴影),你可以简单地通过将矢量从3D投影到2D来使其适用于SVG。在这种情况下,您可以使用SVGWeb实现跨浏览器兼容性,它是一个简单的JavaScript库,允许您透明地使用浏览器的本机SVG支持或基于Flash的SVG渲染器。

答案 1 :(得分:5)

WebGL最近有很多活动。它是Javascript与本机OpenGL ES 2.0实现的绑定,设计为画布HTML5元素的扩展。

Firefox,Safari,Chrome和Opera的夜间版本支持它。

根据众所周知的NeHe OpenGL教程,查看这些tutorials

基于WebGL的几个项目正在出现,最着名的是Scenegraphs API。

  • 来自独立团队:SceneJSGLGESpiderGL
  • 来自Google:O3D plugin背后的团队正在尝试为项目实施纯WebGL后端(source),因此不需要插件。
  • 来自W3C / Web3D:目前正在讨论将X3D作为任何HTML5 DOM树的一部分,与HTML4中的SVG非常相似。 X3DOM项目于去年诞生,以支持这一想法。现在它使用WebGL作为渲染后端,自2010年3月起为1.0版。

我几乎可以肯定WebGL是不久的将来的方式。 Mozilla / Google / Apple / Opera正在推广它,如果技术有效并且有足够的客户/开发人员需求,那么微软可能会在IE上实现它(我们希望不会有“WebDX”!)。

答案 2 :(得分:2)

在Java之外,浏览器中的OpenGL确实处于起步阶段。谷歌为它推出了一个非常酷的API和插件。它被称为O3D:

http://code.google.com/apis/o3d/

关于整体倡议的文章: http://www.macworld.com/article/142079/2009/08/webgl.html

答案 3 :(得分:1)

你真的有时间重写它吗?我认为学生们太忙于非必要的任务工作。

但是如果你真的想这样做,也许以flash手机的形式预览它是最简单的方法。那么这只是一个问题,如果人们有兴趣,你可以提供真实应用程序的下载链接。

答案 4 :(得分:1)

这不是OpenGL,但Web3D Consortium's X3D specification可能会引起人们的兴趣。

答案 5 :(得分:1)

另一种解决方案是使用Emscripten(源到源编译器)。 Emscripten支持C / C ++和OpenGL,并将源代码转换为html / JavaScript。

要使用Emscripten,您需要使用SDL作为平台抽象层(用于获取OpenGL上下文以及加载图像)。

Emscripten目前正在虚幻引擎中使用,也将用于Unity 5引擎。

在此处阅读有关该项目的更多信息: https://github.com/kripken/emscripten

答案 6 :(得分:0)

两种方法:

  1. 切换到Java。但是,作为便携性的折衷,您的应用程序将遭受性能损失。但由于Java无处不在,这种方法可确保您的代码可以在大多数浏览器中执行。

  2. 使用ActiveX,它允许您为Microsoft Windows运行本机二进制代码。这在生产中不推荐使用,因为activeX众所周知是一个潜在的安全漏洞,但由于您的讲师是查看它的人,安全性似乎不是什么大问题。这仅适用于Microsoft平台(Windows + IE)。