shader 光照模型,半角向量
来源:互联网 发布:清华大学软件学院校友 编辑:程序博客网 时间:2024/05/18 19:36
unity3d内置shader【Specular】中还有一种光照模型比较常见,那就是BlinnPhong镜面高光,这种shader会让物体受到光照时有更加真实的效果,并且光照效果还随观察着角度不同而变化。
我们也不知道BlinnPhong是什么,是如何运用的,其实是Unity将它封装了,源码在Unity的安装目录Editor/Data/CGincludes/Lighting.cginc中,对应的方法名为LightingBlinnPhong。
下面试着尝试重写BlinnPhong来加深对BlinnPhong的印象。
先来看看它的原理如图:
半角高光角度:使用入射光线【LightDir】和视线[ViewDir]的中间平均值,即半角向量,
然后使用该半角和法线计算出一个和视角相关的高光。
【注:木学过图形学基础,所以这里起名只是按照自己的理解,希望专业人士看到能指正,感激。。。】
详细原理在源码中:
// 由Specular改写,除了蓝色部分,其他和Specular一样。
Shader "Custom/e_BinnPhong" {
Properties {
}
SubShader {
// 1.半角向量:求(点到光源+点到摄像机)的单位向量,他们的中间平均值
// 2.漫反射系数【点到光源单位向量与法线向量的余弦值】
// 3.高光底数【半角向量与法线向量的余弦值】
// 4.高光系数:根据高光低数和高光指数求得
}
ENDCG
}
Fallback "VertexLit"
}
- shader 光照模型,半角向量
- Unity3d Shader光照模型
- <Shader> 自定义光照模型
- Unity Shader自定义光照模型
- Unity Shader 五 光照模型
- shader中一些光照模型
- 用Shader实现标准光照模型
- Shader中的空间概念以及光照模型
- Cook-Torrance光照模型附 shader代码
- 常用的光照模型Shader Models
- Unity Shader-Phong光照模型与Specular
- Unity Shader之自定义漫反射光照模型
- Unity Shader学习-3.光照模型
- Unity Shader-Phong光照模型与Specular
- Unity Shader学习笔记:标准光照模型
- unity shader中高光反射光照模型之顶点光照
- 【unity shader】《unity shader入门精要》 光照模型
- Unity Shader-兰伯特光照模型与Diffuse Shader
- 墨卡托投影、高斯-克吕格投影、UTM投影及我国分带方法
- 【数据结构】堆&优先级队列
- 有符号数的应用场合
- android studio导入Module
- spark运行原理和RDD解密
- shader 光照模型,半角向量
- 获取指定Activity的截屏,保存到png文件
- java Number 方法 运算符
- spring的annotation
- memcache基本使用
- XPP3-一个非常快的XML解析器
- 事件分发机制原理
- 找不到 constraint-layout:1.0.0-alpha3
- iOS文件拷贝实现