Oculus Quest最佳开发实践:如何避免图形管道瓶颈

2019-07-04 01:28:48 映维网 分享

维序者 淮上 www.wyham.com.cn 查看引用和消息源请点击:映维网

最佳开发实践和Quest商店方针

映维网 2019年05月04日)克里斯·普鲁厄特(Chris Pruett)是Oculus内容生态系统的负责人。他曾在今年三月举行的GDC大会发表了名为“Down the Rabbit Hole with Oculus Quest”的主题演讲,从开发商的角度简单概述了Oculus Quest。

延伸阅读:Oculus Quest软硬件设计细节:CPU、GPU、固定注视点、不对称扭曲

现在,普鲁厄特正通过两篇博文回顾介绍当时的演讲。昨天的博文与硬件/软件方面有关,而今天普鲁厄特则分享了与最佳开发实践和Quest商店方针的讯息。下面是映维网的具体整理:

1. 最佳开发实践

确定Quest的图形架构与PC视频卡的区别非常重要。Quest的大多数性能优化都是关于合理地格式化美术asset,而非编写更快的代码。所以,明确如何避免图形管道中的瓶颈十分关键。

在CPU方面,绘制调用是计算开销的常见来源?;嬷频饔谜飧雒钪饕糜诨嬷拼凶刺耐瘢和?,着色器,通常包含一定的纹理,以及任何需要绘制的其他数据。CPU的图形驱动程序必须为GPU的每次调用做好准备,而这种准备需要时间。最基本的优化之一是,减少绘制场景所需的绘制调用总数。

绘制调用值得我们深入探讨?;嬷频饔玫墓丶坏闶?,它们在成本方面可能存在非常大差异。一些绘制调用的成本很低,另一些则很高。实际的计算开销来源并非绘制调用本身,而是绘制调用之间的状态更改。如果你反复使用相同的纹理和相同的着色器来绘制相同的对象,你会发现第一次调用的成本会很高,但所有后续调用的成本则很低,这是因为驱动程序缓存并重用了绘制网格所需的状态(着色器和纹理)。只有第一个调用会调用大量数据,后续调用只是重用已经准备好的数据。所以,优化的重点不是减少场景中绘制调用的总数,而是考虑每帧所需的状态更改总数。

假如场景中有10个对象,每个对象都有不同的纹理,则每个对象都需要包含单独数据集的单独绘制调用。不同的网格,不同的纹理,不同的着色器参数,甚至可能是不同的着色器。但如果将所有这些对象组合成单个纹理(“纹理图集”),并将对象的UV映射调整为指向单个纹理,则绘制调用的开销会降低,因为纹理只需要绑定一次就可绘制所有10个对象。如果你可以进一步使用相同的着色器和着色器参数,则可以显著降低场景的成本。例如对于Unity开发者来说,你可以使用相同的材质,为所有对象使用相同的着色器和相同的纹理。如果你可以它们标记为“批处理静态”,则甚至可以对所有对象使用相同的网格。下图概述了不同类型的绘制调用状态更改的相对成本(柱形越高,表示执行绘制调用所花费的时间越高):

我们从开发者的举措中看到了一些常见的,能够有效减少绘制调用和状态改动开销的方法,例如使用烘培照明,以及对环境网络使用智能静态批量处理等等。下面是《Dead and Buried》中的一个示例场景??⒄呤谴用朗鮝sset方面着手优化,并在Quest实现了优秀的运行效果:

至于GPU,Adreno 540的Binning架构的主要优势包括,4X MSAA的成本是每帧1.25 ms和1.54 ms之间,具体取决于片段着色器的复杂程度。为了最大限度地提高GPU的性能,你需要明白系统在处理全屏效果之前需要解析整个场景,所以这样做的成本非常昂贵。其他类型的相关渲染亦是如此,如实时镜像和反射。最后,在片段着色器中丢弃片段(如通过discard()或clip())会致使GPU重新渲染整个图块,所以你应该在所有着色器中避免使用。

