System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种通过线性差值检测三维场景深度的方法及系统技术方案_技高网

一种通过线性差值检测三维场景深度的方法及系统技术方案

技术编号:41418223 阅读:4 留言:0更新日期:2024-05-21 20:51
本发明专利技术提供了一种通过线性差值检测三维场景深度的方法及系统,所述方法包括如下步骤:步骤S1、根据三维场景精度要求,用射线获得场景点的深度,并把检测到深度的点存储在工程里;步骤S2、加载完三维场景就读取对应场景需要的检测到深度的点;步骤S3、在三维场景要读取某个点的深度时,根据要检测点的X轴和Z轴值,线性差值出要检测三维顶点的Y轴值;步骤S4、在角色前进方向按一定间隔能检测各个三维顶点的深度,根据深度能在三维场景中做不同逻辑的动作操作。本发明专利技术优化了内存和中央处理器的性能,并且简化了场景高度判断逻辑。

【技术实现步骤摘要】

本专利技术涉及游戏或者软件开发,特别是一种通过线性差值检测三维场景深度的方法及系统


技术介绍

1、在三维游戏开发中经常需要使用三维场景深度图,比如穿过三维场景中的障碍物,如果使用射线实时检查或者摄像机开启深度模式来读取场景中某一个点的深度,性能消耗比较大;如何按照指定精度要求存储场景的高度,以及运行时以节省性能的方式读取三维场景中的某一点的深度或者整个场景深度图成为检测三维场景深度重要环节。


技术实现思路

1、为克服上述问题,本专利技术的目的是提供一种通过线性差值检测三维场景深度的方法,优化了内存和中央处理器的性能,并且简化了场景高度判断的逻辑。

2、本专利技术采用以下方案实现:一种通过线性差值检测三维场景深度的方法,所述方法包括如下步骤:步骤s1、根据三维场景精度要求,用射线获得场景点的深度,并把检测到深度的点存储在工程里;

3、步骤s2、加载完三维场景就读取对应场景需要的检测到深度的点;

4、步骤s3、在三维场景要读取某个点的深度时,根据要检测点的x轴和z轴值,线性差值出要检测三维顶点的y轴值;

5、步骤s4、在角色前进方向按一定间隔能检测各个三维顶点的深度,根据深度能在三维场景中做不同逻辑的动作操作。

6、进一步的,所述方法还包括:步骤s5、根据三维场景精度要求也能检测三维场景各点深度,生成一张纹理,把各点深度写入纹理各像素的r通道,作为深度图,根据角色在场景的x轴和y轴数值比例,采样该深度图获得对应像素的r通道数值,根据当前位置对应的深度贴图的像素,该像素的r通道数值即为该三维顶点在场景的深度,根据深度能在三维场景中做不同逻辑的动作操作。

7、进一步的,所述步骤s3进一步具体为:步骤s31、设置需要线性差值曲面的长和宽,此处即为三维场景的长与宽;

8、步骤s32、三维场景中检测深度的三维顶点z轴值相同的顶点各自设置到同一个列表中,并且按这些顶点的x轴值从小到大在该列表中排列;

9、步骤s33、将三维顶点z轴值相同的这些列表按照z轴值从小到大嵌套到一个包括所有检测场景深度的三维顶点的总列表当中;

10、步骤s34、当要知道三维顶点d的线性差值出来之后的y轴坐标,只需要根据该三维顶点d的x轴和z轴的数值,先确定该三维顶点d的z轴数值大小在总列表中哪两个包含相同z轴值顶点的子列表中间,即三维顶点d的z轴值在包含相同z轴值a顶点和b顶点子列表和包含顶点c的子列表之间,根据z轴值从小到大设为子列表q和子列表r,如果该三维顶点d的z轴值在边缘线与最小z轴值子列表中间或者在最大z轴值子列表和边缘线之间,则设置边缘线为空子列表;

11、步骤s35、根据顶点d的x轴坐标数值,在包含顶点a和顶点b的子列表中,能判断顶点e在顶点a和顶点b之间,在包含顶点c的子列表中,能判断和顶点d相同x轴坐标数值的顶点f在顶点c和边缘的零顶点之间;

12、步骤s36、根据要获得线性差值顶点d的x轴值分别获取在对应子列表q的z轴值情况下对应的顶点e以及对应子列表r的z轴情况下的顶点f;

13、步骤s37、此时要获得线性差值顶点d的x轴数值和顶点e和顶点f相同,再根据顶点d离顶点e和顶点f的距离,获得出要线性差值三维顶点的y轴值数值。

14、本专利技术还提供了一种通过线性差值检测三维场景深度的系统,所述系统包括:检测深度点模块、加载模块、三维顶点深度值获取模块、动作执行模块;

15、所述检测深度点模块,根据三维场景精度要求,用射线获得场景点的深度,并把检测到深度的点存储在工程里;

16、所述加载模块,加载完三维场景就读取对应场景需要的检测到深度的点;

17、所述三维顶点深度值获取模块,在三维场景要读取某个点的深度时,根据要检测点的x轴和z轴值,线性差值出要检测三维顶点的y轴值;

18、所述动作执行模块,在角色前进方向按一定间隔能检测各个三维顶点的深度,根据深度能在三维场景中做不同逻辑的动作操作。

