最初题目unity地形碰到超多层(这里按32层会商)需求时有很是严重的采样性能题目,其中响应的处理计划很是多,由于比来又想出一种比之前更好的所以再次重新会商下这个题目.其中参考的3种之条件过若何实现和优弱点最初有链接. 以下都是指不利用rvt情况下对照,我们开辟完rvt后,采样性能的影响就削减很多了.但碰到显存不敷裕不成落地rvt的项目.这个优化还是很成心义. 按unity引擎的地形采样方式,会用结果最守旧的方式采样,采样8张权重图(每张控制4个材质id),再采样32张albedo和32张normal,一共需要可骇的72次采样.假如斟酌去tiling再次翻倍 必定是现实不成用的计划.虽然shader内做了一点判定 假如 持续4张id 权重都为0那末 跳过一个pass采样,但地形大部分地区很难做到持续4个id都不用,使得这个优化根基生效. 间接思绪面临这个题目最间接思绪是每个地形控制贴图(这里叫splat图,point采样)的每个纹素只存32层中 权重最大的4个ID(一般存2-4个).再对这4个ID的权重存入一张weight图(双线性插值采样). 这也是手游上最简单的处置方式.可是这类题目会出现大量接缝 需要靠摆放物件 石甲等阻挡. 这里用 存3个id为例 诠释为什么道理上就不成避免接缝(马赛克结果) 间接思绪的 接缝道理 这里有2个纹素,别离记录3个当前位置最重要id与权重.为了计较简单 双方权重都设备成一样,红绿2个点为中心相邻 位置 ,那末按照权重图插值 由于左右都是0.6 那末中心插值出权重也是0.6,但由于记录的id与顺序分歧,所以红点获得0.6A 0.3B 绿点获得0.6B 0.3A,但屏幕空间上这2个像素又挨着 又存在庞大分歧,所以一定出现马赛克. 多层变化剧烈地方会出现马赛克 针对这个题目,会发生出3种应对思绪. T1 确保相邻纹素排序分歧 只要id不异 那末权重图就寄义不异,就支持双线性插值,理论上这是最高性能处理计划,但现实上没法做到这点,由于每个点排序依靠四周点.而四周点又有他四周的限制条件.总会出现过各偏向的条件分歧渡不了的情况. T2 不用双线性插值 手动采样相邻4个纹素ID(采样量x4)做手动插值,不记录每个ID权重,完全按照位置过渡(farcry5 计划,但他还按照高度图过渡) farcry5 只存ID计划 按照红点 绿点位置 处于0.5处,所以 双方位置附近 计较成果也附近.由于权重完全按照位置来算.splat只存ID.这类是显存 采样数目 接缝 性能都最好的计划.我们项目用了2年多. 为什么纷歧直用下去,是由于新的需求有沙漠图(farcry5每沙漠图),这类每个纹素只要一种材质,材质过渡范围是一个纹素对应的天下空间 比如2米内.这样对需要大范围半通明夹杂出的沙漠就不能满足.他需要每个纹素最少 2个分歧权重ID叠加. farcry5计划 没法实现这类大面积同时存在2种分歧权重ID夹杂出的结果 T3 类似T2但每个纹素记录3个ID和对应的权重 这里演示 这类算法成果很是切确,由于不是靠硬件插值 而是 采样左右一切6个ID 按照位置别离计较权重与位置关系. 这里只演示uv的u偏向 现实是 是4个相邻像素.这样需要12次采样,每个像素采样3个 ,性能又不太好了. 块存储计划这是此次想出的新计划.既然自力存储会致使要末左右计较纷歧致,要末需要左右都零丁采样 采样量太大.那末斟酌块整体存储.就是相邻4个纹素一路 存一份4个纹素都用到最大权重的4个ID,同时存入每个ID 4个纹素的权重数据. 块存储计划 由因而一路存储的,这样计较成果就能始终可过渡,弱点就是 在分歧的块(2x2纹素) 需要反复存储每个纹素对应块ID的权重,也是由于这一点点显存开销,避免了 在分歧块内由于收集的ID分歧而权重歧义. 由于现实不是表示图的2纹素,而是4纹素.所以采样次数是4次 对照 12次.性能提升很多 结果也很不错,这是由于相邻4个纹素总是有大量反复ID. 左:unity原始守旧计划 右:块存储计划 别的由于unity每4个图层用一个pass 所以 批次与三角形衬着数目都很多,这里显现是2倍.由于有大量反复的图,实在项目刷的更丰富后,这个差异会更大. unity 计划 需要133批次和64k三角形 该计划 需要67批次 和 31k三角形 性能对照该计划相比当前项目线上版本(类似T3) 利用更实在地形在1050显卡的机械上,gpu提升0.78ms ,实在运转游戏大要从125FPS提升到138FPS. 固然 最快的 必定还是 farcry5计划,作为技术我小我最喜好这个计划,一切的材质都不应当半通明过渡出来,既然供给了32层,就应当预夹杂好所需从材质.这样整体也更清楚. 1050显卡 测线上计划(类似T3) 239FPS 1050 显卡 测block计划 292FPS 1050 显卡 测farcry5 夹杂计划 327FPS 最初在实在游戏中落地 1050机械上跳伞与远眺时 提升了庞大的7ms这是由于 游戏中开启了 类似ue4的 去tiling采样 也就是 翻倍采样normal与albedo ,所以差异进一步拉大.同时 由于游戏自己的复杂致使gpu本就是最大瓶颈,优化gpu的收益就更明显. 左:线上版本 右:文文章计划 显存优化上面做的都是提升采样性能,但在超大地形中,显存的开销也是需要大幅度优化的.按我们项目4x4千米,每平方千米一个地块来算.今朝默许的资本 需要1splatID图+4权重图.有20M,16个地块就是320M,这明显是不成适用的.除了做streaming处置,自己也需要紧缩到一个更公道数据. 优化前显存占用 左:splat图,右:权重图 首要优化手段是格式与尺寸.格式上假如能控制16张图,那末4位可以表达一个ID,4个ID用 r4g4b4a4格式.unity代码里叫 TextureFormat.RGBA4444,但面板里叫 RGBA16.权重也是如此16色半通明过渡够用了,不需要256 所以也是用这个格式.而关于尺寸可以对地形默许权重图取mipmap2来用. 这样单个地块就是128kx5=0.64M,16地块就是10M,这样就从320M 下降到10M,这个开销pc与手机都能接管了,只要本来3.125%. 优化后显存占用 左:splat图,右:权重图 在这样庞大的紧缩下,稍微的过渡精度丧失是可以接管的.看下结果对照.别的小幅度的优化还有很多不逐一描写了.比如之前把权重总合控制为1,然后少一张权重图(用1- 3个权重获得第四个权重),又比如把4张单通道4位的图.手动合并成一张RGBAHalf的图 这样4次权重图采样只要一次采样就能完成.而且是point采样 多个数据操纵凹凸位紧缩到同一个通道并不会采样时插值毛病. 优化后 10M显存的画面结果 优化前 320M显存的画面结果 该计划代码工程代码不长,具体的算法细节间接上完整代码是最直观的 |
在工作中,除了技术工作之外,我们也经常需要写一些项目的方案,当然如果公司比较大,
尽管“断直连”的基本方向已确定,但受各参与方合作意愿、政策理解角度、科技/服务能
作为运营人,写方案是必不可少的,而要想写一份优秀的运营方案,掌握框架、抓准方案的
想要做一名合格的产品经理,首先要能写好一份好的产品方案。一份好的产品方案,会在产
可能不需要再更新了,所以放在开头。因为对我这个方案不满意,所以试了其它的方案,用
2019.09.26更新:文章内容较多,前半部分主要阐述完成一份方案所需的运营思维,建议刚
这是一个故事。请各位看官老爷酌情相信。方案一方案一方案二方案二方案三方案三方案四
编辑导语:有些人在写策划方案时,总觉得页数越多,感觉准备得越充分,对策划案页数迷
听周边的同事和学员的反馈说,每次一到写方案的时候,经常会陷入一种非常焦虑的状态:
11月21日,据中国人民银行网站消息,为深入贯彻党中央、国务院决策部署,按照《长江三
制作:刘珂君、岳小乔、皇甫凌雨、冯慧文、安博文
我国正在加速进入老龄化,这是不争的事实。专家早在几年前就提出了延迟退休的方案,当
近日,中共中央办公厅、国务院办公厅印发了《粮食节约行动方案》,并发出通知,要求各
日常工作问题剖析实际的工作中,不管是项目经理还是售前工程师,给客户提供的大部分解
近日,济南市政府印发《济南市数字人民币试点工作实施方案》(以下简称《实施方案》)
无论是从事运营、策划或其他需要制定方案的岗位,写方案、改方案、执行方案都将成为你
如何保证项目实施成功?项目设计?需求报告?调研记录?项目培训?项目策划?上述提到
国务院联防联控机制11月22日举行新闻发布会表示当前,随着奥密克戎变异株快速传播我国
编辑导语:在产品经理的日常工作中,往往需要了解和收集许多的用户需求,那么,如何将
以下文章来源于泡泡Ter ,作者老1泡听身边不少朋友同事聊到他们写方案时的状态,经常
声明:本站内容由网友分享或转载自互联网公开发布的内容,如有侵权请反馈到邮箱 1415941@qq.com,我们会在3个工作日内删除,加急删除请添加站长微信:15314649589
Copyright @ 2022-2044 杭州共生网络 www.gongshengyun.cn Powered by Discuz!