位置: 编程技术 - 正文

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
  • 境外所得税收抵免政策
  • 公司的车卖了
  • 实收资本选择什么子目
  • 其他债权投资通俗
  • 公务接待和商务接待自查
  • 业务招待费是收入的
  • 暂估成本的会计处理
  • 代办营业执照费用大概多少
  • 个人承包建筑工程转让协议
  • 城镇土地使用税纳税义务发生时间
  • 外贸企业申报出口退税的期限
  • 货物运输业增值税发票样本
  • 工业会计成本核算读书笔记3000
  • 如何计提加计抵减额分录
  • 水电费分割单会计分录
  • Android 10.0 framework中关于Activitity的生命周期的源码讲解
  • 企业购买期货
  • 退质保金计入什么科目
  • 厂房和设备折旧年限
  • 增值税简易计税方法适用范围
  • 国家给农民的青春有哪些
  • 销售精装修房如何做账
  • 保税区里的企业叫什么
  • 运用java解决的实际问题
  • linux中ubuntu安装教程
  • sql将一列数据变成一行显示
  • python 添加列表
  • 债务豁免涉税
  • 用mysql的小技巧
  • 计提电费的会计分录怎么写
  • 请培训老师的费用怎么处理
  • 公司购买办公用品会计分录
  • 拆迁补偿款的组成
  • 收到季度房租需要分摊吗
  • 捐赠支出税前扣除比例
  • 开公司合理避税的方法
  • 汇算清缴亏损弥补不能自动带出该怎么办
  • 产品成本计算的分批法适用于
  • 预缴增值税什么科目
  • 一般纳税人弱电包工包料怎么开票
  • 管理费用和财务费用属于什么科目
  • 蓝字发票认证怎么操作
  • 生产成本和制造费用期末有余额吗
  • mysql innodb缓存
  • sqlserver 触发器 if 后边没执行
  • Linux虚拟机下mysql 5.7安装配置方法图文教程
  • egui.exe是什么进程
  • linux网络接口配置命令
  • win7系统所有软件打不开
  • win10每周更新
  • 持久化存储数据的方式
  • unity小例子
  • python 内置函数名作为变量名
  • vue js组件
  • python编写飞机大战
  • javascript面向对象 第三方类库
  • python爬虫程序下载网页上内容
  • ca钥匙登陆不了电子税务局
  • 浙江国地税申报网
  • 国税局发票打印软件下载
  • 一般纳税人申请流程
  • 市中区税务局办税大厅上班时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设