19、进一步的,所述系统还包括:深度图处理模块,所述深度图处理模块根据三维场景精度要求也能检测三维场景各点深度,生成一张纹理,把各点深度写入纹理各像素的r通道,作为深度图,根据角色在场景的x轴和y轴数值比例,采样该深度图获得对应像素的r通道数值,根据当前位置对应的深度贴图的像素,该像素的r通道数值即为该三维顶点在场景的深度,根据深度能在三维场景中做不同逻辑的动作操作。

20、进一步的,所述三维顶点深度值获取模块的实现方式进一步具体为:设置需要线性差值曲面的长和宽,此处即为三维场景的长与宽;

21、三维场景中检测深度的三维顶点z轴值相同的顶点各自设置到同一个列表中,并且按这些顶点的x轴值从小到大在该列表中排列;

22、将三维顶点z轴值相同的这些列表按照z轴值从小到大嵌套到一个包括所有检测场景深度的三维顶点的总列表当中;

23、当要知道三维顶点d的线性差值出来之后的y轴坐标,只需要根据该三维顶点d的x轴和z轴的数值,先确定该三维顶点d的z轴数值大小在总列表中哪两个包含相同z轴值顶点的子列表中间,即三维顶点d的z轴值在包含相同z轴值a顶点和b顶点子列表和包含顶点c的子列表之间,根据z轴值从小到大设为子列表q和子列表r,如果该三维顶点d的z轴值在边缘线与最小z轴值子列表中间或者在最大z轴值子列表和边缘线之间,则设置边缘线为空子列表;

24、根据顶点d的x轴坐标数值,在包含顶点a和顶点b的子列表中,能判断顶点e在顶点a和顶点b之间,在包含顶点c的子列表中,能判断和顶点d相同x轴坐标数值的顶点f在顶点c和边缘的零顶点之间;

25、根据要获得线性差值顶点d的x轴值分别获取在对应子列表q的z轴值情况下对应的顶点e以及对应子列表r的z轴情况下顶点f;

26、此时要获得线性差值顶点d的x轴数值和顶点e和顶点f相同,再根据顶点d离顶点e和顶点f的距离,获得出要线性差值三维顶点的y轴值数值。

27、本专利技术的有益效果在于:本专利技术目的在于如果需要知道场景中某一点的深度或者全场景深度图,根据精度要求,按每间隔一段距离检查场景点高度,并且存储这些检测点的高度,在游戏运行时如果需要知道场景中某一个点的高度,通过线性差值得出该点的高度,或者需要三维场景整张深度图的地方根据存储的检测点的高度生成场景深度图,优化了内存和中央处理器的性能,并且简化了场景高度判断逻辑。

本文档来自技高网...

【技术保护点】

1.一种通过线性差值检测三维场景深度的方法,其特征在于:所述方法包括如下步骤:步骤S1、根据三维场景精度要求,用射线获得场景点的深度,并把检测到深度的点存储在工程里;

2.根据权利要求1所述的一种通过线性差值检测三维场景深度的方法,其特征在于:所述方法还包括:

3.根据权利要求1所述的一种通过线性差值检测三维场景深度的方法,其特征在于:所述步骤S3进一步具体为:步骤S31、设置需要线性差值曲面的长和宽,此处即为三维场景的长与宽;

4.一种通过线性差值检测三维场景深度的系统,其特征在于:所述系统包括:检测深度点模块、加载模块、三维顶点深度值获取模块、动作执行模块;

5.根据权利要求1所述的一种通过线性差值检测三维场景深度的系统,其特征在于:所述系统还包括:深度图处理模块,所述深度图处理模块根据三维场景精度要求也能检测三维场景各点深度,生成一张纹理,把各点深度写入纹理各像素的R通道,作为深度图,根据角色在场景的X轴和Y轴数值比例,采样该深度图获得对应像素的R通道数值,根据当前位置对应的深度贴图的像素,该像素的R通道数值即为该三维顶点在场景的深度,根据深度能在三维场景中做不同逻辑的动作操作。

6.根据权利要求1所述的一种通过线性差值检测三维场景深度的系统,其特征在于:所述三维顶点深度值获取模块的实现方式进一步具体为:设置需要线性差值曲面的长和宽,此处即为三维场景的长与宽;

...

【技术特征摘要】

1.一种通过线性差值检测三维场景深度的方法,其特征在于:所述方法包括如下步骤:步骤s1、根据三维场景精度要求,用射线获得场景点的深度,并把检测到深度的点存储在工程里;

2.根据权利要求1所述的一种通过线性差值检测三维场景深度的方法,其特征在于:所述方法还包括:

3.根据权利要求1所述的一种通过线性差值检测三维场景深度的方法,其特征在于:所述步骤s3进一步具体为:步骤s31、设置需要线性差值曲面的长和宽,此处即为三维场景的长与宽;

4.一种通过线性差值检测三维场景深度的系统,其特征在于:所述系统包括:检测深度点模块、加载模块、三维顶点深度值获取模块、动作执行模块;

5....

【专利技术属性】
技术研发人员:刘德建郑福淦李佳
申请(专利权)人:福建天晴数码有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1