请见Demo: Vox APP
大量的morph动画,请见Demo: Vox APP
3D系统中 Morph 动画需要改变顶点坐标。可以再GPU中完成计算,也可以在CPU中完成计算再将数据传到GPU。针对opengl体系的API, 纹理,顶点数据,uniform等都可以作为通用的Morph animation 计算数据载体。
变形计算过程真的放在GPU中就好吗?这确实不一定。放在GPU中计算,可以利用GPU的算力,但是因此产生一个弊端: 每一次draw call都需要消耗算力。对于移动端这类算力有限的设备,如果顶点数多或者绘制次数多了都会显著增加计算消耗。放在CPU端计算是一个可选项,但是需要一些技巧能利用GPU的渲染计算过程,减少CPU端计算的消耗。如果纯粹是CPU来计算,那么大量的计算CPU是受不了的,移动端更受不了。
综上所述,是GPU和CPU协作一起完成大规模视觉变形动画计算过程,才是合理的方式,总目标是: 以假乱真。例如在有很多草丛或者树的渲染场景,对于树木或者草丛由于只重"写意"而非“工笔”所以可以用这种方案。
自由形状Demo:Vox APP