76 lines
3.4 KiB
Markdown
76 lines
3.4 KiB
Markdown
|
## 论文与相关资料
|
|||
|
### 寒霜的快速SSS
|
|||
|
在GDCVault中搜索对应的演讲,之后就可以下载了。一些PPT比较大,可以直接去控件里找下载地址。
|
|||
|
|
|||
|
https://www.slideshare.net/colinbb/colin-barrebrisebois-gdc-2011-approximating-translucency-for-a-fast-cheap-and-convincing-subsurfacescattering-look-7170855
|
|||
|
|
|||
|
#### 视频
|
|||
|
https://www.gdcvault.com/play/1014536/Approximating-Translucency-for-a-Fast
|
|||
|
|
|||
|
因为视频是blob模式的,所以可以去下面的网站下载:
|
|||
|
http://downloadblob.com/
|
|||
|
|
|||
|
#### ppt
|
|||
|
https://twvideo01.ubm-us.net/o1/vault/gdc2011/slides/Colin_BarreBrisebois_Programming_ApproximatingTranslucency.pptx
|
|||
|
|
|||
|
### SIGGRAPH2019ppt
|
|||
|
http://advances.realtimerendering.com/s2019/index.htm
|
|||
|
|
|||
|
## Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look
|
|||
|
### 数据管理
|
|||
|
数据可以分成材质相关与灯光类型相关。在寒霜中材质相关会使用GBuffer传递(UE4可以使用CustomData吧),光类型相关会在LightPass中传递。
|
|||
|
|
|||
|
### 计算厚度值
|
|||
|
通过AO的方式来计算厚度:
|
|||
|
- 反转表面法线
|
|||
|
- 渲染AO
|
|||
|
- 反转颜色最后渲染到贴图中
|
|||
|
|
|||
|
### 技术细节
|
|||
|

|
|||
|
|
|||
|
LT应该是Light Translucency的意思。v代表Vector,f代表float,i代表int。
|
|||
|
```
|
|||
|
half3 vLTLight = vLight + vNormal * fLTDistortion;
|
|||
|
half fLTDot = pow(saturate(dot(vEye, -vLTLight)), iLTPower) * fLTScale;
|
|||
|
half3 fLT = fLightAttenuation * (fLTDot + fLTAmbient) * fLTThickness;
|
|||
|
outColor.rgb += cDiffuseAlbedo * cLightDiffuse * fLT;
|
|||
|
```
|
|||
|
|
|||
|
#### fLTAmbient
|
|||
|
Ambient项,代表了始终存的各个方向的透射值。材质相关变量。
|
|||
|
|
|||
|

|
|||
|
|
|||
|
#### iLTPower
|
|||
|
强度衰减项,直接透射强度。与视口相关。可以通过预计算进行优化。材质相关变量。
|
|||
|
|
|||
|

|
|||
|
|
|||
|
#### fLTDistortion
|
|||
|
透射方向形变项,用于模拟光线传输的不规则的效果,类似于毛玻璃的效果。主要的功能是控制法线对于透射光方向的影响。与视口相关。材质相关变量。
|
|||
|
|
|||
|

|
|||
|
|
|||
|
#### fLTThickness
|
|||
|
厚底项,预计算的Local坐标的表面厚度值。材质相关变量。
|
|||
|
|
|||
|

|
|||
|
|
|||
|
#### fLTScale
|
|||
|
缩放项,用于缩放直接透射效果。视口相关。灯光相关变量。
|
|||
|
|
|||
|

|
|||
|
|
|||
|
### 最终效果
|
|||
|

|
|||
|
|
|||
|
### GBuffer设计
|
|||
|
最低的要求是GBufer中使用8位位宽灰度贴图的方式来存储translucency。使用24位位宽以颜色贴图的方式,可以实现材质对于不同光谱的光线不同的散射效果。
|
|||
|
|
|||
|
### 技术缺点
|
|||
|
因为是一种近似技术,所以只适合在凸物体上演示。这种技术对变形物体不起作用,因为需要烘焙厚度贴图。此外,我们可以使用实时AO算法配合倒置法线来计算厚度。
|
|||
|
|
|||
|

|
|||
|
|
|||
|
PS.该技术的详细描述可以在《GPU PRO2》中找到。
|