gpt4 book ai didi

OpenGL gluProject() - 奇怪的结果

转载 作者:行者123 更新时间:2023-12-01 04:14:59 25 4
gpt4 key购买 nike

我想使用 gluProject函数,在“渲染”后获取二维窗口中的点坐标。问题是,我得到了奇怪的结果。例如:我有一个 x=16.5 的点。当我使用 gluProject在它上面我得到 x= -6200.0。

如果我理解 gluProject好的,我应该在“渲染”之后在我的屏幕上获得那个点的像素位置——对吗?如何将奇怪的结果转换为屏幕上的像素坐标?

感谢您的任何帮助!

我使用的代码(通过“sum1stolemyname”):

GLdouble modelview[16], projection[16]
GLint viewport[4];

glGetDoublev(GL_MODELVIEW_MATRIX, *modelView);
glGetDoublev(GL_PROJECTION_MATRIX, *projection);
glGetIntegerv(GL_VIEWPORT, *viewport);

double tx, ty, tz;

for(i = 0; i < VertexCount; i++)
{
gluProject(vertices[i].x, vertices[i].y, vertices[i].z,
modelview, projection, viewport,
&tx, &ty, &tz)
}

最佳答案

是的,不幸的是它确实做到了远平面,所以你可以在世界上构建一个“射线”。它不会为您提供您在 3D 空间中绘制的像素的实际位置。您可以做的是从屏幕到您从 gluProject 获得的点画一条线,然后使用它找到与几何图形的交点,以获得 3D 空间中的点。或者另一种选择是修改输入矩阵和视口(viewport),使远平面的距离更合理。

关于OpenGL gluProject() - 奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4294158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com