之所以选择id Software公司相关的技术来演示GLStaticMesh的用法,一个主要的原因是Quake3 BSP关卡地图(或场景)使用二进制存储方式,能够让大家了解TS/JS中如何进行二进制文件的解析(演示ArrayBuffer和DataView对象的好时机)。

3D图形编程是一个非常庞大的主题,从宏观角度,笔者将整个3D图形编程分为三个层次,既画出来、画的美以及画的快。而本书的定位仅仅是画出来这个层次,因此并不实现BSP的材质渲染系统(属于画的美范畴)以及场景管理系统(属于画的快范畴)。

本章主要讲解了如下三个类的实现:

总结一下渲染Quake3 BSP场景的要点:

  • Quake3 BSP三角形定义的手相性是顺时针还是逆时针,你将如何使用WebGL来处理三角形的背面剔除操作?

如果能解答上述四个问题,那么你已经掌握了本章的主旨。