实时阴影绘制技术研究

C++博客 首页 新随笔 联系 聚合 管理
  48 Posts :: 20 Stories :: 57 Comments :: 0 Trackbacks
今天无意间链到了Unreal的网页,看到了UnReal Engine 3的overview.因为是游戏引擎,所以诸如物理系统、脚本系统、动画、AI、声音、网络基本都不在我的观察之列,我只看了一下visual effect,并着重研究了一下当前最好引擎的阴影实现效果。
下面是Unreal Engine 3自己的陈述和截图。
 

Visual Features

  1. 64-bit color High Dynamic Range rendering pipeline. The gamma-correct, linear color space renderer provides for immaculate color precision while supporting a wide range of post processing effects such as light blooms, lenticular halos, and depth-of-field.
  2. Support for all modern per-pixel lighting and rendering techniques including normal mapped, parameterized Phong lighting; custom artist controlled per material lighting models including anisotropic effects; virtual displacement mapping; light attenuation functions; pre-computed shadow masks; directional light maps; and pre-computed bump-granularity self-shadowing using spherical harmonic maps.
  3. Advanced Dynamic Shadowing. Unreal Engine 3 provides full support for four shadowing techniques:
    • Dynamic stencil buffered shadow volumes supporting fully dynamic, moving light sources casting accurate shadows on all objects in the scene.
    • Dynamic characters casting dynamic soft, fuzzy shadows on the scene using 16X-oversampled shadow buffers.
    • Ultra high quality and high performance pre-computed shadow masks allow offline processing of static light interactions, while retaining fully dynamic specular lighting and reflections.
    • Directional Light Mapping enables the static shadowing and diffuse normal-mapped lighting of an unlimited number of lights to be precomputed and stored into a single set of texture maps, enabling very large light counts in high-performance scenes.
  4. All of the supported shadow techniques are visually compatible and may be mixed freely at the artist's discretion, and may be combined with colored attenuation functions enabling properly shadowed directional, spotlight, and projector lighting effects.
  5. Powerful material system, enabling artists to create arbitrarily complex realtime shaders on-the-fly in a visual interface that is comparable in power to the non-realtime functionality provided by Maya.
  6. The material framework is modular, so programmers can add not just new shader programs, but shader components which artists can connect with other components on-the-fly, resulting in dynamic composition and compilation of shader code.
  7. Full support for seamlessly interconnected indoor and outdoor environments with dynamic per-pixel lighting and shadowing supported everywhere.
  8. Artists can build terrain using a dynamically-deformable base height map extended by multiple layers of smoothly-blended materials including displacement maps, normal maps and arbitrarily complex materials, dynamic LOD-based tessellation, and vegetation layers with procedurally-placed meshes. Further, the terrain system supports artist-controlled layers of procedural weathering, for example, grass and vegetation on the flat areas of terrain, rock on high slopes, and snow at the peaks.
  9. Volumetric environmental effects including height fog.
  10. Extensible particle system with visual editor, supporting particle physics and environmental effects.

我们可以看到在全部Unreal官方展示出来的效果中有四条提到了阴影,而且最大篇幅的一条给了阴影,这多少还是可以说明我们研究这个东西还是有点价值的。

Characters in Unreal Engine 3 produce dynamic soft shadows with self-shadowing.
Shadows with fuzzy attenuation sweep around the scene as the torch moves.
Artist-authored panning and iridescent materials all seamlessly combine with per-pixel lighting and shadowing.
Normal-mapped translucent object distorts and attenuates the frame buffer, simulating ray-traced reflections.
The fuzzy shadows of clouds smoothly roll across the hills, while the windmill's rotating blades cast shadows on the ground beneath.
Soft-shadowed character standing in a bank of volumetric fog.
Light blooms using 64-bit color High Dynamic Range color.
The subtle interplay of normal mapped diffuse and specular lighting with fuzzy shadows.
 

可以看到:

  1. Unreal Engine 3里边实现了"soft,fuzzy"的阴影,并没有说是physically exact,同时也提到了是"Dynamic characters"投射的,也就是说软阴影仍然是有条件的。
  2. 预计算的阴影掩码和纹理仍然是产生良好阴影效果的主要手段,动态对象的阴影仍然采用shadow volume的方式。
  3. 从图片效果来看,场景的阴影/光照效果看起来好像仍然采用纹理的方式,物体的阴影的柔和度并不明显。当然这也可能是室外场景的原因,但是号称可以在室内室外场景做到无缝链接的Unreal Engine 3并没有给我们展示"很柔和"的阴影。

今天我还根据同步blog的一篇关于Source引擎的文章回复看了一点HDR,发现doom3里边还没有真正的HDR,只有bloom,但是到了far cry1.3 patch,以及后来的valve source,Unreal3已经提到把HDR实现了很好的效果。那么同shadow相比较来说,目前的shdow仍然在doom3的shadow volume与贴图技术混合使用的方法中,有待进一步革新。

原载:http://blog.sina.com.cn/u/40d00f170100020r

posted on 2006-01-16 18:25 苦行僧 阅读(5432) 评论(0)  编辑 收藏 引用 所属分类: shadowrendering engine

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理