工作经历

工作经历

  • 工作经历
    • 环境相关
          • 大气散射(Atmosphere Scattering)
          • 高度雾(HeightFog)
          • 光束(LightShaft)
          • 体积云(VolumetricCloud)
          • 云海(Raymarch CloudSea)
    • 后期相关
          • ColorGrading & Aces Tonemapping
          • 自动曝光, VisulHDR
          • Bloom
          • Lensflare
          • Taa
    • 材质相关
          • OIT
          • SkySystem
          • 特效材质:下雨下雪、河流、瀑布、溶解
    • 光照相关
          • Enlighten 中间件集成
    • 地形相关
          • 简单地形管理与绘制(实习):四叉树、曲面细分实现地形Lod
    • 工具相关
          • RC编辑器 研发
          • Houdini 自动生成
          • Maya 简单脚本

环境相关

大气散射(Atmosphere Scattering)

熟悉算法的基本原理,并在工作室引擎中移植实现并评估3个已有方案,包括Gpu gems2 中的单次散射《Accurate Atmospheric Scattering》,UE4引擎中的AtmosphereFog,以及Brunetons 最新提出的Improved Atmosphere。单次散射效率高,实现简单,但效果略差,尤其在日出夕阳表现不佳。UE4实现的Brunetons 08年《Precomputed Atmosphere Scattering》和 之后的Improved 版本可以进行多次散射(UE4 中限制最多4次),效果很好,但是实时计算效率低下,需要采用预计算的方式存储中间数据查找表(可缓存到硬盘),并在运行时调用。考虑到后者参数意义更为明确,中间数据更加灵活美术方便引擎最终选择了Improved的版本。因为预计算过程需要对每次散射遍历缓存,Inscattering项更是4维数组需要用到3D贴图,同时保证结果完全正确,故此过程略有复杂,最终使用ComputeShader 完成。运行时只需要对缓存的查找表查值,一个简单后期即可搞定。
工作经历_第1张图片
工作经历_第2张图片
工作经历_第3张图片
工作经历_第4张图片
工作经历_第5张图片

高度雾(HeightFog)

实现UE4 中的指数级高度雾。
工作经历_第6张图片
工作经历_第7张图片

光束(LightShaft)

实现UE4 中的LightShaftBloom 和LightShaftOcclusion两种光束,完成简单的体积光效果。

体积云(VolumetricCloud)

参考地平线论文、在Stingray中的实现、以及Unity中的, 最终在自己的引擎中实现。
工作经历_第8张图片
工作经历_第9张图片
工作经历_第10张图片
工作经历_第11张图片

云海(Raymarch CloudSea)

参考Untiy FogVolume 插件,使用Raymarch 算法,实现。因为效率问题,最终并没有被应用到重制版中。

后期相关

ColorGrading & Aces Tonemapping

参考UE4 中校色的做法,在HDR空间下,把ACES Tonemapping 和常规ColorGrading校色的转换信息,预生成一个3d的Lut 查找表,运行时一个简单后期实现搞定。
工作经历_第12张图片

自动曝光, VisulHDR

参考UE4实现,根据屏幕像素颜色离散统计亮度的柱状图,当然也可以根据需求比如Vignette 时,亮度的权重不同,中心比两边低。有了柱状图,计算平均亮度,接着就是自动曝光的常规思路了。当然还可以将柱状图画在屏幕上,方便调试。
工作经历_第13张图片

Bloom

参考UE4,常规做法,计算画面中灰值,过滤暗部,多次DownSampe 并 高斯模糊,Upsample最终结果加到场景颜色中。

Lensflare
Taa

材质相关

OIT
SkySystem

参考UE4 Ultra 天空插件,在Unity 以及工作室的引擎中实现了其功能,包括简单的天空背景、日月星辰、飘动的云。
工作经历_第14张图片
工作经历_第15张图片
工作经历_第16张图片
工作经历_第17张图片

特效材质:下雨下雪、河流、瀑布、溶解

光照相关

Enlighten 中间件集成

在4个月评估期间内,负责尝试集成Enlighten,已独立完成引擎场景静态网格、材质、地形导出,交由Enlighten预烘培生成数据,并在引擎运行时使用其数据完成部分GI,但是由于一些原因,导致在大场景下,全部场景数据使用Enlighten的Probe、Lightmap 方案计算均耗时太大,生成中间数据过大,Amd官方停止对Enlighten的更新费用太高等等问题,只能终止对Enlgithen 集成。

地形相关

简单地形管理与绘制(实习):四叉树、曲面细分实现地形Lod

工具相关

RC编辑器 研发

实习期一个人使用Qt的框架,完成内部节点编辑器的研发,节点由xml书写,包括输入、输出、属性、python脚本内容,支持自定义属性控件,支持曲线属性,可用编辑器曲线工具编辑。编辑器扫描磁盘创建节点库,动态解析并创建节点,支持复合节点,复合节点可收藏至磁盘,最终编辑器将遍历整个有向图,生成资源文件传给引擎使用。

Houdini 自动生成
Maya 简单脚本

你可能感兴趣的:(引擎研发)