设为首页 加入收藏

TOP

Unity3D 的物理渲染和光照模型(三)
2015-07-20 12:52:38 来源: 作者: 【 】 浏览:32
Tags:Unity3D 物理 渲染 光照 模型
器将使用 PBR 光照模型。17行 意味着该着色器将使用高级特性,因而其将不同在落后的硬件上使用。同样的, SurfaceOutput 也不能同 PBR 一起使用;而是必须使用? SurfaceOutputStandard


SurfaceOutputStandard 中不光是 Albedo,Normal,Emission 和 Alpha 这些属性,还有三个新的:


你应当通过 SurfaceOutputStandardSpecular 使用镜面流,其使用 float3 镜面替换了半金属性注意当朗伯反射存在一个半镜面场,其在 PBR 中的镜面属性就是一个 float3。这符合镜面反射光波的 RGB 颜色值属性 。


迄今为止已经介绍了四种不同的着色技术。为了避免混淆,可以参考下表中所示,顺序分别为:着色技术,表面着色器名,表面输出结构体名和内置着色器名称。


PBR 背后的方程非常复杂。如果你对背后的数学比较感兴趣,维基百科中的渲染方程这篇文章 将是非常好的起点。


如果你导入 Unity3D 包 (包含了该例程中用到的着色器), 你将注意到内置 “Bumped Diffuse” 着色器是怎么产生一个与其最初实现“Simple Lambert”非常不同的结果。这是因为 Unity3D 的着色器增加了额外的特性,比如正常的映射。


结论


本文介绍了用于表面着色的自定义光照模型。通过一个关于如何修改获得不同特性的真实例子简单解释了朗伯和 Blinn-Phong 模型。有必要注意下单纯的漫射材料实际上在生活中是不存在的:即使是你所想到的最钝的材料也会有一些镜面反射。漫射材料在过去中非常普遍,因为计算镜面反射开销太大。


本文也介绍了什么是 PBR,以及在 Unity5 中如何使用。PBR 着色器与表面着色器没有什么区别,仅仅是带有了一个非常高级的光照模型。


英文原文:Physically Based Rendering and lighting models in Unity3D


首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇B树——思路、及C语言代码的实现 下一篇排序算法之快速排序

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: