位置: 编程技术 - 正文

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图形学(猫的喵喵)

  • 无合同销售收入怎么算
  • 股东向公司借款超过一年不还
  • 价外税和价内税的理解
  • 税后营业利润和利润总额的区别
  • 人力资源公司可以接保安业务吗
  • 污水处理税收优惠政策
  • 金税盘坏了更换需要几天
  • 汽车减税
  • 临时聘用人员费用谁承担
  • 股权投资需要准备哪些材料
  • 股东溢价转让股份交易市场会计分录
  • 法人资本个人资本
  • 工会经费如何做会计分录科目
  • 会计凭证的填制与审核过程
  • 税金及附加怎么计提
  • 股东退股分红怎么拿回
  • 没有实收资本是负债吗
  • 未确认融资费用借贷方向
  • 预收款转营业外收入要交增值税吗
  • 代扣职工社保
  • 工资放在主营业务成本和放在管理费用一样吗
  • 公司有好多没有股份的人
  • 春节发放物品计入什么科目
  • 腾讯手游助手如何退出登录
  • 可以用鸿蒙系统的手机
  • 应交增值税与预交增值税报告如何披露
  • win10下载的软件打不开
  • 收到人才引进已受理的短信
  • PHP:session_decode()的用法_Session函数
  • 进程查看工具
  • 工会举办的比赛有哪些
  • 前端doctype
  • php修改ip地址
  • vue中遇到的问题
  • php web socket
  • 银行对账单附在记账凭证中吗
  • 行人重识别map
  • 数以千计的拼音是什么
  • 智能优化算法可以用到哪里
  • 自动化测试三年规划
  • php制作的大型网站
  • 购买超市购物卡会计分录
  • 出口销售折扣怎么处理
  • 资产负债率 70%
  • 季度报税有利润必须要报交所得税吗
  • 出售持有股票会计处理
  • phpcms缩略图不要自动裁剪的设置方法
  • mybatis模糊查询特殊字符处理
  • 在阿里云的云主机之间怎么通信
  • 银行存款余额调节表保管期限
  • 企业基金分红具体流程
  • 公允价值变动借方表示什么
  • 建设工程的材料质量检测由谁负责
  • 货物退回并补货什么意思
  • 个人独资企业与有限公司的区别
  • 借款合同的
  • 机票电子行程单查询
  • 退回资金怎么做账
  • 哪些情况下可以终止心肺复苏
  • 母公司设立子公司协议
  • 企业所得税汇算清缴时间
  • 金税盘发票认证怎么操作流程
  • mysql -u -p -s
  • freebsd查看硬盘信息
  • windows server 2008 r2激活密钥
  • 联想lenovoideapad700-15isk
  • win7系统分辨率调错了黑屏
  • ubuntu 编译软件
  • mediaexplorer是什么意思
  • 升级linux版本
  • FreeGLUT Tips: Resolve compile issue: error LNK1104: cannot open file 'freeglutd.lib'
  • node.js的概念
  • python问题及解决方法
  • javascript用处
  • 谷歌邮箱
  • Android as Bluetooth Low Energy Peripherial (GATT server).
  • 12333医保缴费具体步骤
  • 企业欠税交不起怎么办
  • 日本快递税率
  • 美国各州房产税税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设