WebGL框架 - 最佳选择是什么?X3DOM?

5
我即将开始开发一个使用互动生成的3D内容的Web应用程序。目标是让它在浏览器中本地运行,即不允许使用Flash,仅使用JavaScript + HTML5。
除了纯粹使用WebGL外,最好使用提供更高级别接口的库。
对我来说,X3DOM的方法看起来很棒——而且它似乎被认为将成为浏览器的本地支持,并且该库将铺平道路。
但经过我的第一印象后,我不确定它是否足够轻量级。除了400kb的JS文件之外,还会减慢Firefox的速度。
我需要的功能不多。整个场景设置可以轻松地手动完成。但我需要用户交互,包括确定用户单击的位置。稍后,我希望能够加载和插入常见文件格式的3D对象。
PS:选择的浏览器是基于Firefox和Webkit的桌面和移动浏览器。我不关心IE。
PPS:是的,我知道这个问题:WebGL Framework

为了在我的情况下添加更多信息:我熟悉旧版OpenGL,即没有着色器。但对我来说这不是什么大问题。必要的数学知识在我的情况下也不是问题 - 我已经需要它来设置要显示的数据 :) - Chris
这个问题已经被问了很多次,这里有一份详尽的列表(http://www.khronos.org/webgl/wiki/User_Contributions)。另外,就个人而言,我会投票支持Three.js,因为它是免费的、活跃地开发中,并且似乎是最受欢迎的。 - Jesse Good
在那些答案之后的3-4年里,我必须补充一下:对于简单场景来说,x3dom非常简单易用,是一个不错的选择。但是它有一定的局限性,如果你需要创建自己的函数或添加事件监听器等等。Threejs现在已经超过400Ko,但你可以从源文件中构建自己的版本。所以对我来说毫无疑问是Three.js,在第一年之后仍然如此。根据你的应用程序,你可以更改渲染参数以提高性能,并且还提供了备选方案。 - Mouloud85
3个回答

7

X3DOM非常适合有X3D背景的人使用(并由优秀的开发者开发),但如果您没有任何偏好,Three.JS将是我的选择。


我现在正在使用Three.JS。除了缺乏文档(=>阅读示例代码并在IRC上提问)之外,我非常惊讶地发现几乎没有投影几何/齐次坐标。这可能会限制我以后的工作,但到目前为止它做到了我需要的,并且甚至免费给了我阴影。 - Chris

4

我上周看了大部分的WebGL框架,几乎每一个都在300kB左右。这对我来说太重了。幸运的是,我找到了lightgl.js,它只有28kB大小,包含了你需要开始的一切,使用MIT许可证。

对我来说最重要的是抽象出画布、着色器和纹理初始化。但是lightgl.js还包括鼠标处理模型加载等功能。


4
我认为决策归结为:你想采用更多的设计师方法还是程序员方法。
x3dom: 利用x3d描述场景,更适合设计师方法。只需添加x3dom的css和js即可实现如下操作:
<X3D><Scene><Shape><Box/></Shape</Scene></X3d>

three.js:只允许通过JavaScript生成场景,而且需要大量额外的代码来设置画布。查看这个简单盒子示例的源代码:http://stemkoski.github.com/Three.js/Template.html

两种方式都没有错,我更喜欢先设计场景,需要时再使用JS进行任何计算。


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