我正在学习 OpenGL 图形,并且正在进入阴影。我正在阅读的教程告诉我将法线和光矢量转换为相机空间。为什么是这样?为什么不能只将坐标保存在模型空间中?
对此的后续问题是如何处理模型转换。我无法找到明确的答案。我目前有这个代码:
vec3 normCamSpace = normalize(mat3(V) * normal);"
vec3 dirToLight = (V*vec4(lightPos, 0.0)).xyz;"
float cosTheta = clamp(dot(normCamSpace, dirToLight),0,1);"
V 是视图矩阵或相机矩阵。当模型的位置、旋转和比例发生变化时,我不确定如何移动或编辑灯光。