我刚刚读了一些关于3d图形背后的理论的东西。据我所知,归一化设备坐标(NDC)是描述水平轴和垂直轴上从-1到1的间隔中的点的坐标。另一方面,窗口坐标描述窗口的(0,0)和(宽度,高度)之间的某个点。因此,我将一个点从NDC坐标系转换到窗口系统的公式如下
xwin = width + xndc * 0.5 * width
ywin = height + ynfv * 0.5 * height
现在的问题是,在glViewport的OpenGL文档中有另一个公式:
xwin = ( xndc + 1 ) * width * 0.5 + x
ywin = ( yndc + 1 ) * height * 0.5 + y
现在我想知道我搞错了什么。特别是我想知道额外的"x“和"y”是什么意思。
希望这个问题不是太“与编程无关”,但我认为它与图形编程有关。
发布于 2011-01-02 14:47:43
视口不一定从(0;0)开始,因此OpenGL文档中的'x‘和'y’是指视口的起始位置。
要查看公式的错误之处,请尝试转换(0;0)规范化位置,您将得到(width;height)而不是(width / 2;height / 2)。
https://stackoverflow.com/questions/4578786
复制相似问题