opengl es 纹理坐标怎样将屏幕坐标转为世界坐标

有关OpenGL的射线选择问题?在OpenGL中用射线选择,需要将屏幕坐标转换为世界坐标,转换为世界坐标后,是不是还要将之转换为模型坐标,然后根据转换后的模型坐标来判断鼠标点击处的射线是否与物体相交吧?不知道,这种观点是否正确.再就是,为什么我在程序窗口的最右端点击鼠标后,获得的世界坐标的x值是0.0722833,y值是0.0505793.现在感觉还是分不清世界坐标和模型坐标……
// 获取近裁剪面上的交点
gluUnProject((GLdouble) point.x, (GLdouble)winheight-point.y, 0.0,
modelview, projection, viewport,
&world_x, &world_y, &world_z);
法官4384904
你的概念有点混乱,opengl中只有屏幕坐标和世界坐标,还有两个转换矩阵,投影矩阵和模型矩阵,世界坐标经过模型矩阵和投影矩阵的转换后变成屏幕坐标.同时opengl也提供从屏幕坐标向世界坐标的转换,此时需要补充一个屏幕的深度坐标分量.射线选择时,鼠标的屏幕坐标转为世界坐标系下的射线,再与物体一起进行模型变换和投影变换,进行相交运算.
为您推荐:
其他类似问题
扫描下载二维码android OpenGL Es2.0 从世界坐标转屏幕,我有代码,但是好像不太正确,请高手来看下.
[问题点数:100分,结帖人Ptrtoptr]
android OpenGL Es2.0 从世界坐标转屏幕,我有代码,但是好像不太正确,请高手来看下.
[问题点数:100分,结帖人Ptrtoptr]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2015年9月 移动开发大版内专家分月排行榜第二2015年6月 移动开发大版内专家分月排行榜第二2014年12月 移动开发大版内专家分月排行榜第二2014年7月 移动开发大版内专家分月排行榜第二2013年12月 移动开发大版内专家分月排行榜第二2013年11月 移动开发大版内专家分月排行榜第二2013年10月 移动开发大版内专家分月排行榜第二
2014年11月 移动开发大版内专家分月排行榜第三2014年2月 移动开发大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
在ios端利用opengl建模,成功展示了一个3d模型,update内容如下
CGSize size = self.view.bounds.
float aspect = fabs(size.width / size.height);
GLKMatrix4 projectionMatrix = GLKMatrix4MakePerspective(GLKMathDegreesToRadians(bigSize), aspect, 1.0f, 10.0f);//GLKMathDegreesToRadians值越大,模型越小(0-180)
self.effect.transform.projectionMatrix = projectionM
GLKMatrix4 modelViewMatrix = GLKMatrix4Translate(GLKMatrix4Identity, 0.0f, 0.0f, 0.0f);
modelViewMatrix = GLKMatrix4Translate(modelViewMatrix, 0.0f, 0.0f, -2.0f); //平移
modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, _rotation, 0.1f, xxx, 1.0f);
GLKMatrix4 modelViewProjectionMatrix = GLKMatrix4Multiply(projectionMatrix, modelViewMatrix);
GLint mat = glGetUniformLocation(0.0f, "modelViewProjectionMatrix");
glUniformMatrix4fv(mat, 1, GL_FALSE, modelViewProjectionMatrix.m);`
由于物体的坐标位置是在屏幕坐标范围外的,所以看不到物体。如何设置当物体显示的时候,物体实在屏幕中央?
简而言之,如何改变物体的中心点坐标或者某点坐标为屏幕中心点坐标?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
解决了,我最后根据模型文件中所有的顶点数据,去到了最大和最小的xyz值,根据xyz值求出模型的中心点坐标,然后根据比例将模型在(0.0.0)处重绘即实现了模型在屏幕中心显示。至于合适大小,则是求出模型的最大长径,然后根据这个模型的长径求出一个在屏幕上合适的比例。将所有的xyz值乘以此比例。。。。完美解决。希望有人能够用到!
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要举报该,理由是:
扫扫下载 App
SegmentFault
一起探索更多未知<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&

我要回帖

更多关于 opengl es 坐标系 的文章

 

随机推荐