Pyhow为OpenGL中的对象设置一个单元



我正在学习OpenGL,我对设置顶点数据位置有些困惑。

例如,据我了解,我想绘制一个矩形尺寸300mm x 300mm,我可以假设1个openGL单元= 1 mm,然后我设置了以下顶点数据:

data = [-0.5,  0.5,  # top left
        -0.5, -0.5,  # bottom left
         0.5,  0.5,  # top right
         0.5, -0.5]  # bottom right    

因此,矩形大小为1个OpenGL单元或1mm(如果没有错),然后使用模型矩阵将其缩放300。

我可以这样设置:

data = [ 0.0,   300.0,  # top left
         0.0,   0.0,    # bottom left
         300.0, 300.0,  # top right
         300.0, 0.0]    # bottom right

矩形尺寸为300个OpenGL单元或300mm。

我不知道哪种方法是正确的。

你能把我指向正确的方向。

谢谢

OpenGL坐标没有"单位"。

在归一化的设备坐标(NDC)中,在2x2x2框中(或2x2x1)中以归一化的设备坐标(NDC)进行了栅栏,以原点为中心,是可以映射到窗口坐标的片段,并将写入Framebuffer(假设他们通过了深度测试)。您要做什么才能获得碎片。

从您的问题中,我了解您正在谈论拼字图投影,在这种情况下,请检查您的拼字图投影矩阵,它定义了"屏幕边缘"的坐标。因此,顶点坐标长度的实际单位是您的投影和物理屏幕大小的函数。

我强烈建议阅读从顶点坐标到屏幕位置的简单方式转换。例如。http://www.songho.ca/opengl/gl_transform.html,稍微过时,但很好地涵盖了这个想法。
还要检查http://www.songho.ca/opengl/gl_proctivemtivematrix.html,特别是有关正交投影的部分。它应该给您一个想法,如何构建您选择的底部,左,右和顶部坐标的正射原矩阵。

相关内容

  • 没有找到相关文章

最新更新