- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Unity PBR介绍及经验分享
Outline
PBR使用背景知识介绍
Standard Shader代码分析
使用经验及优化分享
Background
讨论的实质上是Physically Based Shading
核心:材质在真实物理环境下的反应
不考虑GI/AO/Light/Sun等
Background-Concepts
漫反射(Diffusion) 反射(Reflection)
金属(导电材料) 非金属(绝缘体)
能量守恒 材质不会比入射光更亮
菲涅尔(Fresnel)
Background
常见误区
用了PBR我们的画面就会变强
PBR只能用于真实感游戏
PBR非常消耗性能
转PBR是很简单的一个事情
技术只要提供一个Shader就行了
第三方软件里的就是最终效果
Background-Advantages
优势
表达能力强,避免Shader爆炸 + 合并DC
能量守恒,在不同条件下都正确
项目内不同场景环境下复用,甚至项目间复用资源
Background-Advantages
优势
IBL提供间接光照,最大限度模拟真实环境下光照条件
让美术更容易制作金属感
美术的职责划分 感性=理性
只需要确保正确,不再需要对好看负责
制作流程进一步拆分,建模/贴图/灯光职责清晰,风格统一
Background-PBR vs. Non-PBR
Background-References
Basic Theory of Physically-based rendering
Physically Based Shading in Unity
SIGGRAPH 2010 Course: Physically-Based Shading Models in Film and Game Production
Sébastien Lagarde
PBR 除了工作流,还有什么优势?
How to Make Photorealistic PBR Materials
Standard Shader
/get-unity/download/archive
builtin_shaders-5.5.0f3
Standard Shader-Files
DefaultResourcesExtra/Standard.shader
CGIncludes/UnityStandardCore*.cginc
Forward管线Standard Simple为例
禁用_PARALLAXMAP/DIRLIGHTMAP_COMBINED/DIRLIGHTMAP_SEPARATE
Standard Shader
shader_feature切换功能
ForwardBase Pass
平行光/自发光/lightmap/…
ForwardAdd Pass
额外光源 一次一个
Standard Shader
StandardShaderGUI.cs 根据UI切换参数
Standard Shader-Vert
77-79 初始化
81-85 世界空间/裁剪空间坐标
88-92 世界空间法线/视线
94-100 切空间
109-112 PBR预计算项
Vert输出值将插值后传入Frag
常见Shader优化技巧
Standard Shader-Frag
MainLightSimple
获取主光源颜色/方向
ndotl
法向量和光源方向点积
SHADOW_ATTENUATION
接受阴影
Occlusion
OCC贴图
FragmentGI
全局光照
UNITY_APPLY_FOG
硬件雾
Standard Shader-UNITY_SETUP_BRDF_INPUT
Metallic工作流
输入:金属度+光滑度
specColor=lerp(DielectricSpec, albedo, metallic)
diffColor=albedo*lerp(1-DielectricSpec, 0, metallic))
Specular工作流
输入:高光颜色+光滑度
diffColor=albedo*(1-SpecularStrength(specColor))
能量守恒
金属specColor大,diffColor小
非金属反之
Standard Shader-FragmentGI
250-261 设置变量
光照贴图或环境光
263-274
Reflection Probe
GPU Gems 3 Chap.19 IBL
Sphere 无穷远
Box 本地校正
UnityGlobalIllumination
GI核心函数
Standard Shader-UnityGlobalGI
UnityGI_Base
ShadeSHPerPixel 即Light Probe
Lightmap
原创力文档


文档评论(0)