Impostor Baker开源库测评

栏目: 后端 · 发布时间: 5年前

内容简介:【博物纳新】是UWA旨在为开发者推荐新颖、易用、有趣的开源项目,帮助大家在项目研发之余发现世界上的热门项目、前沿技术或者令人惊叹的视觉效果,并探索将其应用到自己项目的可行性。很多时候,我们并不知道自己想要什么,直到某一天我们遇到了它。更多精彩内容请关注:lab.uwa4d.com《Real-Time Rendering 3rd》第十章里面对于游戏开发中基于图像的渲染(Image-Based Rendering)技术提到了两种常用的渲染技术:公告板(Billboarding)和替代物(Impostors)。

【博物纳新】是UWA旨在为开发者推荐新颖、易用、有趣的开源项目,帮助大家在项目研发之余发现世界上的热门项目、前沿技术或者令人惊叹的视觉效果,并探索将其应用到自己项目的可行性。很多时候,我们并不知道自己想要什么,直到某一天我们遇到了它。

更多精彩内容请关注:lab.uwa4d.com

一、前言

《Real-Time Rendering 3rd》第十章里面对于游戏开发中基于图像的渲染(Image-Based Rendering)技术提到了两种常用的渲染技术:公告板(Billboarding)和替代物(Impostors)。

使用图像表示物体的渲染消耗,在于像素数量而不再是模型顶点数量,这使得渲染开销大幅降低。节省资源,提高运行速度,故而在游戏开发中被广泛使用,其中应用最广的就是公告板(Billboarding)技术。

无论摄像机处在何种位置观察物体(图像),公告板都始终正对摄像机。场景中一些相隔较远,并不是主要物体的3D模型通过2D图片来显示,无需花费宝贵的时间计算模型细节。在游戏引擎中粒子系统应用了这种技术,每个粒子都是一个永远朝向相机的位图。

但这种技术的缺陷在于难以支持真正的光照、阴影等效果,在一些情况下会使得这部分场景过于粗糙。替代物(Impostors)技术更进一步地平衡渲染开销与渲染精度,利用着色硬件将光线投射到纹理定义的体积中,该技术支持模型上的自阴影、反射、折射、简单的动画方案,以及通过体积发现距离(1)。可以实时生成或预先计算并存储在内存中。

二、使用方式与简单原理

这个开源库工具,是为Unity引擎制作的Billboard Impostors制作工具。可以根据模型离线生成相应预制体。该预制体根据摄像机距离模型距离决定LOD级别选择相应技术应用。

在该插件给出的示例中,可以看到该预制体的作用。

随着摄像机切远,模型由LOD0转为LOD1,由一个3D模型转变为一个2D纹理:

Impostor Baker开源库测评

在较远的距离下3D模型(右上)与2D纹理(左下),几乎看不出什么差别。

Impostor Baker开源库测评

但两者的渲染开销差距甚大。

Impostor Baker开源库测评
Impostor Baker开源库测评

并且Impostors存在反射效果,使得渲染出的场景更加精细。

Impostor Baker开源库测评 向阳面
Impostor Baker开源库测评
背阳面

工具 的使用方法也十分简单。

(点击Window->IMP)

Impostor Baker开源库测评

弹出Impostor Bake面板:

Impostor Baker开源库测评

其中参数释义如下:

Resolution(分辨率):用于设置2维图片的MaxSize属性。

Frame(渲染帧数):这将决定该模型有多少个网格顶点将被采集用于渲染。

Hemisphere(半球):采用半八面体布局or全八面体布局,两者差别如下:

Impostor Baker开源库测评
左:半八面体 右:八面体

对于一些模型,我们可能并不需要采集大量下半球部分的信息,例如树木,尤其是在较远距离观察的时候树干部分的形状可以相对不必那么精细。所以大量信息采自于树冠部分,会提升分辨率。 (2)

Custom Lighting Root(灯光):自定义灯光。

Prefab Suffix(预制体后缀):在生成的预制体中添加命名后缀。

在Hierarchy面板中选择需要生产预制体的模型:

Impostor Baker开源库测评 弹出Capture按钮

点击Capture,开始进行计算并生成相应预制体。

这个工具实现了部分光照的处理与视角变化时的平滑过渡,开发者们可以进一步扩展光影效果。

三、性能测试:

本次的性能测试,只选择了示例场景中的MKV_UV_Impostor作为测试对象,并去除中了场景中多余的物体和光照,只保留一个平行光,效果如下图:

Impostor Baker开源库测评

使用GOT Online工具进行了1分钟的测试,在三星S6这台设备上,基本上可以达到满帧率运行,下图为三星S6上该测试场景的FPS趋势图,可以看到主体在57~60帧之间波动。

Impostor Baker开源库测评

其中逻辑代码的耗时情况如下,主要集中在Camera.Render(不透明渲染)和Graphics.PresentAndSync两个函数上,分别的耗时均值为8.75ms和5.16ms。

Impostor Baker开源库测评

整体来说,性能还是不错的。

Impostor适合于同屏显示多个相同物体时使用。如上文所说,它比单纯的Billboard更真实,又比真实的3D模型节约,是一种性价比较高的选择方案,可应用于移动平台。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Tangled Web

The Tangled Web

Michal Zalewski / No Starch Press / 2011-11-26 / USD 49.95

"Thorough and comprehensive coverage from one of the foremost experts in browser security." -Tavis Ormandy, Google Inc. Modern web applications are built on a tangle of technologies that have been de......一起来看看 《The Tangled Web》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具