unityd基于物理渲染的问题解决.docVIP

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
unityd基于物理渲染的问题解决.doc

unity3?d 基于物理渲染?的问题解决 最近1个月做?了unity? 次世代开发的?一些程序方面?的支持工作,当然也是基于?物理渲染相关?的,主要还是sk?yshop marmos?et的使用吧?,他算是uni?ty4.x版本 PBR的优秀?方案之一了 但在使用以及?性能上,还是多少有些?坑和不足,这里也是自己?的一些心得吧?,希望可以其他?对这个方案有?兴趣的朋友起?到一些帮助。 ? 一、遇到了fps?降低的BUG? 国庆节前的老?版本工程和最?新的工程版本?运行起来没任?何区别,但新版本在真?机上的的运行?效率有问题,只有7.5fps 开发和运行环?境, XCode6?.1 IOS8.1? IPad Air 分辨率 2048x1?536 Graphi?c level GLES 3.0 图1 老版本的运行?截图,为了能做参考?,我这里把新版?本的场景文件?拷贝到老工程?里 新版本相同的?场景就只有不?到8FPS 然后对两个版?本用Xcod?e做了分析,旧版本fps? analyz?e 新版本fps? analyz?e,同样的sha?der消费的?ms是老版的?5倍 文章出处狗刨学习网 发现bug后?,尝试定位问题?? 1 一开始认为是?marmos?et版本问题?,但用老版本完?全覆盖,fps并没有?提升? 2 删除和场景资?源相关外的所?有资源,重新buil?d后,fps就恢复?了,不过这种解决?方法应该是无?非接受的 目前临时的解?决方法,把老工程的P?roject?Settin?gs里的文件?替换过好了,具体的原因还?要继续排查。 另外有一些版?本的SkyS?hop的Mo?bile shader?没有gles?3.0的支持,需要在给所有?场景里使用的?Marmos?et的sha?der里添加?关键字 #pragma??surfac?e?Marmos?etSurf??Marmos?etDire?ct?vertex?:Marmos?etVert??exclud?e_path?:prepas?s?noforw?ardadd??approx?view #pragma??only_r?endere?rs?d3d9?opengl??gles?d3d11?d3d11_?9x?gles3 好早marm?oset的是?UberSh?ader的设?计,所以只要改几?个就好了。 要unity?支持es3.0的话,需要在设置P?layer Settin?gs.. 的图形等级里?选择 Automa?tic或强制?gles3.0。 ?? 如果只用es?2.0的话,因为unit?y会使用te?xCube或?texCub?eBias来?替换texC?ubeLod?,没有lod的?支持,使用cube?map的mi?pmap来实?现粗糙度的功?能就会受到影?响 最终渲染画面?里可能会看不?到材质的粗糙?度表现。 如果把这个b?ug解决的话?,那么性能评估?应该和10.1前的报告一?样,IPad Air 可以承受的是?全屏,100Dra?w Call的支?持IBL材质?物体的绘制,另外有IBL?的shade?r的瓶颈 应该是在pi?xel shader?上,如果1,2个IBL材?质占满整个2?048x15?36屏幕的话?,一样会有潜在?的瓶颈问题产?生。 二、关于另外一个?场景的问题解?决 Draw Call可以?先在Edit?or或联机P?orfile?里查看,一些设备不支?持Unity? Editor?的GPU Profil?e,所以还是要用?到Xcode? 没做任何优化?的前提下?draw call是5?92, GPU里两个?占用最高的s?hader,9.8ms和7.94ms都是?Terrai?n占用的(地形和他和阴?影贴图), 另外关闭阴影?后为289 drawca?ll,关闭地形后2?89-219(地形 70dc),关闭水面28?9dc-246dc(水面反射) 首先是Ter?rain,不论是sha?der还是d?c都有些多,在Xcode?的Frame? view里,Terrai?n的绘制有不?合理的地方,从截图场景来?看,这种大小的地?形需要70的?draw call次数?有些夸张了,另外就是sh?ader上,如果是静态烘?培阴影,应该是可以合?并到一个sh?ader里绘?制的。建议还是从优?化地形开始,降低dc,合并shad?er,如果u3d 的terra?in没有优化?的可能,不如就直接m?ax里制作网?格的地面来代?替。 水面可以优化?反射部分的实?现,静态场景的反?射可以预烘培?到一张贴图里?,而可以反射的?部分,建议单独添加?到一个lay?er里。降低dc数量?。 摄像机的可视?范围,角度,以及shad?

您可能关注的文档

文档评论(0)

zhangningclb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档