本文主要是介绍opengl使用Blin-phone模型计算镜面光照强度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
由于计算镜面光光照强度,计算反射光非常耗时,可以使用Blin-phone模型来简化计算
效果图
blin-phone模型计算镜面反射光 片元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);if(U_LightPos.w==0.0)//如果是方向光{L=U_LightPos.xyz;}L=normalize(L);vec3 n&#
这篇关于opengl使用Blin-phone模型计算镜面光照强度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!