【shaderforge学习笔记】 Lighting(灯光信息)

ShaderForge 灯光信息

这里写图片描述

Ambient Light

1. 官方说明

这里写图片描述
输出着色器正在渲染的场景的环境光。

2. 节点输出

环境光颜色四维向量
这里写图片描述

3. Unity Shader获取AmbientLight

built-in变量UNITY_LIGHTMODEL_AMBIENT,使用时#include “UnityCG.cginc”:

float4 ambient = UNITY_LIGHTMODEL_AMBIENT;

Half Dir.

1. 官方说明

这里写图片描述

输出half-direction。half-direction是视线向量和灯光向量的中间向量,通常在blinn-phong镜面模型中使用的。

2. 节点输出

Half-Direction三维向量
这里写图片描述

3. Unity Shader获取halfDirection

float3 halfDirection = normalize(viewDirection+lightDirection);

Light Atten

1. 官方说明

这里写图片描述
输出的探照灯的衰减。这个节点包含光衰减和阴影信息。

2. 节点输出

灯光衰减值,一个范围为[0,1]的一维数值
常用于与灯光颜色相乘,乘法结果作为漫反射的灯光颜色

3. Unity Shader中获取Light Atten

Build-in变量 ,使用时#include AutoLight.cginc”

...
float4 frag(VertexOutput i) : COLOR {
    float attenuation = LIGHT_ATTENUATION(i);
    ...
}

关于灯光衰减的原理可以参考冯乐乐女神的:【常见问题】dot(lightCoord, lightCoord).rr和光源衰减的相关问题

Light Color

1. 官方说明

这里写图片描述
输出当前渲染的灯光的颜色。

2. 节点输出

灯光颜色RGBA四维向量值,A值总是为1

3. Unity Shader获取LightColor

Built-in变量_LightColor0

float4 lightColor = _LightColor0;

LightDirection

1. 官方说明

这里写图片描述
输出当前渲染的灯光的方向(注意:这个方向是从物体到光源)

2. 节点输出

物体位置到光源位置的单位三维向量
这里写图片描述

3.Unity Shader获取LightDirection

float3 lightDirection = normalize(_WorldSpaceLightPos0.xyz);

Light Position

1. 官方说明

这里写图片描述
输出当前渲染的灯光的位置。
[Pnt]输出1说明当前的光源是点光,否则输出为0。

2. 节点输出

灯光位置的三维数据XYZ
这里写图片描述

3. Unity Shader获取LightPosition

build-in变量_WorldSpaceLightPos0,使用时#include “UnityCG.cginc”

float3 lightPosition = _WorldSpaceLightPos0.xyz;
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页