首页 / 专利库 / 电脑图像 / 着色器 / 顶点着色器 / 一种虚拟场景中雨滴下落位置的计算方法及终端

一种虚拟场景中雨滴下落位置的计算方法及终端

阅读:897发布:2020-05-18

专利汇可以提供一种虚拟场景中雨滴下落位置的计算方法及终端专利检索,专利查询,专利分析的服务。并且本 发明 提供的一种虚拟场景中雨滴下落 位置 的计算方法及终端,通过将虚拟场景中预设点遮挡件的深度信息 渲染 到预设目标上,得到深度信息图;确定当前渲染画面中预设点的坐标,并获取当前场景相机从屏幕空间到世界空间的第一变换矩阵;根据所述深度信息图、预设点的坐标和第一变换矩阵计算得到雨滴在世界空间中下落的位置,减少了原有的每 帧 均需要进行大量的 碰撞检测 的计算,从而降低了运算量和性能开销,另外,传统的碰撞检测由于需要考虑上一帧和下一帧的位置受雨滴速度的影响,容易影响误差,而以计算深度信息的方式来计算雨滴在世界空间中下落的位置,无需考虑雨滴速度的影响,提高了准确度。,下面是一种虚拟场景中雨滴下落位置的计算方法及终端专利的具体信息内容。

1.一种虚拟场景中雨滴下落位置的计算方法,其特征在于,包括步骤:
S1、将虚拟场景中预设点遮挡件的深度信息渲染到预设目标上,得到深度信息图;
S2、确定当前渲染画面中预设点的坐标,并获取当前场景相机从屏幕空间到世界空间的第一变换矩阵;
S3、根据所述深度信息图、预设点的坐标和第一变换矩阵计算得到雨滴在世界空间中下落的位置。
2.根据权利要求1所述的虚拟场景中雨滴下落位置的计算方法,其特征在于,所述步骤S1具体包括:
S11、在虚拟场景中添加第一相机,并将所述虚拟场景中预设点遮挡件通过所述第一相机渲染到预设目标上,得到深度信息图。
3.根据权利要求2所述的虚拟场景中雨滴下落位置的计算方法,其特征在于,所述步骤S11具体包括:
S111、在虚拟场景中添加第一相机,并根据所述第一相机的参数和正交投影公式,计算出所述第一相机从世界空间到投影空间的第二变换矩阵;
S112、开启深度测试,并通过所述第二变换矩阵和预设点遮挡件的顶点在世界空间中的坐标,计算出各个雨滴遮挡件的顶点在所述第一相机的投影空间中的坐标,并传送至着色器
S113、所述着色器通过颜色将所述各个雨滴遮挡件的顶点在所述第一相机的投影空间中的坐标存储为深度信息,得到深度信息图。
4.根据权利要求1所述的虚拟场景中雨滴下落位置的计算方法,其特征在于,步骤S2具体包括:
S21、确定当前渲染画面的大小,并建立坐标系,得到预设点的坐标;
S22、获取当前场景相机从屏幕空间到世界空间的第一变换矩阵。
5.根据权利要求4所述的虚拟场景中雨滴下落位置的计算方法,其特征在于,步骤S3具体包括:
S31、根据所述预设点的坐标和所述第一变换矩阵,计算得到所述预设点在第一相机下的屏幕空间中的坐标;
S32、从所述预设点在第一相机下的屏幕空间中的坐标中随机选择若干坐标值作为雨滴的屏幕坐标,并根据所述深度信息图从所有雨滴的屏幕坐标中,计算得到最小深度值的雨滴所对应的屏幕坐标;
S33、根据所述第二变换矩阵,计算得到所述第二变换矩阵的逆矩阵;
S34、根据最小深度值的雨滴所对应的屏幕坐标和所述逆矩阵得到世界坐标。
6.一种虚拟场景中雨滴下落位置的计算终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
S1、将虚拟场景中预设点遮挡件的深度信息渲染到预设目标上,得到深度信息图;
S2、确定当前渲染画面中预设点的坐标,并获取当前场景相机从屏幕空间到世界空间的第一变换矩阵;
S3、根据所述深度信息图、预设点的坐标和第一变换矩阵计算得到雨滴在世界空间中下落的位置。
7.根据权利要求6所述的虚拟场景中雨滴下落位置的计算终端,其特征在于,所述步骤S1具体包括:
S11、在虚拟场景中添加第一相机,并将所述虚拟场景中预设点遮挡件通过所述第一相机渲染到预设目标上,得到深度信息图。
8.根据权利要求7所述的虚拟场景中雨滴下落位置的计算终端,其特征在于,所述步骤S11具体包括:
S111、在虚拟场景中添加第一相机,并根据所述第一相机的参数和正交投影公式,计算出所述第一相机从世界空间到投影空间的第二变换矩阵;
S112、开启深度测试,并通过所述第二变换矩阵和预设点遮挡件的顶点在世界空间中的坐标,计算出各个雨滴遮挡件的顶点在所述第一相机的投影空间中的坐标,并传送至着色器;
S113、所述着色器通过颜色将所述各个雨滴遮挡件的顶点在所述第一相机的投影空间中的坐标存储为深度信息,得到深度信息图。
9.根据权利要求6所述的虚拟场景中雨滴下落位置的计算终端,其特征在于,步骤S2具体包括:
S21、确定当前渲染画面的大小,并建立坐标系,得到预设点的坐标;
S22、获取当前场景相机从屏幕空间到世界空间的第一变换矩阵。
10.根据权利要求9所述的虚拟场景中雨滴下落位置的计算终端,其特征在于,步骤S3具体包括:
S31、根据所述预设点的坐标和所述第一变换矩阵,计算得到所述预设点在第一相机下的屏幕空间中的坐标;
S32、从所述预设点在第一相机下的屏幕空间中的坐标中随机选择若干坐标值作为雨滴的屏幕坐标,并根据所述深度信息图从所有雨滴的屏幕坐标中,计算得到最小深度值的雨滴所对应的屏幕坐标;
S33、根据所述第二变换矩阵,计算得到所述第二变换矩阵的逆矩阵;
S34、根据最小深度值的雨滴所对应的屏幕坐标和所述逆矩阵得到世界坐标。

