昨天才发现还有A-Frame这么个框架,是Mozilla(moz://a 这个logo挺有创意的)出的,但看了一下其实现方式和语法后,感觉与x3d/x3dom还是有差距的。
二者的实现方式都是基于WebGL(也是Mozilla最先发起的,后来成为主流浏览器统一采用的底层图形库规范)。当然,A-Frame由于出的晚,占了WebVR这个新出规范的便宜,直接直接与VR头盔等硬件有结合。
A-Frame的技术栈是这样的:依赖three.js(基于WebGL实现)、实现WebVR规范草案。
<a-entity geometry="primitive: sphere; radius: 1.5"
light="type: point; color: white; intensity: 2"
material="color: white; shader: flat; src: glow.jpg"
position="0 0 -5"></a-entity>
x3dom则直接依赖WebGL/Flash实现x3d这项Web3D ISO规范。
<x3d style="width:500px; height:400px">
<scene>
<shape>
<appearance>
<material diffuseColor='1 0 0'></material>
</appearance>
<box></box>
</shape>
</scene>
</x3d>
哪种结构更接近XML的本质、更清晰,程序更易被阅读、被解析?不用说肯定是后者吧。
PS:这里如果能基于同一个效果编写相应的两种代码可能更有说服力,不过没办法,见缝插针写两句,有机会再补啦。
PPS:前两天看阮一峰的一篇关于Mozilla的文章《痛苦造就性格》,里面提到Jamie Zawinski和他的日记,他是Mozilla的命名者。回想起来,Firefox真是改变了Web前端标准推广进程的大功臣。