文档章节

opengl es的射线拾取

流云1987
 流云1987
发布于 2017/01/22 22:09
字数 553
阅读 106
收藏 0

       在opengl中关于拾取有封装好的选择模式,名字栈,命中记录,实现拾取的功能,相对容易一些。但是到了opengl es里面就比较倒霉了,因为opengl es是opengl的简化版,很多功能都被去掉了。没办法,要想实现拾取的功能只有自己动手。目前比较成熟而且相对较简单的拾取方案是:射线相交拾取。

      先介绍一下射线相交拾取的原理:

      (1):将用户在屏幕上点击的坐标(X, Y),转换为归一化坐标(Xn, Yn)

      (2):考虑到透视投影的可视锥有一个近平面和一个远平面,所以可以将刚才的归一化坐标转换为两个归一化坐标,一个的z值在近平面上,z值为-1;另一个的z值在远平面上,z值为1

      (3):计算出透视投影的逆矩阵,用这个逆矩阵分别乘以两个归一化坐标,相乘之后得到的值分别除以w,也就是做透视除法,这样就得到了在虚拟空间中的两个点。

      (4):用上一步计算出的虚拟空间中的两个点,生成一条射线。

      (5):用这条射线和其他的物体做相交检测。为了便于检测,可以将要检测的物体当成一个球体,这样射线和球体之间是否相交就比较容易检测了。

 

原本想自己在这篇博客中,将所有的步骤都讲的详细透彻,但是,真正动手才发现自己水平不够。既然这样就向大家推荐一处好的资料吧,《opengl es应用开发实践指南 android卷》的第九章,讲的很精彩。

 

     

 

© 著作权归作者所有

共有 人打赏支持
流云1987
粉丝 1
博文 8
码字总数 5512
作品 0
杭州
私信 提问
Android图形---OpenGL(二)

本文译自:http://developer.android.com/guide/topics/graphics/opengl.html OpenGL 包 一旦使用GLSurfaceView和GLSurfaceView.Renderer类给OpenGL建立了一个View容器,那么就可以开始使用以...

长平狐
2012/10/16
81
0
OpenGL ES Programming Guide for iOS 第一章

关于OpenGL ES Open Graphics Library(OpenGL)用于二维及三维数据的可视化。它是一种多用途的开放标准图形库,支持二维和三维数位内容创作,机械和建筑设计,虚拟样,飞行模拟,游戏,以及更...

长平狐
2012/10/08
459
0
OpenGL ES Programming Guide for iOS 第二章

第二章 iOS上的OpenGL ES OpenGL ES提供程序接口原函数以透过图形加速硬件管线绘制。OpenGL消耗图形命令产生影像用以显示给用户,或进一步处理OpenGL ES以外的检索。 OpenGL ES规范明确声明了...

长平狐
2012/10/08
1K
0
多平台游戏渲染开发

多平台游戏渲染开发 跨平台移动应用开发的渲染解决方案综述 在移动设备上做应用/游戏开发,实现跨平台是主流。对于应用/游戏的逻辑功能和核心算法部分,如果是用C++进行开发的,因为iOS/And...

失足处男的倒霉孩子
2013/12/25
1K
0
Metal入门教程(八)Metal与OpenGL ES交互

前言 Metal入门教程(一)图片绘制 Metal入门教程(二)三维变换 Metal入门教程(三)摄像头采集渲染 Metal入门教程(四)灰度计算 Metal入门教程(五)视频渲染 Metal入门教程(六)边界检测...

落影loyinglin
08/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

斗图咖(www.doutuka.com)上线纪念

网站名称:斗图咖 网站描述:是一款年轻人都在玩的斗图网站,来斗图咖一起斗图装逼交朋友吧。站长每天上传收集的最新最火斗图,供大家娱乐聊天发表情;后期也会开发表情自主设计,自己设计表...

focusone
11分钟前
0
0
Spring AOP 切面编程记录日志和接口执行时间

最近客户现在提出系统访问非常慢,需要优化提升访问速度,在排查了nginx、tomcat内存和服务器负载之后,判断是数据库查询速度慢,进一步排查发现是因为部分视图和表查询特别慢导致了整个系统...

编程SHA
22分钟前
5
0
年度大盘点:机器学习开源项目及框架

摘要: 2018年马上就要结束了,我们来回顾一下过去的这一年中,机器学习领域有哪些有趣的事情吧! 我们先来看看Mybridge AI 中排名靠前的顶级开源项目,再聊聊机器学习今年都有哪些发展,最后...

阿里云官方博客
25分钟前
6
0
15个Spring的核心注释示例

众所周知,Spring DI和Spring IOC是Spring Framework的核心概念。让我们从org.springframework.beans.factory.annotation和org.springframework.context.annotation包中探索一些Spring核心注......

java菜分享
27分钟前
2
0
[LintCode] Binary Tree Level Order Traversal(二叉树的层次遍历)

描述 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 样例 给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \9 20 / \ 15 7 返回他的分层遍历结果: [ [3], [...

honeymose
36分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部