我有问题。 是否可以有两个顶点着色器。一个将以 2D 形式查看顶点,第二个将以 3D 形式查看顶点。 目前我的程序有 2D View 。 2d 和 3d 顶点之间的唯一区别是 3d 中的 vec2(x,y) 将变为 vec3(x,y,z)。所以我正在考虑发送到 gpu vec3 并设置 gl_Position.z=0;
我最大的问题是我为 glm:lookat 和 glm::perspective 选择了魔数(Magic Number)。如果我看到某些东西,则表示它有效。所以当我有 2d 和 3d View 时,一切看起来都很糟糕。 我可以移动相机,所以只做 3d 和改变相机的位置是行不通的。
最佳答案
不,这是不可能的。但是您始终可以多次渲染相同的几何体,但应用了不同的 glViewport 和投影矩阵。这是呈现 3D 编辑器的经典“顶、前、侧、透视” View 的规范方式。
My biggest problem is that i choose magic numbers for glm:lookat and glm::perspective.
好吧,那么我会解决这个问题,而不是神奇的数字,而是使用实际的数学来产生所需的效果。
关于c++ - Opengl 在 2d 或 3d 中显示顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21076376/