[发明专利]一种基于体素数据的射线检测方法及系统有效
申请号: | 201811478030.8 | 申请日: | 2018-12-05 |
公开(公告)号: | CN109783842B | 公开(公告)日: | 2022-07-15 |
发明(设计)人: | 石轲;朱博;柳尧顺;陆利民 | 申请(专利权)人: | 苏州蜗牛数字科技股份有限公司 |
主分类号: | G06F30/23 | 分类号: | G06F30/23;G06T17/20;G06T3/40 |
代理公司: | 北京德崇智捷知识产权代理有限公司 11467 | 代理人: | 王金双 |
地址: | 215000 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 素数 射线 检测 方法 系统 | ||
一种基于体素数据的射线检测方法,包括步骤:确定射线与体素方格交点的Value值大于0的体素方格;根据Value值大于0的交点的象限生成虚拟方格,并获取射线与虚拟方格的近交点和远交点的Value值;判断近交点与远交点是否满足规定条件;计算并获取Value值等于128的坐标。本发明还提供一种基于体素数据的射线检测系统,能够快速、准确地进行射线检测。
技术领域
本发明涉及射线检测技术领域,特别是涉及一种基于体素数据的射线检测方法及系统。
背景技术
在3D体素地形的网络游戏中,射线检测有广阔的应用场景,比如获取贴地位置,可移动对象碰撞检测等。在客户端,通常是通过判断射线与地形体素数据生成的网格三角面是否相交来进行射线检测。而在服务器,由于没有地形网格数据,只有体素数据本身,因此需要在服务器提供一种射线检测方法。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种基于体素数据的射线检测方法及系统,可以快速、准确地进行射线检测。
为实现上述目的,本发明提供的基于体素数据的射线检测方法,包括以下步骤:
1)获取射线起点所在的体素方格,确定射线与体素方格交点的Value值大于0的体素方格;
2)根据Value值大于0的交点所处的象限生成虚拟方格,并获取射线与虚拟方格的近交点和远交点的Value值;
3)判断近交点与远交点是否满足规定条件;
4)计算并获取Value值等于128的坐标。
进一步地,所述步骤1),进一步包括:
如果当前体素方格的Value值为0,则继续沿射线方向朝下一个相邻方格步进。
进一步地,所述步骤2),进一步包括:
根据射线与体素方格近交点所处的象限偏移半个体素生成一个虚拟方格;
对当前虚拟方格与射线进行相交检测,获取其近交点和远交点的Value值。
进一步地,所述对当前虚拟方格与射线进行相交检测,获取其近交点和远交点的Value值的步骤,进一步包括:
根据每个交点存在的虚拟方格的面的顶点的Value值,对近交点与远交点进行平面线性插值分别获取两个交点插值后的Value值,其中,
虚拟方格的8个顶点分别是8个真实体素方格的中心,其代表8个Value值。
进一步地,所述步骤3),进一步包括:
判断远交点的Value值是否大于128;
判断近交点的Value值是否小于128;
如果远交点的Value值大于128,且近交点的Value值小于128,则进行下一步骤;如果远交点的Value值小于128,且远交点在当前真实体素方格的包围盒内,则根据射线方向继续步进下一个虚拟方格,并返回上一步骤;如果远交点的Value值小于128,且远交点在当前真实体素方格的包围盒外,则返回所述确定射线与体素方格交点的Value值大于0的体素方格的步骤;如果远交点的Value值大于128,且近交点的Value值大于128,则结束检测。
更进一步地,所述步骤4),进一步包括:
在远交点与近交点之间插值出Value值等于128的坐标。
为实现上述目的,本发明提供的基于体素数据的射线检测系统,包括:
数据获取模块,其获取各体素方格的包括Value值的体素数据,并获取射线与体素方格的交点;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州蜗牛数字科技股份有限公司,未经苏州蜗牛数字科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811478030.8/2.html,转载请声明来源钻瓜专利网。