位置: 编程技术 - 正文

[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数据)

  • 只拿了营业执照十年无办税好注销吗
  • 个体工商户一直没办税务登记证
  • 当月认证了进项票没用完下个月还可以用吗
  • 福利费的进项税额会计分录
  • 个体户定额超了怎么收费
  • 开票时间超限怎么办
  • 业务员不拿工资怎么办
  • 贷款计提利息会计分录
  • 报废车辆残值收入交多少增值税
  • 房产公司办公室布局
  • 印花税按次申报和按期申报区别
  • 小规模纳税人与注册资金有关系吗
  • 个税手续费返还会计分录
  • 租房发票的税由谁承担
  • 教育附加费和地方教育附加费的计算
  • 机票报销发票抬头要开公司的吗
  • 房屋修缮发票能补开吗
  • 公司账上的存货是怎么来的
  • 税务大厅申报社保需要资料
  • 支票可以自己给自己开吗
  • 专票可以当普票用不抵扣吗
  • 高新企业入库是什么意思
  • 查账征收的企业所得税什么时候开始汇算
  • 已核销的应收账款
  • 监理多计量承担什么责任
  • 一般纳税人销售二手车增值税税率
  • php错误日志
  • 如何在Windows 11上卸载更新
  • 鸿蒙系统怎么设置双击亮屏
  • 上一年度会计科目错误怎么更正
  • 怎么扣除购入的物品
  • 开发成本怎么核算
  • php生成csv文件
  • 促销费可以进项抵扣吗
  • 利息补偿金怎么算
  • php stat
  • 深入解析wordpress
  • 公司收到个人汇款怎么办
  • framework7教程
  • 埃菲尔铁塔翻绳的方法
  • 从零开始吧
  • 简单的php文件
  • 商场返点怎么核算
  • 一般纳税人首次申领专票
  • 长期股权投资资本公积增加记哪个会计科目
  • 应交企业所得税是什么科目
  • 小规模纳税人税率1%政策到什么时候
  • 行业协会是怎么赚钱的
  • 市场开发费用会计分录
  • 股东出资资本金可以是问别人借来的吗
  • 登记账簿遇到的问题及解决
  • 收到其他企业投资是属于其他业务收入吗
  • 融资租赁和经营租赁的会计处理
  • 变更法人需要什么条件
  • win7 bug
  • win7系统默认输入法
  • putty无法输入中文
  • docker基础教程
  • 用u盘装系统怎么操作步骤
  • ubuntu20关机卡在logo
  • Windows7忘记开机密码一键还原
  • windows live language setting
  • js数组菜鸟教程
  • android应用结构包括哪些
  • Unity3D: StartCoroutine 和 yield return 深入研究
  • javascript的if
  • jquery窗口
  • 隐藏应用名字
  • android studio 开发语言
  • javascript教程
  • vue卡片式风格
  • 社保申报后多久缴费
  • 机票票号怎么查航班
  • 河北电子税务局开票流程
  • 123600是税务电话吗
  • 小孩一卡通丢了去哪里补办,需要什么证件
  • 什么是"五证合一"登记制度?办理"五证合一"程序和方案
  • 地税局跟税务局有什么区别
  • 地税局网上报税
  • 2015年1毛硬币直径?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设