【Unity Shaders】学习笔记之为创建Half Lambert光照模型(六)
来源:互联网 发布:补水眼霜 知乎 编辑:程序博客网 时间:2024/05/16 05:42
一、创建Half Lambert光照模型
Half Lambert(半兰伯特)是由Value公式提出的技术,是一种用于在低光照区域照亮物体的技术。它基于提高了材质和物体表面周围的漫反射光照。
二、如何操作
我们继续使用上一节的代码【Unity Shaders】学习笔记之为创建自定义慢反射光照模型(五),通过以下步骤进行计算:
1.将漫反射计算结果乘以0.5,然后将下面的代码加入至光照函数里:
inline float4 LightingBasicDiffuse (SurfaceOutput s, fixed3 lightDir, fixed atten){float difLight = max(0, dot (s.Normal, lightDir));float hLambert = difLight*0.5+0.5;float4 col;col.rgb = s.Albedo * _LightColor0.rgb * (hLambert * atten * 2);col.a = s.Alpha;return col;}
在着色器的光照模型中加入Half Lambert之后,
效果前:
效果后:
三、实现原理
Half Lambert技术实现的是原理是把漫反射光照值的范围分成两半,然后加上0.5。基本意思就是如果光照值是1,对半开后就是0.5,然后再加0.5回去,将会再得到1。如果你对0进行操作,那么你会得到0.5,因此我们将0~1之间的值重新映射到区间0.5~1。
下图展示了漫反射的值经过Half Lambert计算后的函数曲线图。
本章主要参考《Unity Shaders and Effects Cookbook》一书,感谢原书作者提供的学习资料
0 0
- 【Unity Shaders】学习笔记之为创建Half Lambert光照模型(六)
- Unity Shaders and Effects Cookbook (1-3) 创建 Half Lambert 光照模型
- 【Unity Shaders】学习笔记之为创建自定义慢反射光照模型(五)
- Half Lambert光照模型
- Unity shader教程-第五课:自定义光照模型之Half Lambert模型
- 3.Unity_CG_Shader光照之——漫反射(lambert模型以及Half lambert模型)
- Shader学习笔记(三)自定义光照模型,经典光照模型Lambert与HalfLambert
- 6.Half Lambert光照Diffuse Shader
- 【猫猫的Unity Shader之旅】之Lambert光照
- shader学习之路(1)- half lambert
- Unity Shaders and Effects Cookbook (1-2)创建自定义漫反射光照模型
- Unity Shaders and Effects Cookbook (3-2) 创建简单的 Phong 高光 光照模型
- Unity Shaders and Effects Cookbook (3-3) 创建 BlinnPhong 光照模型
- Unity Shader学习笔记:标准光照模型
- 简单光照模型(Lambert 光照模型)
- unity shader学习笔记(一)——基础光照之标准光照模型定义
- Lambert漫反射光照模型归纳
- 【Unity Shaders】Lighting Models —— 光照模型之Lit Sphere
- Leetcode题解 299. Bulls and Cows
- IDA+OD双剑合璧=逆向无敌
- C++中结构体与类的区别
- hrbust 1382 Split the Points【判断正方形+判断矩形+极角排序】
- javascript ( 自定义对象--json的用法演示、Map的用法)
- 【Unity Shaders】学习笔记之为创建Half Lambert光照模型(六)
- 数学测试3
- linux 目录/sys 解析
- django 用户注册系统
- css基础代码库整理
- web压力测试之siege
- crontab入门及进阶学习笔记
- Xutils从服务器获取json数据
- xStream完美转换XML、JSON