GDC2016 Lighting the City of Glass - Rendering Mirror's Edge Catalyst

# brief
- 将的人很偏美术,讲了老多艺术向的东西
- time of day的光照实现没讲明白,主要使用enlighten
- 有讲一些细节:HDR sky,reflection

# 上个项目(mirrow's edge本篇)
- direct lighting/indirect lighting/normal, 每个物体有3张关于lighting的texture
- UE3 + Beast, 1pixel per cm

# challenge
- Time of Day(NFS和DragonAge:inquisition也搞过,但是没那么高质量要求,另外也不是PBR)
- 能用dynamic lighting吗
- believable character with cinematics
- PBR to render stylized images

# PBR shading
- 导致camera也得变得Physically based
- accurate exposure
- realistics field of view

# tokoyo取材
- white value
- lighting reference
- timeelapse( 就是把摄像机放一点不动拍一整天)
- HDR probes

# creating skies
- HDR sky不能直接在游戏里用
- 因为要time of day,所以sky不能不动
- HDR sky要memory
- 没法blend,说是太明显了(为啥)
- cloud要high resolution
- 想要relight cloud
- 问了下,楚留香里现在就是调天顶和天底的颜色来搞出白天和黑夜,东西应该是位置不动

# physically base skies
- 调 科学的参数
- atmosphere
- rayleigh height
- mie scattering
- ozone percentage
- light sources
- sun
- moon
- aerial perspective(就是物体离得远的时候,其颜色会渐渐融入背景,主要原因是skylight被scatter进view)
- height fog
- clouds
- 两片面片做的云
- 就是alpha texture
- cloud absorb and scatter light
- 讲了个关于要deeper blue sky的故事
- 大概是希望sky的颜色能更deeper
- coder不同意,因为不然就不是physicall correct了
- 其实是photographic后处理做的
- aerial perspective leaking trough geometry
- 就是个光圈,由于不知道environment,所以即使被building挡住了还是会有
- 最后用 forward scattering lightshafts代替

# creating a day cycle
- celecstial rotation(sun, moon, stars)
- time of day clock: 天体移动速度也要控制
- sun flare
- animated values
- camera exposure
- bloom
- sun disk size
- 当人不动得时候时间也不走,这样就不会有sun shadow在你跟前移动得情况了

# global illumination
- 用enlighten
- 有现成方案,但是都是对static lightmap得
- 只有NFS rival用了dynamic得global illumination
- 具体在mirror's edge catalyst里面怎么做也没说,说是什么precompute
- 地图分hiearchy zone for streaming
- each zone都有enlighten database
- 1 lightmap (atlas up to 2048x2048) for large static object
- lightprobes(L2) for player and small objects
- GI data for relighting
- 5-15 MB
- 30 loaded simulaneously
- Runtime update on CPU
- render time of day ahead of time
- 贴图3分,当前,ready to blend to,next to resolve
- sky cube
- 32x32
- 可控制强度
- lightmap
- 分辨率相当低。可能1m1pixel吧
- limitation
- 只对indirect lighting有lightmap,因为精度超低
- 没occlusion
- per object probe lighting,not per pixel

# reflection
- distance reflection volume(DRV)
- old style cubemap, move with player
- updated with time of day
- cheap(256x256x6)
- not accurate
- solution: use sky visibility mask from enlighten
- occlude reflection from street
- better, still not so good...
- local reflection volume(LRV)
- parallax corrected cubemap
- box or sphere(256x256x6)
- 问题是遇到非box得场景也不好搞,有些trick 具体怎么搞我也没听懂。。
- pool of 32 LRV active
- cubemap是realtime渲染出来的!一帧一面
- SSR
- adaptive sampling based on roughness: 3 for rough, 1 for smooth
- 太rough反而没必要SSR
- ceiling啥的也kill掉(用world normal来判断)
- async SSR render with shadow
- opaque lines cut ssr rays(这个我不太明白原理。。),解决办法是turn off depth write
- local planar reflection
- 用forward渲染

# getting the right white
- 感觉很重要的样子,但是听不懂。基本上是在讲如何再各种场景下正确打光(Sun是多少lux,和如何曝光 EV)
- tonemapping curve
- linear->sRGB: nasty burn out white
- linear->Filmic: bring a lot of white into range
- 用了修改过的Filmic
- grading
- 用完tonemapping后比较flat,用grading来加contrast
- grading要早搞好,不然artists会去该basecolor
- 看对比:没grade感觉画面一层灰

# local lighting
- physically based
- intensity issue:大概是现实中得intensity和实际的不一样,因为灯的结构、有reflection、foclus会改变intensity
- more artistic control: attenumation offset
- radiosity
- peformance: tiled deferred
- shadows
- 8 shadow casting lights...
- cache shadows
- light的fade distance

# image stylization
- post effect
- gaussaian bloom
- custom color per level
- vertical /horizontal stretch: 就是光扩散的方向强度
- lens reflection
- transposed and disorted bloom(不知道具体怎么实现的)
- simple volumetrics
- additive spheres
- adds depth speration
- create color shift
- linear media streaming
- 大楼显示屏播片

# believable character
- 刚开始只是找model来capture mesh和diffuse,结果发现进游戏reflection不对
- 最后要构造一个实际的打光场景,自己上,采集数据。finding
- skin saturation 搞高了
- skin reflectance=2.8%
- smoothness搞高了
- SSS: 没SSS时脸上由于毛孔而到处是坑,有SSS时可以smooth out
- eye shader
- parallax for refraction
- normal map for iris concavity
- Anisotropic hair shader
- 最难tweak PBR value的
- 最后需要多打光来表现出不同的specular,说是movie里也这样
- lighting
- 对一个不咋大的场景也用472 light,但是其实不同时使用,用timeline控制
- 一个剧情里对脸上得有快10个light

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值