【发布时间】:2019-03-17 16:09:56
【问题描述】:
在旧的 OpenGL 版本中,可以通过调用来启用空间投影(对象随着距离的增加而变小)
glMatrixMode(GL_PROJECTION);
(至少据我所知,这是启用此模式的调用)。
在 OpenGL 3 中 - 当不再使用这种慢速堆栈模式时 - 此功能不再起作用。
那么我怎样才能在这里获得相同的空间效果呢?这样做的预期方式是什么?
【问题讨论】:
-
您必须将顶点乘以顶点着色器中的投影矩阵。我建议使用GLM library 和例如glm::perspective() 计算投影矩阵(或
glm::ortho,glm::frustum,...) -
此外,
glMatrixMode(GL_PROJECTION)不启用透视投影。它只是告诉 OpenGL 将所有后续矩阵操作调用应用于投影矩阵。是否包含透视投影是一个完全不同的问题。
标签: opengl spatial projection opengl-3