OpenGL屏幕二维坐标转化成三维模型坐标
来源:互联网 发布:go语言http json数据 编辑:程序博客网 时间:2024/05/21 07:55
我们把OpenGL里模型的三维坐标往二维坐标的转化称为投影,则屏幕上的二维坐标往三维坐标转化则可以称为反投影,下面我们来介绍一下反投影的方法。
主要是gluUnProject函数的使用,下面是代码:
void screen2GLPoint(){int x = xCord;/* 屏幕坐标 */int y = yCord;GLint viewport[4];GLdouble mvmatrix[16], projmatrix[16];GLfloat winx, winy, winz;GLdouble posx, posy, posz;glPushMatrix();//glScalef(0.1, 0.1, 0.1);glGetIntegerv(GL_VIEWPORT, viewport);/* 获取三个矩阵 */glGetDoublev(GL_MODELVIEW_MATRIX, mvmatrix);glGetDoublev(GL_PROJECTION_MATRIX, projmatrix);glPopMatrix();winx = x;winy = HEIGHT - y;glReadPixels((int)winx, (int)winy, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winz);/* 获取深度 */gluUnProject(winx, winy, winz, mvmatrix, projmatrix, viewport, &posx, &posy, &posz);/* 获取三维坐标 */cout << posx << ' ' << posy << ' ' << posz << endl;}
网上有的文章说还要考虑模型的旋转、平移与缩放,即反投影的时候也要进行反旋转、反平移与反缩放,但是经过我的实验,这个是不用考虑的,因为反投影的时候导出的三个矩阵就包含旋转、平移与缩放的矩阵信息。
- OpenGL屏幕二维坐标转化成三维模型坐标
- OpenGL: 屏幕二维坐标转化成三维模型坐标
- OpenGL:屏幕二维坐标转化为三维模型坐标
- OpenGL:三维平面坐标转化为二维
- 三维世界坐标转化为二维屏幕坐标
- openGL将三维坐标转换成二维坐标在…
- Opengl二维坐标转三维坐标
- OpenGL屏幕坐标到三维坐标转换
- 屏幕坐标向opengl三维坐标转换
- OpenGL由屏幕坐标转换三维坐标
- openGL es2.0 render坐标(三维) 转换为 屏幕坐标(二维)
- OpenGL -- 三维到二维,坐标系统
- 将三维地理坐标转换到二维屏幕坐标
- 屏幕坐标转化为三维物体的坐标
- opengl屏幕坐标到三维坐标的转换
- opengl中将三维坐标转换到屏幕坐标
- opengl中将三维坐标转换到屏幕坐标
- 屏幕坐标转化为世界坐标(vc opengl)
- 23个漂亮的jQuery文字动画效果教程示例
- JSTL 表达式与 EL 语言
- MingQQ v1.0高仿版开源了,使用WebQQ协议实现了QQ客户端基本的聊天功能...
- [C][socket]:setsockopt + raw_socket
- Standford机器学习 聚类算法(clustering)和非监督学习(unsupervised Learning)
- OpenGL屏幕二维坐标转化成三维模型坐标
- C++ 顺序栈的实现
- 汇编语言学习-基础篇2
- Spring AOP 详解
- C#操作AD及Exchange Server总结(二)
- memcache研究
- Longest Valid Parentheses (求最长有效匹配括号子串的长度)
- 20个非常棒的扁平设计免费资源
- android josn讲解及应用