位置: 编程技术 - 正文

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

  • 进项税和销项税怎么理解
  • 偶然所得纳税计算
  • 房屋契税怎么交在手机上操作
  • 小规模企业出租设备税率
  • 怎么从其他公司挖人
  • 先结转损益还是先结转本年利润
  • 铁路运输发票的开具要求
  • 财政收回项目资金的整改报告
  • 对公付款没有发票
  • 业务宣传费超出部分以后年度怎样处理
  • 商品过期可以向商家索要赔偿吗
  • 买酒 专票
  • 盈余公积为0说明什么问题
  • 无形资产的入账价值包括宣传费吗
  • 普通发票需要什么
  • 政府收购企业资产规定
  • 来料加工企业如何计算产值
  • 平销返利可以作为下期的折扣开票吗?
  • 外地项目的预交税款没交怎么办
  • 员工罚款可以从工资里扣吗
  • 所得税汇算清缴分录怎么做
  • 历年亏损企业开什么发票
  • php中字符串函数
  • 增资后多久才可以减资
  • 支付宝账户收到100块钱如何用
  • 人工单位怎么写
  • 绿萝怎么扦插?
  • CSS: overflow-anchor 固定滚动到底部,随着页面内容增多滚动条自己滚动展示最新的内容
  • 梅萨维德国家公园特点
  • 净资产收益率的概念
  • 用php开发app
  • HTML与PyCharm
  • mac配置flutter环境变量
  • Vue3通透教程【四】Vue3组合API初体验
  • 借方和贷方是什么意思 现金日记账
  • css page-break-after
  • 看望职工家属可以计入福利费吗
  • 事业单位电费应该谁交
  • 免征增值税的项目可以开专票吗
  • 出入库单可以用机打的吗
  • centos7.0安装
  • sql server评估期已过版本升级时重启失败
  • 不发工资可以先报警吗
  • 月末库存商品成本计算
  • 坏账核销的会计处理
  • 未交增值税借方表示什么意思
  • 已认证的红字发票要给购买方吗
  • 未分配利润太多的危害
  • 退货对方不开具红字发票怎么办
  • 退回的增值税税费怎么做会计记录
  • 租车运货产生的费用
  • 农副产品免税发票可以抵扣吗?
  • 小规模纳税人购入货物收到增值税专用发票
  • 公司的钱如何提出来
  • 备用金如何管理制度
  • 甲方扣水电费施工方是否开票
  • 账务调整会计分录
  • 银行固定资产有哪些
  • sqlserver多表查询怎么加索引
  • mysql could not be resolved: Name or service not known
  • 数据转换常见策略
  • Mysql 5.7.17 winx64在win7上的安装教程
  • win8什么时候停止更新
  • xp如何给文件夹加密码
  • linux 编译命令
  • mac uuid查询
  • 苹果mac使用
  • xp系统怎么隐藏文件
  • windowsxp改密码怎么改
  • 一键配置天赋的台词
  • 批处理命令大全及用法
  • jQuery插件能输出到控制台
  • android系统介绍
  • python网络爬虫教程
  • jquery地址
  • jquery自定义方法
  • JavaScript程序设计形考任务第一次任务
  • 税务文书档案保管期限
  • 供暖企业所涉及的行业
  • 进口货物增值税的计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设