● 怎样背黑锅才最快
应付了曲面,接下来我们要面对的就是另外一个更黑的锅了。曲面细分可以缓解CPU生成顶点的压力,让200万多边形的模型轻松拥有2000万多边形才会有的细腻外形。但即便没有曲面细分,200万多边形到2000万多边形也不过是翻了10倍,对这种需求CPU虽然不一定可以流畅的予以满足,起码还是存在执行的可能的。而如果场面上需要1000个人物同时出现,其模型总量显然会成百上千倍的激增,为每一个人物都单独生成模型显然就不现实的。CPU也许可以应付10个香草的需求,但1000个兵哥哥人人都要来的话,绝对会把CPU彻底压死。
一个一个的为这些士兵生成模型很不现实
GPU是坚韧的,既然生活必须面对一个又一个的艰难险阻,那我们就积极去克服它们,健康向上的活着吧。
逐步增加的几何压力
因为有积极的克服困难的心态,所以我们有了顶点引证(Vertex Instancing)和DrawInstanced函数。
顶点引证实例
要明白引证的原理其实并不困难。设想一下,假如你是一个非常危险的职业——网络水军,每天的任务就是发几百个100字左右的,内容相近但又不能完全相同的帖子,如果一个字一个字的敲,你显然不具备任何完成这份沉重任务的可能性。但如果你事先编写一个比较通用的范本,把它保存在剪切板里,然后在ctrl-V之后稍微改上几个字,那完成任务的速度将会显著提高。顶点引证所做的事情,其实跟这个是一样的。
有了引证,这种场景的实现就轻松多了
对大数量的拥有重复性但却有不能完全相同的模型来说,程序可以先创建一个通用模型的基本信息,然后将模型的基本信息封装成一个位于基础索引内的只读信息包,这就是网络水军们得通用帖子模板。几何单元可以通过SV_InstanceID的索引来快速读取通用模型信息,并跳过重复的创建过程,这就是著名动作ctrl-V。接下来只要对通用模型进行一定的LOD修改等常规动作,即可完成一个全新模型的输出。
顶点引证实例2
由此可见,科技其实没什么神秘之处,它跟艺术一样,都是源于生活又高于生活的。
三秦IT网的官方微信:更多资讯请关注:三秦IT网官方微博