Unity使用Skinned Mesh Renederer的BlendShapes时,报错“Platform does not support compute shaders”

Unity使用Skinned Mesh Renederer的BlendShapes时,报错“Platform does not support compute shaders”

报错

项目中需要使用Skinned Mesh RenedererBlendShapes功能。
当导入模型,并拖拽到场景中,尝试改变BlendShapes中的数值时。项目发生报错”Platform does not support compute shaders”。如图。
Unity使用Skinned Mesh Renederer的BlendShapes时,报错“Platform does not support compute shaders”
Unity使用Skinned Mesh Renederer的BlendShapes时,报错“Platform does not support compute shaders”

原理及解决方法

详细查阅了各种资料,找到了解决的方法。其中涉及了Android项目中PlayerSetting中的一个重要的选项:GPU Skinning。这个看起来很高级的选项。此选项:这个工具的作用是同一种角色在同屏里面出现一大堆时,它把骨骼矩阵存在配置文件里面,然后通过特殊的shader,计算顶点的位置,直接在GPU端得到了网格模型的顶点在动画帧该在的位置。这一切由于是在GPU端直接得出结果,所以根本不会产生CPU的合并和DrawCall。这种做法,其实是很典型GPU骨骼动画做法。(此内容引用链接:https://blog.****.net/liweizhao/article/details/81937626
而这里我们只需要关闭此项即可。这样BlendShapes就可以正常使用了。