点光源和平行光光源的区别
平行光光源:平行光光源的所有入射光线是平行的,且不会发生衰减。
点光源:点光源的入射方向是被照射模型上的点的坐标减去点光源所在位置坐标的向量,且会随着距离的增加发生衰减。
效果图:
点光源片元shader
uniform vec4 U_LightPos;//点光源坐标
uniform vec3 U_EyePos;//眼睛的坐标
uniform vec4 U_AmbientLightColor;//环境光颜色
uniform vec4 U_AmbientMaterial;//环境光材质
uniform vec4 U_DiffuseLightColor;//漫反射光颜色
uniform vec4 U_DiffuseMaterial;//漫反射光材质
uniform vec4 U_SpecularLightColor;//环境光颜色
uniform vec4 U_SpecularMaterial;//环境光材质
varying vec3 V_Normal;//转换到世界空间的法线坐标
varying vec3 V_WorldPos;//转换到世界空间的点的坐标
void main()
{
//--计算环境光
vec4 ambientColor=U_AmbientLightColor*U_AmbientMaterial;
//--计算漫反射光
vec3 L=vec3(0.0);
float distance=0.0;
float attenuation=1.0;
//点光源的一些属