位置: 编程技术 - 正文

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

  • 事业单位怎么给分
  • 新公司和旧公司对比
  • 没有原始凭证怎么补税
  • 理财产品分红和不分红的区别
  • 网购商品怎么报销
  • 活动经费属于什么费用
  • 资产负债表期初和期末的关系
  • 申报企业所得税流程
  • 补交以前年度房产税和滞纳金需要更改以前年度报表吗
  • 国有企业改制资产评估增值税收规
  • 增值税专用发票税额怎么抵扣
  • 进料加工企业的增值税如何处理
  • 一般纳税人只交进项税吗
  • 话费发票入账
  • 增值税一般纳税人税率
  • 职工教育经费进项
  • 小微企业免征增值税条件
  • 应付职工薪酬所得税汇算清缴
  • 餐饮个体户税务登记需要什么资料
  • 融资租赁增值税优惠政策
  • 公司购买理财的好处有哪些
  • u盘启动器安装系统
  • 内部交易逆流如何算利润
  • 购买树苗计入会计科目吗
  • system idle process是什么进程(CPU的空闲率)
  • win10怎么设置硬盘为第一启动项
  • php ftp管理系统
  • 公司未经营需要做所得税年度清缴吗
  • php生成代码
  • 给客户回扣如何做账
  • php连接数据表
  • 收到无法支付的押金收入
  • node升级版本
  • laravel app接口
  • 一般纳税人增值税减免政策2023
  • 企业进项税大于销项税财务怎么做分录
  • php输出表格css
  • js加密解密源代码
  • 推荐最好用的
  • 嵌入式从业10年,聊聊我对工业互联网和消费物联网的看法 | 文末赠书4本
  • chk命令
  • audit result
  • 旅游景点的门票能做费用吗
  • 出口汽车配件怎么报关
  • 新成立的公司企业所得税
  • 企业管理费用的分类
  • 出票后定期付款的汇票,其提示付款的期限为
  • 专用红字发票如何开具
  • 所得税预缴申报表中营业成本怎么计算
  • 生产成本和营业成本的区别和联系
  • 纳税检查企业多缴企业所得税如何处理
  • 公司主要产品
  • 个税起征点提高的意义
  • 疫情期间购买消毒弥雾机的请示
  • 完工不拨付工程款怎么处理
  • 本期已认证且不抵扣怎么申报
  • 公司从员工工资扣水电费
  • 长期股权投资其他权益变动
  • sqlserver 字符串包含
  • sql server常规错误
  • sql查询界面怎么做
  • mmc不能打开文件services.msc
  • 怎么删除服务器管理的服务
  • win8点击桌面没反应
  • 找回失窃的书本任务
  • windows8鼠标没反应怎么办
  • youphone.exe是什么
  • linux系统中怎么编写一个程序
  • css各种滤镜的应用是什么
  • jquery轮播代码
  • viewpager2+fragment
  • python标准模板库
  • 使用nodejs实现简单的局域网聊天功能
  • javascript Window及document对象详细整理
  • python爬虫快速入门
  • python写脚本教程
  • 国家税务局浙江电子税务局官网入口
  • 湖北省国家税务总局
  • 金税三期怎么打完税凭证
  • 缴纳了车辆购置税能退吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设