位置: 编程技术 - 正文

[Unity3D]降低向Shader中传值的开销(unity调整地形高度)

编辑:rootadmin
摘要

推荐整理分享[Unity3D]降低向Shader中传值的开销(unity调整地形高度),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity怎么降低地形,unity怎么降低地形,unity怎么抬高地面,unity怎么降低地形,unity降低版本,unity降低版本,unity降低版本,unity降低drawcall的方法,内容如对您有帮助,希望把文章链接给更多的朋友!

Unity3D中提供了很多API用于向shader传值,这篇文章对比测试了两类不同的使用方法的性能。

正文

Unity3D中,通过C#代码向shader传值有两种方式。 一种是面向具体的material,另一种是面向所有的material。 以上两种方式分别对应下面两类API:

Material.SetXXX();Shader.SetGlobalXXX();

例如,现在的需求是,需要每帧向shader传递一个offset、一个scale、和一个alpha。

普通的做法是:

在shader中添加:

[Unity3D]降低向Shader中传值的开销(unity调整地形高度)

在C#中通过以下方式进行传值:

以上写法可以正常工作,但是更好的方法是下面这种:

Shader中:

C#中:

第二种方法在GPU寄存器的使用方面会优于第一种方法,因为不论是SetFloat还是SetVector,都会占用一个寄存器。CPU和GPU通信次数越少性能开销也就越少。 用下面的方法做一下测试,可以发现两种方式在CPU方面开销变化很明显,在我的电脑上,万次循环一帧大约可以节省2ms左右。

最后

其实这个技巧也不仅仅局限于Unity3d,在dx和gl中也应该是这样,思想是通用的,如果谁能分享一些不是非常难的结合代码的GPU和CPU通信的学习资料大普通将be very appreciate。

Unity3d读取CSV中的文本到Rich Text中换行符不识别的问题 项目中要用到符文本做一些信息显示,需要有颜色、字体样式、换行之类,Unity的RichText就可以用来做这类需求。关于RichText的使用:

unity3D LineRender的使用 首先做一个预设,添加LineRender组件,变价材质,然后放到资源文件夹中privateLineRendererm_lineRander;privateVector3m_curPos;publicVector3CurPos{get{returnm_curPos;}set{m_curPo

2d ui菜单进入出去 publicAnimatorstartButton;publicAnimatorsettingsButton;publicAnimatorsetplane;publicvoidStartGame(){Application.LoadLevel(RocketMouse);}publicvoidOpenSettings(){startButton.SetBool(TureBool,true);sett

标签: unity调整地形高度

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

上一篇:unity 动态创建摄像机(unity怎么创建摄像机)

下一篇:Unity3d读取CSV中的文本到Rich Text中换行符不识别的问题(unity3d读取gis数据)

  • 进项税额转出会影响利润吗
  • 金税盘抵减增值税的账务处理
  • 会计所得税公式怎么算
  • 如何查询企业税务状态
  • 应付账款不需要函证
  • 资产负债表与利润表的区别
  • 个贷系统平账专户A户
  • 成品油购进数据未同步怎么办
  • 专用发票过期未抵扣怎么处理?
  • 现金流量表上的期末现金余额等于___
  • 小规模纳税人税控盘怎么做账
  • 从国外购进样品要交税吗
  • 有限合伙企业收益分配
  • 可以把两张发票合写在记账凭证上吗
  • 工程项目分包需要缴纳企业所得税吗
  • 个人开劳务专票给公司怎么开
  • 净资产收益率计算公式用期末净资产
  • 企业不合规发票责令补开处理
  • 个体户核税怎么核
  • 新注册公司什么时候报个税
  • 银行代扣社保怎么做会计分录
  • 购买的商业保险可以税前扣除吗
  • 2023年王者荣耀世界杯
  • 长期待摊费用摊销明细表
  • 收到个人款开公司发票
  • win7系统中病毒怎么办
  • 如何让电脑安全
  • php数组函数实现机选双色球
  • 固定资产处置的三种情况
  • php socket select
  • 潜水时看到的鱼
  • 长期股权投资凭证
  • thinkphp yii
  • 电子发票能否作废
  • 资产负债表和利润表的认定
  • thinkphp案例
  • 安装多版本chrome
  • 差额征税怎么交税
  • 行人检测技术
  • kill命令机制
  • php 验证类
  • init 6命令
  • 差额征税的几种情况
  • 投标代理费应如何支付
  • 所得税申报怎么弥补以前年度亏损
  • 增值税发票名称可以写个人吗
  • vue elementui table
  • 固定资产出售算不算收入
  • db2之间的数据库迁移
  • 小规模纳税人可以抵扣进项税吗
  • 权责发生制是根据发票入账吗
  • 招待客户的住宿费发票可以报销吗
  • 有限合伙企业需要缴纳企业所得税吗
  • 创业带动就业补贴是给企业的还是员工的
  • 职工福利费税前扣除标准是应发工资还是实发工资
  • 咨询公司评估选择标准
  • 个人账户发工资扣税吗
  • 高新企业认定条件2022上海
  • sql server如何判断数据库是否存在
  • 如何设置微信语音来电铃声
  • redhat系列
  • unix系统什么样子
  • 苹果电脑的重新启动在哪里
  • targz和zip
  • win8触摸板失灵怎么办
  • win8使用教程和技能
  • linux如何进行命令操作
  • javascript冒泡排序代码
  • perl linux命令
  • javascript运行在什么的脚本语言
  • jQuery使用ajax方法解析返回的json数据功能示例
  • shell脚本常用命令及操作
  • bat批处理执行cmd命令
  • 在一个android创建一个按钮多选对话框
  • android binary xml
  • shell脚本计算执行时间
  • css中position的用法
  • 四川省一般纳税人资格证明
  • 西安税务办税服务厅
  • 报税日期2023年
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设