如何获得漫反射光的矢量

时间:2012-11-23 03:59:16

标签: opengl 3d

给定光位置(x,y,z)和像素(x,y,z)的位置,如何找到局部照明方程的漫射项的光矢量L?这是用于phong照明模型。

2 个答案:

答案 0 :(得分:0)

你不能只做矢量减法吗?确保您的矢量位于相同的坐标系中,然后执行vec3 L = lightPos - pixelPos

假设你的两个矢量都在眼睛坐标中,你通常会做

float diffuseLight = I_d * k_d * max(L * vec(0,0,1), 0)

然后从灯光中获得贡献。

你应该给你一些更多的背景问题,理解你的问题并不容易。

答案 1 :(得分:0)

两个向量必须位于相同的坐标系中。

对于点光源,光的位置是有限的(w != 0),光矢量是

vec4 L = normalize (light - point);

对于定向光,光的位置是无限的(w == 0),光矢量是光本身的位置

vec4 L = light;