2D形状坐标与现代Opengl
2D Shape Coordinates with Modern Opengl
我试图在现代opengl中渲染一系列2D形状(矩形,圆形)等,希望不使用任何变换矩阵。我希望我能够为一个由两个三角形组成的矩形指定坐标,像这样:
float V[] = { 20.0, 20.0, 0.0,
40.0, 20.0, 0.0,
40.0, 40.0, 0.0,
40.0, 40.0, 0.0,
20.0, 40.0, 0.0,
20.0, 20.0, 0.0 }
你可以看到顶点坐标是在视口中指定的?太空(我想它就是这么叫的)。现在,当它被opengl渲染时,它不起作用,因为剪辑空间从-1.0到1.0,原点在中心。
对我来说,正确的处理方式是什么?我最初认为调整glClipControl左上角和0到1将工作,但它没有。剪辑控制设置为左上角,0到1,原点仍然在中心,但它确实允许y轴向下移动时增加(这是一个开始)。
理想情况下,我想让opengl有0.0,0.0在左上角,1.0,1.0在右下角,然后我只是标准化每个顶点的位置,但我不知道如何让opengl使用这种类型的坐标系统
在顶点着色器中不使用矩阵也可以很容易地完成这些转换:
// From pixels to 0-1
vPos.xy /= vResolution.xy;
// Flip Y so that 0 is top
vPos.y = (1.-vPos.y);
// Map to NDC -1,+1
vPos.xy = vPos.xy*2.-1.;
相关文章:
- OpenGL 4.3 错误地将第 4 个纹理坐标映射到与第 3 个纹理坐标相同的位置
- 在 OpenGL 中将笛卡尔世界坐标转换为球面局部坐标
- 如何使用OpenGL知道所有顶点的当前坐标
- 在 openGL 中,模型坐标应该在我的 CPU 上计算还是在 GPU 上使用 OpenGL 调用计算?
- 检查刻度中的坐标不起作用(OpenGL)
- 将 OpenGL 坐标系统转换为自定义并返回
- OpenGL屏幕坐标到世界坐标
- 如何将鼠标坐标正确转换为 opengl 坐标?
- 在 OpenGL 3.3 中使用整数坐标绘制点?
- 如何在OpenGL中绘制一组坐标?
- OpenGL 纹理坐标不起作用
- OpenGL从窗口点到3D坐标
- 给定两组 xyz 坐标和一个 sag (a) 的值,我可以在 OpenGL 中的这些点之间绘制一个悬链线
- Opengl 土壤纹理坐标无法识别
- C++OpenGL坐标阵列来绘制线条/边界和填充矩形
- 如何在 opengl 中放置坐标> 100.0f?
- gluUnProject试图将鼠标坐标转换为opengl坐标的奇怪行为
- OpenGL坐标向世界的转换
- 如何将鼠标位置从SFML转换为OpenGL坐标
- 如何在使用glm::ortho的2d游戏中将像素坐标转换为opengl坐标