• 最新论文
  • 杭州城西某中学一班主任自定“班规”惹争议 解读国双如何发展“产业人工智能” 方太厨电倾情助力,史南桥改造11㎡超小户型 年入过亿,为什么网红还觉得生不如死? 相爱相杀,苹果、三星谁也离不开谁 相爱相杀,苹果、三星谁也离不开谁 我国海外华文教育标准初形成 植科院组织开展种工专业综合实习 植科院组织开展种工专业综合实习 杭州城西某中学一班主任自定“班规”惹争议 方太厨电倾情助力,史南桥改造11㎡超小户型 相爱相杀,苹果、三星谁也离不开谁 解读国双如何发展“产业人工智能”
  • 推荐论文
  • 杭州城西某中学一班主任自定“班规”惹争议 解读国双如何发展“产业人工智能” 方太厨电倾情助力,史南桥改造11㎡超小户型 年入过亿,为什么网红还觉得生不如死? 相爱相杀,苹果、三星谁也离不开谁 相爱相杀,苹果、三星谁也离不开谁 我国海外华文教育标准初形成 植科院组织开展种工专业综合实习 植科院组织开展种工专业综合实习 杭州城西某中学一班主任自定“班规”惹争议 方太厨电倾情助力,史南桥改造11㎡超小户型 相爱相杀,苹果、三星谁也离不开谁 解读国双如何发展“产业人工智能”
  • 热门标签
  • 日期归档
  • 研发实战:用WebGL Multiview扩展提升WebXR应用性能

    来源:www.aticoszx.com 发布时间:2020-01-31

    来源:魏莹作者黄岩

    WebGL多视图扩展已经支持多种浏览器和3D网络引擎,这可以很容易地帮助提高你的WebXR应用程序的性能。

    1。什么是多视图?

    当虚拟现实开始出现时,大多数引擎通过同时运行两个渲染阶段来支持立体渲染。虽然这是可行的,但效率很低。

    renderScene在每次调用时设置视口、渲染器和状态。这使得每帧的渲染成本翻倍。

    然后,为了提高性能和最小化状态变化,一些优化开始出现。

    即使您可以减少状态更改的次数,绘图调用的次数也保持不变:是对象数量的两倍。

    为了解决这个问题,Mozilla开发了多视图扩展。简而言之,使用此扩展,您可以只通过一次绘图调用绘制多个目标,从而减少每次浏览的总负载。

    这是通过使用每个视图的信息来调整着色器制服,并通过gl_ViewID_OVR访问它们,原则上类似于实例化应用编程接口。

    multiview扩展的结果渲染周期如下:

    此扩展可用于提升多个任务,如层叠阴影贴图、渲染力报警贴图、渲染多个视口等,但最常见的使用情况是立体渲染。

    立体渲染是Mozilla的主要目标,因为您只需要对3D引擎进行一些修改,就可以提高虚拟现实渲染路径的性能。目前,大多数头显示器都有两个视图,但有一个超宽视场和4个视图的头显示器原型,4个视图是目前Muitiview支持的最大视图数。

    2.multiview

    一旦OpenGL ovr _ multiview2规范在webgl中创建。网络工作组开始制作这个应用程序接口的网络版本。

    在OpenGL OVR多视图2规范创建之后,webgl工作组开始制作这个api的webgl版本。Mozilla在servo和three中首次尝试多视图已经有一段时间了。js当时,支持WEBGL _ multiview是一个相当困难的挑战:它基于不透明的帧缓冲区,可以与WEBL 1结合使用,但是着色器需要使用GLSL 3.0支持(仅限于WEBL 2)进行编译,因此需要在一定程度上调整servo。

    当时,WebVR规范有一个支持多视图的建议,但是没有通过。

    由于WebGL工作组的工作,多视图的情况在过去几个月里有了很大的改善。该规范已经处于“社区批准”状态,这意味着浏览器可以默认启用它。

    对于最终的规范,有几个限制值得注意:

    它只支持WebGL2环境,因为它需要GLSL 3.00和纹理数组。目前,多视图不能用于渲染到多采样缓冲区,因此您应该使用抗锯齿: false来创建环境。(WebGL工作组正在研究解决方案)

    3。支持多视图的网络引擎

    Mozilla,一段时间以来一直努力实现对三个. js的多视图支持。目前,只要扩展可用,并且定义了一个没有凹坑锯齿的WebGL2环境:

    这里有一个使用多视图的3.js示例(源代码)。

    A-Frame基于三个. js,所以一旦更新到最新版本,他们应该能够获得多视图支持。《巴比伦日报》又一次支持了OVR多视角2(更多信息)。

    有关如何在不使用任何第三方引擎的情况下直接使用多视图的更多信息,您可以看到three.js实现,并参考标准示例代码或Oculus教程。

    4。支持多视图的Browser

    community刚刚通过这个扩展,所以默认情况下,每个主要浏览器都将很快添加支持。

    火狐桌面:默认情况下,火狐71支持启用多视图。同时,你可以在火狐里每晚测试它。火狐现实:从1.3版默认启用。Oculus浏览器:它已实现,但默认情况下已禁用,您必须启用“草稿WebGL扩展”首选项。Chrome:您可以使用以下命令行参数在窗口的Chrome金丝雀中运行:Use-cmd-decoder=Passthrough-Enable-WebGl-Draft-Extensions

    5。性能改进

    大多数WebGL或WebXR应用程序都是受CPU限制的,场景中的对象越多,提交给GPU的绘图调用就越多。Mozilla已经通过两个视图对三维渲染进行了基准测试。Mozilla实现了比传统渲染大约40%的持续性能提升。

    如下图所示,需要绘制的立方体越多(绘制调用),性能就越好。

    6。下一个计划

    当前多视图扩展的主要缺点是它不能被渲染到多采样后缓冲区。要在WebXR中使用它,您应该在创建环境时设置反别名:false。然而,这是WebGL工作组正在进行的工作。

    一旦团队提出建议并由浏览器实现,3D引擎应该能够自动支持它。我希望我们能够看到WebGL和WebXR生态系统的新扩展,并帮助提高渲染性能和质量,比如Nvidia VRWorks(比如可变速率渲染和镜头匹配渲染)。

    原始链接:https://yivian.com/news/66489.html

    友情链接: