三维对象拾取方法、装置、设备及存储介质制造方法及图纸

技术编号:35089352 阅读:12 留言:0更新日期:2022-10-01 16:45
本发明专利技术公开了一种三维对象拾取方法、装置、终端设备及存储介质,方法包括:通过预设一个颜色渐变且像素颜色唯一的构建纹理,在使用真实纹理对三维对象进行渲染的同时,也利用构建纹理对三维对象进行隐藏渲染,从而在进行图形拾取时,通过读取定位设备在隐藏渲染的三维对象上所指位置的像素颜色,由于构建纹理中相邻位置的像素颜色是渐变的且每一位置的像素颜色唯一,因此可以保证由读取到的像素颜色能够反向查找出定位设备在渲染显示的三维对象上所指位置的坐标,由于本发明专利技术跳过了射线投射法中一系列坐标系变换的计算,因此需要的计算量小,即使在CPU性能有限的情况下,也不会出现页面卡顿的现象,能够给用户带来良好的使用体验。验。验。

【技术实现步骤摘要】
三维对象拾取方法、装置、设备及存储介质


[0001]本专利技术涉及计算机
,具体涉及一种三维对象拾取方法、装置、设备及存储介质。

技术介绍

[0002]WebGL(Web Graphics Library,Web图形库)技术是用于在浏览器页面里展示3D对象,当用户与3D对象有具体的交互需求时,通过鼠标等定位设备进行位置拾取后确定拾取位置的3D对象坐标,这称为图形拾取。
[0003]目前,在WebGL技术中常用的是射线投射拾取法,即计算从定位设备发出的射线与3D对象的交点,然后通过与渲染过程相反的一系列坐标系变换计算,求出定位设备选中位置对应的3D对象坐标,计算量比较大,在3D对象渲染刷新率比较高的情况下,CPU负载比较大,并且如果硬件性能不足够好,还会造成浏览器页面卡顿,影响用户体验。

技术实现思路

[0004]本专利技术的目的是针对上述现有技术的不足提出的一种三维对象拾取方法、装置、设备及存储介质,该目的是通过以下技术方案实现的。
[0005]本专利技术的第一方面提出了一种三维对象拾取方法,所述方法包括:
[0006]利用预设的构建纹理对已渲染的三维对象进行隐藏渲染,所述构建纹理中相邻纹理位置的像素颜色渐变且每一纹理位置的像素颜色唯一;
[0007]读取定位设备在隐藏渲染的三维对象上所指位置的像素颜色;
[0008]确定读取的像素颜色对应在所述构建纹理上的纹理位置;
[0009]根据所述纹理位置、第一预设纹理位置与三维对象顶点位置的对应关系,确定所述定位设备在已渲染的三维对象上所指位置的坐标。
[0010]本专利技术的第二方面提出了一种三维对象拾取装置,所述装置包括:
[0011]渲染模块,用于利用预设的构建纹理对已渲染的三维对象进行隐藏渲染,所述构建纹理中相邻纹理位置的像素颜色渐变且每一纹理位置的像素颜色唯一;
[0012]颜色读取模块,用于读取定位设备在隐藏渲染的三维对象上所指位置的像素颜色;
[0013]纹理坐标确定模块,用于确定读取的像素颜色对应在所述构建纹理上的纹理位置;
[0014]对象坐标确定模块,用于根据所述纹理位置、第一预设纹理位置与三维对象顶点位置的对应关系,确定所述定位设备在已渲染的三维对象上所指位置的坐标。
[0015]本专利技术的第三方面提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所述方法的步骤。
[0016]本专利技术的第四方面提出了一种计算机可读存储介质,其上存储有计算机程序,所
述程序被处理器执行时实现如上述第一方面所述方法的步骤。
[0017]基于上述第一方面和第二方面所述的三维对象拾取方法及装置,本专利技术至少具有如下有益效果或优点:
[0018]本专利技术通过预设一个颜色渐变且像素颜色唯一的构建纹理,在使用真实纹理对三维对象进行渲染的同时,也利用构建纹理对已渲染的三维对象进行隐藏渲染,从而在进行图形拾取时,通过读取定位设备在隐藏渲染的三维对象上所指位置的像素颜色,由于构建纹理中相邻位置的像素颜色是渐变的且每一位置的像素颜色唯一,因此可以保证获得读取到的像素颜色对应在构建纹理上的纹理位置,又由于构建纹理上的部分纹理位置与三维对象顶点位置存在对应关系,因此可以根据该对应关系和由像素颜色获得的纹理位置反向查找出定位设备在已渲染的三维对象上所指位置的坐标,进而本专利技术能够跳过射线投射法中一系列坐标系变换的计算,因此需要的计算量小,即使在CPU性能有限的情况下,也不会出现页面卡顿的现象,能够给用户带来良好的使用体验。
附图说明
[0019]此处所说明的附图用来提供对本专利技术的进一步理解,构成本专利技术的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:
[0020]图1为本专利技术示出的一种三维模型渲染过程中涉及的一系列坐标系变换示意图;
[0021]图2为本专利技术根据一示例性实施例示出的一种三维对象拾取方法的实施例流程图;
[0022]图3为本专利技术根据一示例性实施例示出的一种浏览器页面展示示意图;
[0023]图4为本专利技术根据一示例性实施例示出的一种三维对象拾取方法的完整流程示意图;
[0024]图5为本专利技术根据一示例性实施例示出的一种三维对象拾取装置的结构示意图;
[0025]图6为本专利技术根据一示例性实施例示出的一种计算机设备的硬件结构示意图图;
[0026]图7为本专利技术根据一示例性实施例示出的一种存储介质的结构示意图。
具体实施方式
[0027]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术的一些方面相一致的装置和方法的例子。
[0028]在本专利技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本专利技术。在本专利技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0029]应当理解,尽管在本专利技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本专利技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0030]随着3D技术的发展,很多浏览器应用支持使用3D技术展示三维模型,当用户需要和三维模型有交互时,通过使用鼠标等定位设备拾取三维模型的某一位置以进行交互,因此需要计算三维模型中定位设备所拾取位置的坐标。
[0031]而目前使用的射线投射拾取法,每次拾取计算都需要进行与渲染过程相反的一系列坐标系变换计算,如图1所示,为三维模型渲染过程中涉及的一系列坐标系变换,三维对象的顶点数据从对象坐标系,经过模型视图变换,得到相机坐标系下的坐标,然后再经过投影变换(正视投影或者透视投影),得到裁剪空间坐标系的坐标,然后进行归一化,得到规范化设备坐标系(x,y,z坐标范围为[

1,1])下的坐标,然后经过视口变换,得到屏幕坐标系下的坐标,即最终的渲染结果。
[0032]由此可见,位置拾取所采用的一系列反向变换计算量很大,会给cpu带来很大的负载,甚至还会造成浏览器页面卡顿,给用户带来很不好的使用体验。
[0033]为解决上述技术问题,本专利技术提出一种改进的三维对象拾取方法,通过预设一个相邻纹理位置的像素颜色渐变且每一纹理位置的像素颜色唯一的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种三维对象拾取方法,其特征在于,所述方法包括:利用预设的构建纹理对已渲染的三维对象进行隐藏渲染,所述构建纹理中相邻纹理位置的像素颜色渐变且每一纹理位置的像素颜色唯一;读取定位设备在隐藏渲染的三维对象上所指位置的像素颜色;确定读取的像素颜色对应在所述构建纹理上的纹理位置;根据所述纹理位置、第一预设纹理位置与三维对象顶点位置的对应关系,确定所述定位设备在已渲染的三维对象上所指位置的坐标。2.根据权利要求1所述的方法,其特征在于,所述构建纹理的构建过程包括:建立空白纹理,所述空白纹理包括至少一个像素通道;为至少一个所述像素通道填充像素值,且相邻纹理位置的至少一个相同像素通道的像素值不同。3.根据权利要求2所述的方法,其特征在于,所述空白纹理包括三个像素通道;为每个所述像素通道填充像素值,且相邻纹理位置的至少一个相同像素通道的像素值不同。4.根据权利要求3所述的方法,其特征在于,所述空白纹理的大小为第一预设尺寸;所述三个像素通道包括第一预设通道至第三预设通道;为每个所述像素通道填充像素值,且相邻纹理位置的至少一个相同像素通道的像素值均不同,包括:按照第二预设尺寸对所述空白纹理进行区域划分,并为划分得到的每个区域分配第一预设通道的像素值,且相邻区域的第一预设通道的像素值连续变化;针对每个区域中的每一纹理位置,根据该纹理位置的坐标确定第二预设通道和第三预设通道的像素值,每个区域中相邻纹理位置的第二预设通道的像素值以及第三预设通道的像素值均连续变化;为所述空白纹理中的每一纹理位置填充第一预设通道的像素值、第二预设通道的像素值和第三预设通道的像素值,得到构建纹理。5.根据权利要求1所述的方法,其特征在于,所述利用预设的构建纹理对已渲染的三维对象进行隐藏渲染,包括:检测定位设备的拾取事件;当检测到拾取事件时,获取第一预设纹理位置与三维对象顶点位置的对应关系;根据所述对应关系,在所述构建纹理中读取每个三维对象顶点位置对应的像素颜色,并利用读取的每个三维对象顶点位置对应的像素颜色在画布窗口中渲染所述已渲染的三维对象,以完成隐藏渲染。6.根据权利要求1所述的方法,其特征在于,所述读取定位设备在隐藏渲染的三维对象上所指位置的像素颜色,包括:获取所述定位设备所指位置在屏幕坐标系下的坐标;利用所述定位设备所指位置在屏幕坐标系下的坐标读取所述定位设备在隐藏渲染的三维对象上所指位置的像素颜色。7.根据权利要求6所述的方法,其特征在于,所述获取所述定位设备所指位置在屏幕坐标系下的坐标,包括:
获取所述定位设备所指位置相对三维对象所在页面的坐标;获取渲染三...

【专利技术属性】
技术研发人员:苗锋
申请(专利权)人:北京新氧科技有限公司
类型:发明
国别省市:

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

1