OpenGL: 屏幕二维坐标转化成三维模型坐标
来源:互联网 发布:js数组转为json字符串 编辑:程序博客网 时间:2024/06/02 11:13
我们把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;}
网上有的文章说还要考虑模型的旋转、平移与缩放,即反投影的时候也要进行反旋转、反平移与反缩放,但是经过我的实验,这个是不用考虑的,因为反投影的时候导出的三个矩阵就包含旋转、平移与缩放的矩阵信息。
0 0
- OpenGL屏幕二维坐标转化成三维模型坐标
- OpenGL: 屏幕二维坐标转化成三维模型坐标
- OpenGL:屏幕二维坐标转化为三维模型坐标
- OpenGL:三维平面坐标转化为二维
- 三维世界坐标转化为二维屏幕坐标
- openGL将三维坐标转换成二维坐标在…
- Opengl二维坐标转三维坐标
- OpenGL屏幕坐标到三维坐标转换
- 屏幕坐标向opengl三维坐标转换
- OpenGL由屏幕坐标转换三维坐标
- openGL es2.0 render坐标(三维) 转换为 屏幕坐标(二维)
- OpenGL -- 三维到二维,坐标系统
- 将三维地理坐标转换到二维屏幕坐标
- 屏幕坐标转化为三维物体的坐标
- opengl屏幕坐标到三维坐标的转换
- opengl中将三维坐标转换到屏幕坐标
- opengl中将三维坐标转换到屏幕坐标
- 屏幕坐标转化为世界坐标(vc opengl)
- java运行内存分配图
- HDU4865
- 李宁上半年亏损5.86亿关店244家 放弃赞助体操队
- primefaces+jdbc实现单表操作
- systemverilog-modelsim中运行命令,时间精度,include
- OpenGL: 屏幕二维坐标转化成三维模型坐标
- linux 学习书籍
- 的发生的方式法规的规定发鬼地方
- 今日APPS:手机戒瘾法宝Forest 拒当低头族
- [leetcode] Word Break II
- java数据库--JDBC
- WP开发环境配置过程中遇到的问题总结
- HDU4882
- How to calculate ADF table column