WebGL 渲染引擎 关键技术

1,043 阅读2分钟

www.zhihu.com/question/49…

核心功能

  • 场景的层次结构
    • 场景的遍历
    • 剔除
    • 动画
    • 鼠标拾取(射线)
  • 材质系统
    • 渲染结构的实现
    • 光照与阴影
    • 摄像机

场景管理

  • 数据结构(BSP,OCTree)加速场景的遍历,视锥剔除,遮挡剔除,LOD,材质排序等都能够有效的提升引擎渲染效率
  • 光照、阴影和渲染架构也是渲染引擎的核心功能,近年来延迟渲染(Deferred Rendering)是比较流行的渲染架构,在其基础上衍生出了Tile Based Deferred Shading以及更进一步的Clustered Shading,如果基于前向渲染则可以考虑Forward+的技术
  • 阴影也是非常重要的功能,主要的问题是阴影质量、软阴影的模拟、多阴影的管理和阴影性能几个方面,比较重要的几个成果包括PSSM,SDSM(旨在提升阴影质量),Variance Shadow Map(旨在模拟软阴影)

重要材质

  • 半透明物体的渲染(depth peeling,alpha to coverage,per pixel linked list)
  • 水体的渲染(Simulating Ocean Water,Jerry Tessendorf;Real-time water rendering:Introducing the projected grid concept)
  • 皮肤的渲染(GPU Gems3,Advanced Techniques for Realistic Real-Time Skin Rendering)
  • 毛发的渲染(GPU Gems2, Hair Animation and Rendering in the Nalu Demo;An Energy-Conserving Hair Reflectance Model)
  • 植被的渲染(GPU Gems3, Vegetation Procedural Animation and Shading in Crysis)
  • 天空的渲染(Precomputed Atmospheric Scattering;GPU Gems 2, Accurate Atmospheric Scattering)
  • 云彩的渲染(The Real-time Volumetric Cloudscapes of Horizon: Zero Dawn)
  • 布料渲染(Cloth Rendering)
  • 半透明表面渲染(Translucent Surfaces Rendering)
  • 头发渲染(Hair Rendering)
  • 车漆渲染(Car Paint Rendering)
  • 湿润表面渲染(Wet Surface Rendering)
  • 薄表面材质渲染(Thin Surface Rendering)
  • 体积渲染(Volumetric Rendering)

后处理

  • SSAO(HBAO,Alchemy AO, Scalable AO,SSDO)
  • DOF
  • HDR(HDR the Bungie way, Uncharted2 HDR Lighting)
  • Volumetric Light(GPU Pro 5, Volumetric Light Effects in Killzone Shadow Fall;Frostbite PB and unified volumetrics)
  • Motion Blur(Next Generation Post Processing in Call of Duty Advanced Warfare)
  • FXAA,Temporal AA