在上篇文章
游戏码农:[Unity3d手游开发笔记]角色捏脸的实现zhuanlan.zhihu.com讲述了捏脸中通过调整骨骼的位置,进而保存为bindpose,最终修改脸型的原理;
在真正游戏中,除了修改脸型,我们还需要调整眉毛,眼睛,嘴唇等部位的显示,这些一般都是通过替换贴图的方式来实现的;
我们可以通过两种方式来修改单个部位的贴图:
1:每个单独的部位作为一个Render,我们直接修改材质的贴图即可
优点:原理简单,实现容易
缺点:每个部位都是单独一个drawcall,增加绘制压力
2:整个脸型使用一张贴图,这张贴图是通过一张基本脸型+各个部位的贴图合并到一起动态生成
优点:无论脸上多少个部位贴图需要修改,只有一个drawcall
缺点:每个角色都得动态生成一张脸型贴图,内存增加
本文通过一个简单的例子来讲述第2种方式通过合并贴图的方式来实现捏脸效果
1:创建一个RenderTexture,作为脸型贴图