由于Quest游戏渲染的分辨率非常高,所以即便是没有复杂片段着色器的场景,片段都有可能成为约束限制。最常见的“罪魁祸首”是彼此重叠的大型透明对象,并且最终在同一帧中多次触及相同的像素。例如,如果四边形具有显著重叠,同时导致大量像素被多次混合,这时在整个眼睛缓冲区中绘制大型透明四边形的粒子效果的成本可能要比预期昂贵。固定注视点渲染同样可以帮助降低帧的整体片段成本。

需要注意的是,增强眼睛纹理分辨率的成本同样非常昂贵,但这可以产生非常优秀的结果。如果你发现GPU不是瓶颈所在,请尝试增加眼睛纹理分辨率。

Quest游戏可以很大,但包含它们的数据需要以一种特别的方式进行组织。我们推荐的可APK文件为小于1GB,理想是小于100mb,同时可包括一个或多个扩展文件。扩展文件最大可以为4GB,并且可以是任何格式。对于Unity,你可以将所有场景放到Chunk-Compressed Asset Bundle。这可以帮助你轻松生成扩展文件,但同时会提高加载时间。Quest app可以是32位或64位,但我们推荐64位,这是为了减少内存碎片化,提升性能,减少加载时间,并且支持加载更大的扩展文件。

尽管Oculus Quest尚未发货,但我们已经看到VR一体机领域出现了全新的游戏设计模式。例如,Quest可以提升基于头部的导航,因为玩家可以自由地360度转动,无需担心线缆缠绕。尽管我们仍然推荐诸如瞬转等解决方案(考虑到玩家有可能是坐在旋转椅上,并且难以轻松转动),但在一个环境中打转时,单纯依靠基于头部的导航感觉效果非常出色。

声明:本站部分资源来源于网络,版权归原作者或者来源机构所有,如作者或来源机构不同意本站转载采用,请通知我们,我们将第一时间删除内容。本站刊载文章出于传递更多信息之目的,所刊文章观点仅代表作者本人观点,并不意味着本站赞同作者观点或证实其描述,其原创性及对文章内容的真实性、完整性、及时性本站亦不作任何保证或承诺,请读者仅作参考。
编辑:
南宁代孕 | 珠海代怀孕 | 珠海代孕 | 广州代孕 | 广州代孕 | 网易传奇私服网 | 南宋皇帝网 | 时代育儿网 | 元朝历史网 | 启辰代孕网 | 丹江口新闻资讯网 | 广州高鹰代孕 |
  • 福岛核电站周边辐射值创新高 污水泄漏仍难解决_张曼玉个人资料 2019-07-18
  • 新华网评:以“四个最严”织牢食品安全防护网_牛郎织 2019-07-18
  • 全国钒钛磁铁矿综合利用标委会在四川成立_一顿等于多少升 2019-07-18
  • 莫把“特长兵”当作“全能兵”_仙侠奇缘之花千骨有声小说打包下载 2019-07-18
  • 安利总裁德·狄维士:美对华征收关税令人失望 深化贸易合作符合两国利益_柯岩中心小学 2019-07-18
  • 炎症如何转化为癌症 科研人员发现炎癌转化重要趋化因子_石家庄夜校 2019-07-18
  • 山东六件法规和决定获批:省城历史文化街区禁设户外广告_孙乐欣 2019-07-17
  • 中国债券纳入彭博巴克莱指数_古国奇缘 2019-07-17
  • 宁夏坚决取缔城市区学前班及幼小衔接班_qqtouxiang 2019-07-17
  • 工信部约谈小米等30家企业:骚扰电话整改要短期内见效_法航447空难 2019-07-17
  • 最高检发布民事检察指导性案例 向打“假官司”亮剑_斯姆特 2019-07-17
  • 南京设投资项目代办中心 政府做企业"店小二"_橘日向 2019-07-17
  • 矢志不移走好绿色发展之路(声音)_绛州大鼓 2019-07-16
  • Pronóstico del clima de ciudades del mundo | Spanish.xinhuanet.com_火线追凶下载 2019-07-16
  • 河北医大一院先心病团队被授予“河北青年五四奖章”_校园小说阅读网女生版 2019-07-16