获取glsl中的顶点世界位置

获取glsl中的顶点世界位置,glsl,vertex-shader,Glsl,Vertex Shader,我怎样才能得到一个具有顶点世界位置的向量3 假设我想得到一个立方体在世界空间y1的位置的白色像素和0的黑色像素 我试过了 (顶点着色器) (片段着色器) 但这给了我奇怪的结果,表面仍然取决于相机的角度和高度 如何获得世界空间x、y、z中的顶点位置?了解点如何从其局部空间转换为屏幕坐标 worldMatrix * vertex = worldSpace viewMatrix * worldSpace = viewSpace projectionMatrix * viewSpace = scre

我怎样才能得到一个具有顶点世界位置的向量3

假设我想得到一个立方体在世界空间y1的位置的白色像素和0的黑色像素

我试过了

(顶点着色器)

(片段着色器)

但这给了我奇怪的结果,表面仍然取决于相机的角度和高度


如何获得世界空间x、y、z中的顶点位置?

了解点如何从其局部空间转换为屏幕坐标

worldMatrix * vertex = worldSpace

viewMatrix * worldSpace = viewSpace

projectionMatrix * viewSpace = screenSpace
如果希望获得顶点的位置,则应将世界矩阵传递到着色器中,并将顶点乘以该矩阵

vec4 posWorld = worldMatrix * gl_Vertex;

为什么你会认为投影矩阵通向世界空间?嘿,因为我找不到更好的矩阵了。有世界矩阵这样的东西吗?如果我在快速参考中找不到世界矩阵:/谢谢,但是我从哪里可以得到世界矩阵?如果你只是简单地渲染一个模型(没有平移/旋转/缩放),那么你的世界矩阵就是单位矩阵,可以忽略不计。如果我们平移和旋转呢?那么世界矩阵就是变换矩阵。查找变换矩阵。
worldMatrix * vertex = worldSpace

viewMatrix * worldSpace = viewSpace

projectionMatrix * viewSpace = screenSpace
vec4 posWorld = worldMatrix * gl_Vertex;