WebGL开发与应用
上QQ阅读APP看书,第一时间看更新

1.4 Sim.js框架

Three.js提供了一个中间层来掩盖WebGL原生API的底层细节,降低了WebGL编程的门槛。很多代码都是可以重用的,如创建网格、设置纹理、添加子类、添加鼠标事件等,但在实际应用中,程序员不得不去做大量重复的工作,因此,在大型的程序中,很容易出现逻辑混乱、条理不清、可读性差等问题。

Sim.js([美]Tony Parisi,https://github.com/tparisi/sim.js)把这些工作抽象成了一个更高等级的可重用对象,它采用面向对象的方式封装了Three.js中的常用对象,简化了Three.js中许多重复的任务,比如设置渲染器、循环重绘、处理DOM时间等。Sim.js是一个轻量级的开发框架,它是完全开源和免费的。

Sim.js中包含三个核心的类:

(1)Publisher类(Sim.Publisher):封装了所有可触发的事件,处理事件回调,这个类也是后面两个类的基类。

(2)Application类(Sim.App):封装了所有建立或删除操作的代码,管理应用中所有的对象列表。

(3)Object类(Sim.Object):封装了用户自定义的3D对象,例如在场景中增加或移除物体、添加子类、位置变化等。通常情况下,这些类会在App类中被实例化,生成三维场景。

大多数情况下,程序通过实例化一个Application类和多个Object类来构建一个完整的三维场景。利用Sim.js框架,程序员可以按照面向对象的方式进行WebGL应用的开发。

要注意的是,由于Three.js不同版本之间存在细微差别,因此在使用Sim.js框架时,要根据版本的不同进行相应的修正。