位置: 编程技术 - 正文

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

  • 进出口税则是什么意思
  • 纳税人离线开票时间的文件
  • 标书费没有发票收据可以入帐吗
  • 预计负债的会计核算
  • 个人收到拆迁补偿款缴税吗
  • 生育津贴到公司账上怎么发给员工
  • 完税证明可以重复打印吗
  • 固定资产折旧准予扣除是什么意思
  • 增值税普通发票有什么用
  • 无偿使用房屋
  • 以前年度管理费用多计
  • 公司改变工资结构变相降工资怎么办
  • 支付宝转账到银行卡多久到账
  • 个人设备租赁给公司怎么提供发票
  • 培训费用可以开专票吗
  • 年度账套怎么结转下一年
  • 中央非税收入统一票据怎么做账
  • 房产企业可计入开发成本的利息如何确定?
  • 初级备考需要多长时间
  • 外贸企业出口收入确定
  • 销售货物结转成本会计分录
  • mac废纸篓立即删除和清倒
  • 鸿蒙系统通知栏界面怎么打开
  • rftray.exe - rftray是什么进程 有什么用
  • 电脑开机时出现用户账户控制提示
  • 原始凭证必须具备的基本要素
  • 前端lru
  • vue报错cannot read property
  • 股票的红利
  • java+php
  • 上个月的未达账项对本月的余额有影响吗
  • vue在项目中怎么用的
  • .gp4
  • 暂估入库后发票来不了
  • 收到事业单位分红怎么办
  • 报销具体流程
  • 外贸企业收款有限额吗
  • excel表格复杂表头
  • 记 vue-cli-plugin-dll 使用,优化vue-cli项目构建打包速度
  • 为什么应交增值税要转入未交增值税
  • 增值税为什么不在利润表里体现
  • 企业所得税退回应交税费会计分录
  • 支付宝收付款如何截图
  • 阶段性减免社保费政策期限延长
  • 收到税务局邮件
  • 发票报销抵扣税点是给谁
  • 哪些行业不适用作业法
  • 未分配利润如何计算
  • 应付职工社会保险费计入什么科目
  • 工会经费计税依据是应发还是实发
  • 建筑企业提供服务的机制保障
  • 什么是履约义务,举例
  • 五险一金怎么用呢
  • 会计记账借贷记什么账户
  • linux 编译命令
  • windows模拟
  • linux和windows交互
  • win8本地账户
  • 解决安全问题的有效途径
  • centos7yum安装
  • win7系统宽带连接651
  • win1020h2累积更新
  • linux网络设置在哪里
  • vsftpd的配置文件
  • python条件语句的基本结构
  • unity text
  • jquery删除table行
  • javascript主要学什么
  • jquery怎么打开
  • android sdkmanager
  • js可以实现网页中哪些效果
  • linux中安装python的工具包
  • 北京税务跨区迁移不予受理,原因是什么
  • 江苏省发票真伪查询网站
  • 浙江发票查验不了什么原因
  • 二手车公司如何运营
  • 陕西地税发票怎么重新打印
  • 湖北省纳税大户
  • 干部任免审批表怎么填写
  • 商铺转让要交哪些税费和费用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设