专栏名称: 青亭网
青亭网--链接科技前沿,服务商业创新
目录
相关文章推荐
名城网事  ·  高校首发“AI禁令” ·  6 天前  
名城网事  ·  高校首发“AI禁令” ·  6 天前  
创业家  ·  上海夫妻卖豆腐,一年营收百亿 ·  1 周前  
51好读  ›  专栏  ›  青亭网

Mozilla揭秘WebXR时代设计技巧

青亭网  · 公众号  ·  · 2020-02-22 19:46

正文

Esther|编辑
前不久,为了帮助VR用户熟悉WebXR的用法,Mozilla推出了一款教学体验:《Hello WebXR》。用交互式的内容展示VR的操作方式并不是首创,SteamVR、Oculus等平台均有类似的体验,对于初学者来讲效果不错。
通过推出《Hello WebXR》,Mozilla希望向更多人(尤其是开发者)展示在网页端VR中可实现的多样化交互,而为了让整个教学体验像游戏一样轻松,Mozilla在设计上加入不少巧思,接下来请跟青亭网一起了解一下。
整体感觉与制作流程
《Hello WebXR》的概念其实是一个简单、轻松且容易上手的交互式体验,相当于多种迷你应用的合集,主要是帮助初学者了解VR,并展示新推出的WebXR API。这个API接口支持几乎任何一台VR头显,尤其是Oculus Quest一体机,因此一些内容更侧重于移动性。
为了打造教学体验中的大厅场景,Mozilla参考了网络和3D内容平台Sketchfab上的大量设计。在确定框架后,便开始用Blender工具开始绘图,并在VR中测试,整个大厅的主旨是看起来友好而温馨,采用大多数人都可以接受的中性色调。
在Blender完成创作后,3D模型导出为glTF,并使用PNG(大多数)或JPG格式的图像进行纹理渲染。对于网页端VR来说,很重要的一步就是对全部纹理进行手动优化,来降低3D资源的大小。此外,还使用Draco压缩工具来优化用摄影测量法实现的3D模型,将大小进一步从1.41MB降低到683KB。
总得来讲,《Hello WebXR》的视觉设计流程比较传统、简单,纹理渲染和修改使用了Photoshop,而网格和灯光贴图是用Blender完成的,并导出为glTF和PNG格式。
特殊着色器和效果
  • 1)光线着色器:这是一个简单的渐变效果,由于是用附加模式进行渲染,使得黑色变成透明,深蓝叠加蓝色没有饱和为白色。光线的目标是一个曲面网格,由一个圆柱和圆盘组合而成;





  • 2)门着色器:用于渲染门的星空透视特效,根据极坐标进行渲染,并叠加在动态的蓝色底色上;


  • 3)立体球形着色器:用于渲染立体球形的变形效果(形状和色彩),这种光晕效果是通过调整红蓝色系位置实现的;


  • 4)缩放着色器:用于优化的缩放效果,只显示油画的部分纹理和白色原型光晕。这个着色器是一个平面,使用光线交接的贴图坐标来计算缩放所显示的纹理尺寸。


  • 5)SDF文字着色器:使用Troika库,可快速渲染SDF文字,无须生成纹理。


性能测试
与PC端或高端设备不同,在优化在Quest移动端平台的性能上,需要用特殊办法来处理多边形数量、材质和纹理复杂程度。Mozilla希望WebXR教学应用在Quest上像普通应用或PC VR应用一样运行顺畅,因此决定采用以下手段:
  • 1)在保证整洁平滑的情况下,将多边形数量降低至最少;

  • 2)网格尽可能合并,所有共享相同材质的静止物体合并在一起,并导出为同一个网格;

  • 3)尽可能简化、降低或回收利用材质,也就是说:场景中几乎所有元素都具备一个不变的材质,只使用两个定向光(手柄);


此外,由于不变材质不发光,于是需要提前计算出光影图,这样做有利有弊,优点是:光线质量比实时光照更好,因为渲染在线下提前完成,不受时间限制,因此不需要在Blender中进行路线追踪就能实现全局照明,模拟真实的光线。另外一点,由于不需要实时光线渲染,着色也是不变的,只需要在网格上应用纹理就足够。
相反光影图也具有两大缺点,即:体积容易变大,纹理应用在模型上时容易出现可见的像素或像素噪音(因为纹理分辨率不足或渲染效果不够顺滑,不够细致),使用2048x2048分辨率的纹理可以解决这一问题,同时Mozilla还将1万个样本用于渲染。另一点,光影图不支持动态修改光线,不过好在《Hello WebXR》应用的光线是静态的。
音效和眩晕测试
《Hello WebXR》中包括一个展示空间音频的场景,每一种声音都伴随着对应的动画作为视觉提示,它们是由关键帧组成的动态网格。
除了展示音频外,还有一个测试VR眩晕感的城市场景,其特点是多边形数量少,但看起来足够逼真,将用户置身于一个高楼大厦顶端。经过一番体验,发现这种VR场景并没有产生眩晕感,还发现只是单纯将人转移到500米的虚拟高度并不足以让人眩晕,不仅正确纹理规模是关键,场景也需要给人带来一种不安全感才能更沉浸。另外,体验者与其他建筑的相对位置和规模,以及灯光和纹理还需要更逼真。
于是,Mozilla将建筑的纹理简化成简单的黑白色调,通过位置和规模的对比,提升眩晕感。这个场景只包含两个网格:建筑和传送门,场景中用户的移动范围有限,因此只需要渲染场景中心的部分,亮度和纹理都是重复且不变的。
总结
在《Hello WebXR》开发过程中,Mozilla有一些遗憾的地方,比如:
  • · 没有使用合适的硬件来渲染光影图,因此花了11小时才完成渲染,没办法快速进行修改;

  • · 还没有测试眩晕场景就开始优化第一版本,浪费了一周时间;

  • · 贴图分级细化水平偏低,纹理质量看起来不够高,近距离观看VR中的图像时能够注意到差异;

  • · 内容创作流程还有待简化;


除此之外,也有一些令人满意的地方:

  • · 视觉效果比较干净、美观,尽管使用简单材质和纹理,效果并不会看起来廉价;

  • · 合并网格和简化材料对于性能提升有很大帮助,不过目前还没有在3DoF VR头显上测试过;

  • · BASIS或Draco工具效果不错,如果用JPG或PNG格式的图像作为纹理,那么载入时间要长很多。


    参考:https://blog.mozvr.com/visualdev-hello-webxr/

    (END)


     
       推荐阅读    




     
    每天五分钟,轻松了解前沿科技。    
             —— 青亭网