opengl光照效果之点光源

本文探讨了OpenGL中点光源与平行光光源的区别。点光源的光照会随距离增加而衰减,其入射方向基于点光源与被照射点之间的向量。而平行光的所有光线保持平行,不考虑距离衰减。同时,文中还展示了点光源应用后的片元shader效果。
摘要由CSDN通过智能技术生成

点光源和平行光光源的区别

平行光光源:平行光光源的所有入射光线是平行的,且不会发生衰减。

点光源:点光源的入射方向是被照射模型上的点的坐标减去点光源所在位置坐标的向量,且会随着距离的增加发生衰减。

效果图:


点光源片元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;
	//点光源的一些属
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值