LearnOpenGL CN
《Unity Shader入门精要》自学笔记(三)第六章 基础光照
《Unity Shader入门精要》自学笔记(七)第九章 更复杂的光照 ——光照衰减
平行光
struct DirLight {
vec3 direction;
vec3 ambient;
vec3 diffuse;
vec3 specular;
};
uniform DirLight dirLight;
点光源光照衰减的计算
struct PointLight {
vec3 position;
vec3 ambient;
vec3 diffuse;
vec3 specular;
float constant;
float linear;
float quadratic;
};
#define MAX_N_POINT_LIGHTS 4
uniform PointLight pointLights[MAX_N_POINT_LIGHTS];
之前没有深究过光照衰减的计算,这次终于知道了
F a t t = 1.0 K c + K l ∗ d + K q ∗ d 2 F_{att} = \frac {1.0 }{K_{c} + K_{l} * d + K_{q} * d^2} Fatt=Kc+Kl∗d+K