位置: 编程技术 - 正文

Unity3d 人物换装之 一个Shader处理3张图片 减少DrawCall(unity2d角色换装)

编辑:rootadmin

推荐整理分享Unity3d 人物换装之 一个Shader处理3张图片 减少DrawCall(unity2d角色换装),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity spine换装,unity人物换肤用什么方法,unity替换人物模型,unity换装游戏设计,unity2d角色换装,unity人物换肤用什么方法,unity中2d人物换装,unity人物换肤用什么方法,内容如对您有帮助,希望把文章链接给更多的朋友!

在上一篇

Unity3d人物换装之Mesh合并(材质合并)

中,我通过一个例子,将三个带有不同颜色 RGB的立方体,合并Mesh和材质到Character这一个GameObject中。这样原本对3个GameObject的操作只需要对Character这一个GameObject进行操作就好了。但是我们的任务还没有完成。

合并之前的游戏:

合并之后的游戏:

大家注意看合并之前和合并之后,虽然GameObject数量减少了,但是DrawCall一个都没有减少哦!之前是4个,合并之后仍然是4个。

简单的来说呢,就是一个材质球,一个DrawCall。也就是说呢,一个Shader,一个DrawCall。

既然知道了一个Shader一个DrawCall,那我们就开始着手去处理,把红、绿、蓝这三张图片,在一个Shader中进行处理,只使用一个材质球,这样就只有1个DrawCall了。

Unity3d 人物换装之 一个Shader处理3张图片 减少DrawCall(unity2d角色换装)

我们来创建一个Shader,就叫CombineShader吧,在默认的Shader代码基础上,删掉MainTex这个纹理,添加我们自己的三个纹理:_Red 、_Green 、_Blue .

在上面的未完成的Shader中,我取了_Red 的纹理来做取样。我们接着修改脚本代码,使合并之后的GameObject Character使用CombineShader创建的材质。

运行之后能看到,在Character这个GameObject使用的材质球中,需要输入三张纹理图片。

现在再看,DrawCall数量已经降到2了,也就是说,合并之后 由原来的3个DrawCall 降到了 1个DrawCall。

但是还是有问题呢,为什么只显示一个立方体,哈哈,是我们代码写错了。

应该改为

好了,这次可以显示了,但是为什么没有贴图?

为什么没有贴图?因为我们只是在Unity中设置了贴图,但是在Shader中还没有去使用它们。

将Shader修改如下:

我们看到在surf 中对顶点颜色的Alpha&#;进行了判断处理,这是利用顶点色Color的属性,在代码中进行赋&#;,来区分当前顶点原来是属于哪一个立方体的。比如说color.a是0,那么原来就属于红色立方体,就给它从红色纹理来取样。

最后看运行结果,DrawCall减少到2 ,Character也完整的显示出来了。

工程示例下载:

【猫猫的Unity Shader之旅】之简述3D图形学 上次我们说到一个完整的Shader的比较完整的框架,如果大家之前没有接触过3D相关的技术的话看起来可能会比较吃力,其实这也在猫猫的意料之中的。3D

Unity3D游戏开发之在Android视图中嵌入Unity视图 转载自:

UnityRandom介绍 介绍UnityRandom是一个针对Unity3D的伪随机数库,使用C#语言开发。代码和文档都在Github上。UnityRandom采用Mersennetwister伪随机数发生算法,能够快速产生高质

标签: unity2d角色换装

本文链接地址:https://www.jiuchutong.com/biancheng/384564.html 转载请保留说明!

上一篇:Unity 使用WWW类同步加载资源

下一篇:【猫猫的Unity Shader之旅】之简述3D图形学(猫的喵喵)

  • 小规模纳税人公户的钱怎么转出来
  • 营业税是什么意思 视频
  • 经营罚没物品增值税计算
  • 股息红利增值税和企业所得税
  • 长期负债营运资金比率公式
  • 公司报销生育津贴,孕期还需要去社保局备案吗
  • 生产车间的修理计入什么科目
  • 现金账记错了该如何改正
  • 新成立的公司银行存款如何入账
  • 旧机动车交易需要哪些法定证件
  • 研发部门领用材料会计分录
  • 经营性的资产项目有哪些
  • etc预付卡发票能不能报销
  • 土地增值税哪些可以抵扣
  • 补贴与工资薪金一起发放,属于福利费,还是纳入工资薪金总额税前扣除?
  • 银行利息所得税调整方案
  • 上年多计提附加税调整了,今年怎么调整
  • 营改增后不动产进项税额抵扣
  • 在会计上主营业务利润和营业利润有什么区别?
  • 股东以股抵债是否合法
  • 进项税额抵扣不完怎么办
  • 固定资产折旧金额影响因素
  • 预提费用的会计分录2018
  • 产品成本核算方法的构成要素
  • 浅谈php技术
  • 新用户注册表单代码
  • 政府搬迁补偿款怎么算
  • 冲减应收账款的分录
  • 企业迁址如何办理手续
  • 长期股权投资成本法收回投资
  • 长期股权投资投资收益计算
  • 民营企业的工业项目建设-经营-转让是什么模式
  • 微信小店api
  • 结转完工产品成本的会计分录
  • 客户购买商品的条件?
  • 受托加工收到的材料怎么入账
  • 合伙企业分红怎么做账
  • 个人在平台销售怎么做
  • 增值税申报表33栏显示有欠缴税额
  • 企业贷款利息可以开发票吗
  • java hash()
  • 帝国cms灵动标签怎么调用
  • dedecms转eyoucms
  • mongodb4.4.2安装教程
  • 职工福利费开支超过准予扣除标准的金额为1.2
  • 税务登记是需要原件还是复印件
  • 会计报表编制基本要求
  • 哪些进项税额不能抵扣
  • 跨年取得的发票金额大于暂估金额
  • 政府扶持资金怎么做账
  • 研发费用账务处理完整版
  • 外贸出口转内销会计分录
  • 法人投资属于什么会计科目
  • 培训发票能抵扣吗
  • 收到代收款需要开票吗
  • 供应商退回来的钱应走哪个科目
  • 实务操作中如何快速记忆
  • 可转换债券是什么资本
  • MySQL下载安装步骤详解
  • mysql函数大全以及举例
  • Windows Server 2016技术预览版第四版系统截图曝光 编号10565
  • window10 左下角
  • win10如何关闭windows安全中心图标
  • win7睡眠设置在哪
  • 如何清楚windows搜索记录
  • 电脑微软拼音输入法
  • win10预览版选哪个
  • win7一直出广告
  • 红石cpu教程
  • Linux系统中如何编译C程序?
  • [置顶] clauvio,Twitter小老鼠
  • JavaScript运算符都有哪些
  • javascript中的继承
  • vue.js打包部署
  • unity3d动画系统
  • jquery可以实现哪些效果
  • jquery判断div是否为空
  • 开发票收多少税点?
  • 国家税务总局,湖北省税务局
  • 云南医保可以网上买药吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设