说明书全文

一种虚拟场景中雨滴下落位置的计算方法及终端

技术领域

[0001] 本发明涉及计算机图形图像领域,特别涉及一种虚拟场景中雨滴下落位置的计算方法及终端。

背景技术

[0002] 计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。
[0003] 在虚拟场景中下雨模拟,通常采用碰撞检测的方式来检测碰撞点的位置来计算雨滴落地点的位置,不仅需要使用大量的粒子,运算量大且精度较低,而且传统的碰撞检测的方案下,粒子需要挂载碰撞盒,在每一渲染中,成千上万的粒子需要与阻挡物件进行相交计算,运算复杂且性能开销大,无法在移动平台下运行。

发明内容

[0004] (一)要解决的技术问题
[0005] 为了解决现有技术的上述问题,本发明提供一种虚拟场景中雨滴下落位置的计算方法及终端,能够降低运算量和性能开销,并提高准确度。
[0006] (二)技术方案
[0007] 为了达到上述目的,本发明采用的一种技术方案包括:
[0008] 一种虚拟场景中雨滴下落位置的计算方法,包括步骤:
[0009] S1、将虚拟场景中预设点遮挡件的深度信息渲染到预设目标上,得到深度信息图;
[0010] S2、确定当前渲染画面中预设点的坐标,并获取当前场景相机从屏幕空间到世界空间的第一变换矩阵;
[0011] S3、根据所述深度信息图、预设点的坐标和第一变换矩阵计算得到雨滴在世界空间中下落的位置。
[0012] 为了达到上述目的,本发明采用的另一种技术方案包括:
[0013] 一种虚拟场景中雨滴下落位置的计算终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
[0014] S1、将虚拟场景中预设点遮挡件的深度信息渲染到预设目标上,得到深度信息图;
[0015] S2、确定当前渲染画面中预设点的坐标,并获取当前场景相机从屏幕空间到世界空间的第一变换矩阵;
[0016] S3、根据所述深度信息图、预设点的坐标和第一变换矩阵计算得到雨滴在世界空间中下落的位置。
[0017] (三)有益效果
[0018] 本发明的有益效果在于:通过将虚拟场景中预设点遮挡件的深度信息渲染到预设目标上,得到深度信息图;确定当前渲染画面中预设点的坐标,并获取当前场景相机从屏幕空间到世界空间的第一变换矩阵;根据所述深度信息图、预设点的坐标和第一变换矩阵计算得到雨滴在世界空间中下落的位置,减少了原有的每帧均需要进行大量的碰撞检测的计算,从而降低了运算量和性能开销,另外,传统的碰撞检测由于需要考虑上一帧和下一帧的位置受雨滴速度的影响,容易影响误差,而以计算深度信息的方式来计算雨滴在世界空间中下落的位置,无需考虑雨滴速度的影响,提高了准确度。附图说明
[0019] 图1为本发明实施例的虚拟场景中雨滴下落位置的计算方法流程图
[0020] 图2为本发明实施例的虚拟场景中雨滴下落位置的计算终端的结构示意图。
[0021] 【附图标记说明】
[0022] 1:虚拟场景中雨滴下落位置的计算终端;
[0023] 2:存储器;
[0024] 3:处理器。

