gpt4 book ai didi

c - phong 着色中的灯光位置坐标

转载 作者:太空狗 更新时间:2023-10-29 15:22:30 25 4
gpt4 key购买 nike

我正在学习 Phong 着色并遇到一些困惑:

  1. Phong 着色中光线位置的坐标是多少? (模型空间、模型 View 或其他什么?)
  2. 根据这个:http://www.ozone3d.net/tutorials/glsl_lighting_phong_p2.php :

顶点着色器是:

varying vec3 normal, lightDir, eyeVec;

void main()
{
normal = gl_NormalMatrix * gl_Normal;
vec3 vVertex = vec3(gl_ModelViewMatrix * gl_Vertex);

lightDir = vec3(gl_LightSource[0].position.xyz - vVertex);
eyeVec = -vVertex;

gl_Position = ftransform();
}

为什么 eyeVec = -vVertex?

最佳答案

  1. 坐标系与阴影类型无关。您可以在模型空间、世界空间、 View 空间或任何您想要的组合空间中进行 phong 着色。唯一重要的是确保公式中所有相关 vector 都变换到同一个空间。
  2. 在这种情况下,看起来着色是在 View 空间中完成的。在 View 空间中,顶点坐标是相对于眼睛定义的。因此,从顶点到眼睛的 vector (eyeVec) 是从眼睛到顶点的 vector (vVertex) 的负值。

关于c - phong 着色中的灯光位置坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10877147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com