我正在考虑学习 WebGL,首先想到的是 JavaScript 是客户端的;使用什么方法(如果有的话)使服务器端 JavaScript 专门与 WebGL 相关?
2 回答
我也是 WebGL 的新手,但我仍然觉得这是一个非常高级的问题。我相信这是一个高级问题,因为存在的答案范围可以满足您的要求以及与专有 WebGL 相关的当前问题。
如果您对 WebGL 进行过任何研究,您将立即看到对服务器端代码的需求,因为 WEBGL API 代码是在浏览器中执行的,因此任何知情的人都可以免费使用。对于习惯于发布已编译代码的游戏开发人员来说,这不是典型的情况。
通过使用服务器端控件,开发人员可以隐藏大量的 WebGL 转换、着色器和矩阵,并且仍然在客户端代码中保持一定程度的信息隐藏。但是,如果没有有效的互联网连接,游戏将永远无法运行。
由于 WebGL 仍然相对较新,而且 IE 不支持它,所以期待事情会发生变化。M$ 可能决定他们想要构建自己的 Web API,例如最终成为 ASP.NET 库的 WebGL。当前为您所面临的问题构建解决方案所需的所有复杂性都浓缩为一个 3 按钮向导。
话虽如此,我认为您的问题的答案在于某些未来技术的命运。对于更大的目标,很可能会有大量的来回沟通;像 HTTP 这样的协议可能不会削减它。WebSockets 或其他类似技术可能值得研究。如果您尝试将 Canvas 用于较小的用途,那么了解构建动态 JavaScript 可能就足够了。
这些答案的问题在于 OpenGL 本身就是一个 API,并且具有特定的操作顺序,并不意味着要更改。这意味着这种构建 WebGL 应用程序的方法非常有限。由于更改 GL 对象可能需要整个 Canvas 重新启动、页面刷新或新页面请求。这可能会导致效果不理想。现在我会说目标低,但可以肯定的是,WebGL 会改变我们 Web 开发人员所知道的 www。
我不确定你在找什么,可能不是这个...... :)
但...
如果您想为不支持 WebGL 的浏览器提供服务器端回退,比如说生成固定帧作为某些 3D 场景的 png 图像,那么您可以用 C 或 C++ 编写您的 3D veiwer,在针对您的服务器端回退时为 OpenGL ES 构建它,并使用Emscripten定位支持 WebGL 的浏览器。