【发布时间】:2018-08-02 03:15:25
【问题描述】:
由于我使用的矩阵,我无法在 3D 空间中放置点精灵。问题出在我的顶点着色器中(我省略了不必要的部分):
#version 330
in vec3 position; // 3d position of the particle
uniform mat4 vp_matrix; // the projection and view matrices from the camera
void main()
{
gl_Position = vp_matrix * vec4(position, 1);
}
目前我正在将视图和投影矩阵上传到这个矩阵制服。但这会导致粒子在相机移动时以意想不到的方式旋转和移动(即与我场景中的其他对象不同)。
将投影矩阵应用于点精灵是否有意义?还是我应该只应用视图矩阵?我应该应用整个视图矩阵,还是只应用平移和/或旋转?
【问题讨论】:
-
“将投影矩阵应用于点精灵有意义吗?” 是的,为什么不呢?一个点的 3D 顶点坐标与任何其他几何体的坐标没有什么不同。投影矩阵描述了从场景的 3D 点到视口的 2D 点的映射。您也必须将投影矩阵应用于点精灵。
标签: opengl