
上QQ阅读APP看书,第一时间看更新
小结
虽然GL(WebGL)难以和Vulkan的接口一一映射起来,但是两者的输入数据、输出数据等,却是非常类似的。给定一个3D场景,在大多数情况下,用GL或者Vulkan都可以实现对该场景的渲染。而从GL或者Vulkan对输入数据的描述来看,两者在接口方面有很多是类似的,总结如表1-2所示。从这个角度来说,基于输入数据输出数据的3D程序分析方法有助于理解3D程序的数据模型。当然,这个方法主要用于程序分析,实际编程的时候还是需要查阅具体标准理解每个接口的含义。
表1-2 WebGL Vulkan数据操作接口对比

本章的例子,都是由一次绘制过程完成的。实际上,为了达到更好的性能,如延迟渲染,实现某些特殊的效果(例如阴影),系统中可能使用了多次绘制。无论绘制多少次,都可以使用输入输出的分析方法。
本书重在分析3D编程的3D几何模型,方法是分析给定的输入数据,经过了什么样的流程得到输出数据。因此虽然本书使用的Vulkan例子源码冗长,但是如果使用输入数据输出数据的分析方法,背后的逻辑会简单很多。有了这个办法,读者就没必要担心数量庞大的Vulkan的编程接口了。当然,具体到每个Vulkan接口,读者还是要去查阅工具书理解每个接口背后的具体含义。
(1) glMatrix项目,http://glmatrix.net/。
(2) OpenGL数学库,https://glm.g-truc.net/。