Unity Shader

1.余弦值和角度成(0-180度) 负相关

  点积值和角度成(0-180度) 负相关

2.三种着色器区别

(1)固定管线着色器:比较老的一种着色器,针对高级Shader在老显卡上兼容性不是很友好的时候,使用固定管线

(2)顶点片段着色器:相对来说比较难的着色器,可以实现复杂的视觉效果

(3)表面着色器:unity推荐使用的着色器,底层是顶点片段着色器,unity在基础上进行封装,使用起来比较简单,并且官方处理一些光照效果.

3.着色器书写格式

   Shader "着色器名称"   //给当前着色器命名

{

Properties

{

//颜色 贴图  颜色区域

}//属性定义

SubShader

{

}//子着色器1

SubShader

{//子着色器2}

...

FallBack"备用着色器名称"

}

4.子着色器和FallBack的关系

程序在执行到第一个子着色器的时候,如果第一个子着色器兼容当前显卡,那么执行第一个子着色器内部代码

后面的子着色器不再执行

如果第一个子着色器不兼容,检查第二个,以此类推...直到有一个子着色器可以使用

如果都不兼容,执行FallBack

5.固定管线属性定义

Properties

{

名称("显示名称",Vector)=(1,1,1,1)//四维向量值

名称("显示名称",Float)=0.1//浮点属性

名称("显示名称",Range(0.02,0.15))=0.07//范围

名称("显示名称",Color)=(1,1,1,1)//颜色

名称("显示名称",2D)=""{}//2D纹理

名称("显示名称",Rect)=""{}//矩形纹理

}

6.表面着色器属性

float:float2  float3   float4

half:浮点型

int:整形

fixed:定点型

bool

Sampler2D:纹理类型

string:

7.模型上颜色的叠加用的是乘法,环境光的叠加用加法

8.边缘高光(描边)

视角和物体的视角向量,观察位置点的法线向量

视角向量和法线向量的夹角  越接近0   越接近中心   越接近90度   越靠近边缘

-->余弦值

视角向量和法线向量的余弦值越接近1,夹角越接近0     余弦值越接近0   夹角越接近90

   余弦值和夹角成负相关    余弦值越小的话  越接近边缘

-->点积

视角向量和法线向量的点积    点积值接近1的话   越接近1,夹角越接近0   点积值越接近0 夹角越接近90

   余弦值和夹角成负相关    点积值越小的话  越接近边缘

9.高光Pong光照模型

原理:

   计算光的反射向量和  视角向量的夹角,光照强度和点积值  是  正相关

      夹角越小(余弦值越大,点积值越大,越接近1),当前像素点的光越强

      夹角越大(余弦值越小,点积值越小,越接近0),当前像素点的光越弱

猜你喜欢

转载自www.cnblogs.com/qipei/p/10276989.html