如何将OpenGL代码转换为WebGL

如何将OpenGL代码转换为WebGL,webgl,Webgl,我已经用OpenGL做了一个图形项目,现在我想把它转换成WebGL,这样我就可以把它放到网上了。有没有办法直接把OpenGL C++代码转换成WebGL或者我必须手动重写? 我只学习了WebGL的一些基础知识,同时也学习了javascript(只是因为编写WebGL时需要它)。 也欢迎任何其他建议。一般来说,需要手动重写。通用解决方案正确解释现有代码的可能性不大。当然,您可以编写自己的转换器,因为您可以只处理自己的代码和结构 还值得一提的是,WebGL是OpenGL ES 2.0的一个子集,因此

我已经用OpenGL做了一个图形项目,现在我想把它转换成WebGL,这样我就可以把它放到网上了。有没有办法直接把OpenGL C++代码转换成WebGL或者我必须手动重写? 我只学习了WebGL的一些基础知识,同时也学习了javascript(只是因为编写WebGL时需要它)。
也欢迎任何其他建议。

一般来说,需要手动重写。通用解决方案正确解释现有代码的可能性不大。当然,您可以编写自己的转换器,因为您可以只处理自己的代码和结构

还值得一提的是,WebGL是OpenGL ES 2.0的一个子集,因此为桌面系统编写的代码无论如何都不一定兼容


<>我最近看到的是将Objo模型转换成WebGL代码的代码。

< P>除非你的应用程序是微不足道的,否则你的问题大部分都是将C++代码转换成JavaScript。C++和JavaScript是非常不同的语言,例如一个是静态类型的,另一个是动态类型的。 WebGL基于OpenGLES2.0,它大致是OpenGL2.0的一个子集。因此,您可以编写可直接翻译的OpenGL代码,但并非所有OpenGL代码都是可直接翻译的。如果没有更多信息,很难知道移植OpenGL代码有多容易


我不知道有什么工具可以为您实现工作自动化,如果我看到这些工具,我会非常怀疑。将一种编程语言或API的语义映射到另一种编程语言或API是一项很难自动化的任务。

我很惊讶没有人提到。这不是一个完美的解决方案,取决于代码是如何构造的,以及使用的是什么库,你可能需要做一些手动调整,但是它作为一个通用的C++到JavaScript交叉编译器的工作效果很好。
我不保证这是一个神奇的子弹,但它可能值得一看。

这是一个商业解决方案,但可以做到这一点。它甚至在WebGL上模拟OpenGL ES 1.1的固定功能支持。还有一个将转换C/C++并且显然有一些旧的

否则,

<>你必须把C++转换成JavaScript当然
  • 如果您使用旧OpenGL的旧固定函数功能(glVertex、glColor等),则必须将它们转换为新的OpenGL 4和OpenGL ES 2.0可编程样式
  • 这似乎可以作为在浏览器中运行非javascript代码的基础

    EnScript(已经提到),我认为,可以理解LVVM,它可以由一些C++编译器输出,但是它也可能需要手动的工作,这些方式都是这样。


    我从来没有使用过这些工具,但是读过它们,它们看起来很有趣,并且试图达到您想要实现的目标,我不能说任何关于实现的内容以及它们在“真实世界”中的工作方式。

    kusma和@SpliFF感谢您的回复。事实上,我已经创建了一个建筑物的漫游,现在我想在网上宣传它,这就是为什么我需要webGL。非常感谢你的帮助。我得看看曼德里尔的预算。但它真的很棒。非常感谢……)我正在尝试与Emscripten合作。。。让我们看看会发生什么。我正在使用glut库。你有关于这对你有什么帮助的更新吗?我正在学习一个严格意义上的OpenGL类,但我希望将我的最终项目转换为基于web的版本…让我添加桌面GL,如果您碰巧仍在使用它,它需要一些工作来模拟。