具体实施方式

[0025] 为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
[0026] 实施例一
[0027] 请参照图1,一种虚拟场景中雨滴下落位置的计算方法,包括步骤:
[0028] S1、将虚拟场景中预设点遮挡件的深度信息渲染到预设目标上,得到深度信息图;
[0029] 所述步骤S1具体包括:
[0030] S11、在虚拟场景中添加第一相机,并将所述虚拟场景中预设点遮挡件通过所述第一相机渲染到预设目标上,得到深度信息图。
[0031] 所述步骤S11具体包括:
[0032] S111、在虚拟场景中添加第一相机,并根据所述第一相机的参数和正交投影公式,计算出所述第一相机从世界空间到投影空间的第二变换矩阵;
[0033] S112、开启深度测试,并通过所述第二变换矩阵和预设点遮挡件的顶点在世界空间中的坐标,计算出各个雨滴遮挡件的顶点在所述第一相机的投影空间中的坐标,并传送至着色器
[0034] S113、所述着色器通过颜色将所述各个雨滴遮挡件的顶点在所述第一相机的投影空间中的坐标存储为深度信息,得到深度信息图。
[0035] S2、确定当前渲染画面中预设点的坐标,并获取当前场景相机从屏幕空间到世界空间的第一变换矩阵;
[0036] 步骤S2具体包括:
[0037] S21、确定当前渲染画面的大小,并建立坐标系,得到预设点的坐标;
[0038] S22、获取当前场景相机从屏幕空间到世界空间的第一变换矩阵。
[0039] S3、根据所述深度信息图、预设点的坐标和第一变换矩阵计算得到雨滴在世界空间中下落的位置。
[0040] 步骤S3具体包括:
[0041] S31、根据所述预设点的坐标和所述第一变换矩阵,计算得到所述预设点在第一相机下的屏幕空间中的坐标;
[0042] S32、从所述预设点在第一相机下的屏幕空间中的坐标中随机选择若干坐标值作为雨滴的屏幕坐标,并根据所述深度信息图从所有雨滴的屏幕坐标中,计算得到最小深度值的雨滴所对应的屏幕坐标;
[0043] S33、根据所述第二变换矩阵,计算得到所述第二变换矩阵的逆矩阵;
[0044] S34、根据最小深度值的雨滴所对应的屏幕坐标和所述逆矩阵得到世界坐标。
[0045] 实施例二
[0046] 本实施例和实施例一的区别在于,本实施例将结合具体的应用场景进一步的说明本发明上述虚拟场景中雨滴下落位置的计算方法是如何实现的:
[0047] S1、将虚拟场景中预设点遮挡件的深度信息渲染到预设目标上,得到深度信息图;
[0048] 具体地,所述预设目标为一单独的渲染目标;
[0049] 所述步骤S1具体包括:
[0050] S11、在虚拟场景中添加第一相机,并将所述虚拟场景中预设点遮挡件通过所述第一相机渲染到预设目标上,得到深度信息图。
[0051] 所述步骤S11具体包括:
[0052] S111、在虚拟场景中添加第一相机,并根据所述第一相机的参数和正交投影公式,计算出所述第一相机从世界空间到投影空间的第二变换矩阵;
[0053] 具体地,所述第一相机的参数包括第一相机在世界空间中的位置、方向、近平台距离、远平面距离和视口大小,并将第一相机的位置设置为下雨起始点的位置,旋转设置为下雨的方向,近平面设置为0.1,远平面设置为下雨的最大高度,视口大小设置为虚拟场景中需要下雨的长方形区域的大小;
[0054] S112、开启深度测试,并通过所述第二变换矩阵和预设点遮挡件的顶点在世界空间中的坐标,计算出各个雨滴遮挡件的顶点在所述第一相机的投影空间中的坐标,并传送至着色器;
[0055] 具体地,在渲染状态中开启深度测试,来确保深度值最小的物件能够被画到最前面,并在预设目标中替代掉其它物件的深度值;
[0056] S113、所述着色器通过颜色将所述各个雨滴遮挡件的顶点在所述第一相机的投影空间中的坐标存储为深度信息,得到深度信息图。
[0057] 具体地,在顶点着色器中,需要计算虚拟场景中雨滴遮挡件模型所有顶点在第一相机的投影空间中的位置,具体方法为用第二变换矩阵乘以顶点的世界空间位置,获得顶点在第一相机的投影空间中的位置,记为POS0,将该值传给片元着色器;
[0058] 其中,POS0是一个四维分量的参数,定义这四个分量为(x,y,z,w),首先通过POS0的z分量除以w分量,得到深度值,记为DEPTH。在渲染中,该深度的取值范围为-1到1,因为需要通过颜色来存储深度信息,因此需要转换到0到1的范围,方法为DEPTH*0.5+0.5,将该值作为最终的深度值储存到深度信息图中,最终存入的深度值记为DEPTH0;
[0059] S2、确定当前渲染画面中预设点的坐标,并获取当前场景相机从屏幕空间到世界空间的第一变换矩阵;
[0060] 步骤S2具体包括:
[0061] S21、确定当前渲染画面的大小,并建立坐标系,得到预设点的坐标;
[0062] S22、获取当前场景相机从屏幕空间到世界空间的第一变换矩阵。
[0063] 具体地,首先需要确认当前渲染画面的大小,记为SCREEN_SIZE,因此屏幕左上坐标为(0,0),屏幕右上角坐标位置为(SCREEN_SIZE.x,0),获取当前场景相机的屏幕空间到世界空间的第一变换矩阵;
[0064] S3、根据所述深度信息图、预设点的坐标和第一变换矩阵计算得到雨滴在世界空间中下落的位置。
[0065] 步骤S3具体包括:
[0066] S31、根据所述预设点的坐标和所述第一变换矩阵,计算得到所述预设点在第一相机下的屏幕空间中的坐标;
[0067] 具体地,通过第一变换矩阵乘以左上角坐标和右上角坐标,得到左上角坐标在世界空间中的位置为LPOS,右上角坐标在世界空间中的位置为RPOS,然后我们用第一变换矩阵分别乘以LPOS和RPOS,得到在第一相机下的屏幕空间中的坐标为LSCREEN_POS和RSCREEN_POS;
[0068] S32、从所述预设点在第一相机下的屏幕空间中的坐标中随机选择若干坐标值作为雨滴的屏幕坐标,并根据所述深度信息图从所有雨滴的屏幕坐标中,计算得到最小深度值的雨滴所对应的屏幕坐标;
[0069] 具体地,在LSCREEN_POS和RSCREEN_POS中随机采样x分量的值,采样的数量即雨滴落地点的数量,落地点的数量可以根据雨量大小来定,每次采样的位置都可随机进行,来达到随机落点位置的效果,将该随机点记为RANDOM_POS,将深度信息图从GPU中读取到CPU中,取随机点的x分量作为索引,从深度信息图中的数据中获取相同的横坐标下,不同纵坐标中的最小值,取该最小值为DEPTH_MIN;
[0070] S33、根据所述第二变换矩阵,计算得到所述第二变换矩阵的逆矩阵;
[0071] S34、根据最小深度值的雨滴所对应的屏幕坐标和所述逆矩阵得到世界坐标。
[0072] 具体地,将通过最小深度值DEPTH_MIN所对应的屏幕坐标和第二变换矩阵的逆矩阵,来反算出其在世界空间中的位置。最小深度值对应的屏幕坐标为一个四维分量坐标,其中x分量为DEPTH1的x分量,y分量为MIN_V,z分量为DEPTH_MIN,w分量为1,将该屏幕坐标从0到1转为-1到1的区间,以便计算投影空间到世界空间的反算,将MAT1乘以该屏幕坐标,获得最小深度的世界空间位置为POS1,该POS1即为雨落地点的位置。
[0073] 本发明通过世界空间位置不变的原则,通过第一相机渲染的场景深度图作为参考,根据在渲染游戏画面的相机和第一相机之间进行矩阵计算,从而精确地计算雨落地点的位置,相比碰撞检测的方案,减少了每帧大量的碰撞检测计算。另外在碰撞检测中,每一帧和下一帧的位置受到雨速度的影响,因此可能存在误差,裁剪点的位置也无法达到本发明中的精度。
[0074] 实施例三
[0075] 请参照图2,一种虚拟场景中雨滴下落位置的计算终端1,包括存储器2、处理器3及存储在存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述程序时实现实施例一中的各个步骤。
[0076] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