使用WebGL替代桌面OpenGL

3
我需要完成一个基本的计算机图形学作业,该作业需要在屏幕上显示一个基本模型,并让用户控制该模型组件的位置/方向。我有一些关于OpenGL的背景知识,但我正在考虑改用WebGL来完成这个任务。那么我的问题是,使用WebGL是否存在任何功能限制?我将在Windows上工作,所以我可以选择学习DirectX,但它具有陡峭的学习曲线并受平台限制。此外,当我使用WebGL时,我应该准备好哪些可能出现的问题?请假设我拥有最新的显卡。
2个回答

3

在我看来,使用WebGL有巨大的优势。

  • 您可以利用HTML5进行开发
    • 免费加载图像
    • 免费鼠标输入
    • 免费键盘输入
    • 跨平台音频免费支持
    • 跨平台字体和文本免费支持
    • 免费2D库可生成纹理或操作图像
  • 即刻实现跨平台操作
    • 一个朋友用Mac,另一个使用Linux,都可以正常运行
    • 几乎可以从任何地方访问它。
    • 将您的代码上传到github,发布它,就可以从任何地方运行和编辑。忘记了您的电脑?只需使用许多直接的github编辑器之一进行在线编辑(或使用Dropbox)
    • 需要帮助吗?发送给别人一个链接。即使他们使用不同机器,也可以运行、检查和帮助您。无需兼容的C++编译器或海量库。

1

基本上,你在OpenGL中能做的大部分事情,在WebGL中也能做到。但是有一些注意事项:

  • Javascript的性能非常糟糕,即使对于最新的引擎来说,与C++/Java/.Net相比也是如此。
  • 你的代码是公开的,不是二进制文件。
  • 你缺少许多开发工具:像glm这样的库;模型导入器;gDebugger等。
  • 你大多数时候只能限制在3D图形上:尝试运行一些包含“物理”功能的演示,并查看其性能。在其他语言中,你可以使用所有标准的物理引擎(PhysX、Havoc、Bullet等)。
  • 你无法获得OpenGL的所有新扩展。事实上,你甚至无法获得OpenGL 3。

好的一面是,它比其他所有方式更容易设置:只需复制并粘贴教程的HTML代码,你就可以开始了。没有包含路径,没有依赖项等等。如果你的任务真的只是绘制一个简单的模型并用鼠标旋转它,那么WelGL可能是最好的选择。


今天的JavaScript性能并不糟糕 - 它的速度与C/C++相差不到一个数量级。 - Scott Stensland
@ScottStensland 这真是太糟糕了。谷歌地图在我的智能手机上比在我的四核处理器上更快。 - Calvin1602

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接