CN117453095A - 一种三维对象选择方法、装置、介质和设备 - Google Patents
一种三维对象选择方法、装置、介质和设备 Download PDFInfo
- Publication number
- CN117453095A CN117453095A CN202311323617.2A CN202311323617A CN117453095A CN 117453095 A CN117453095 A CN 117453095A CN 202311323617 A CN202311323617 A CN 202311323617A CN 117453095 A CN117453095 A CN 117453095A
- Authority
- CN
- China
- Prior art keywords
- dimensional object
- target
- viewport
- dimensional
- rendering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010187 selection method Methods 0.000 title claims description 17
- 238000009877 rendering Methods 0.000 claims abstract description 129
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000001960 triggered effect Effects 0.000 claims abstract description 27
- 238000004590 computer program Methods 0.000 claims description 12
- 238000009432 framing Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 11
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000004566 building material Substances 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 210000003000 inclusion body Anatomy 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及图像处理技术领域,尤其涉及一种三维对象选择方法、装置、介质和设备。其中方法包括:根据用户在操作页面触发的第一操作指令确定目标视口;针对多个三维对象中的第一三维对象,根据目标视口对第一三维对象进行渲染,并获取第一三维对象的渲染结果;根据第一三维对象的渲染结果中位于目标视口内的像素点的数量,确定在操作页面中是否以目标对象的形式显示第一三维对象;目标对象用于表征第一操作指令选择的三维对象。通过上述方式,设置了目标视口,对三维对象进行渲染,不需要设计复杂的加速结构,既节省了显存和内存中的空间,又提高了计算的速度,在用户角度看,在极短的时间内,就可以完成选定操作,即实现了三维对象的高效选择。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种三维对象选择方法、装置、介质和设备。
背景技术
在一些三维软件的操作场景中,需要对页面中的三维对象进行处理,那么在处理之前,需要先选定要处理的对象。这个操作一般需要用户通过鼠标来完成。
在捕捉到用户的操作之后,或基于中央处理器或基于图形处理器对用户的操作内容进行计算。例如,基于中央处理器的选择法中,首先要针对每个三维对象,生成三维对象的包围体,使用射线求交的方法,判断包围体和射线是否有交点。在确定有交点之后,使用射线求交的方法,对三维对象的加速结构进行射线求交,将与射线相交的三维对象确定为选定的对象。在上述过程中,由于三维对象的结构比较复杂,基于CPU的射线求交法,计算量比较大,计算效率较低。如果要提高计算的效率,那么只能增加加速结构的数量,此时,会占用较多的存储空间。
基于此,目前亟需一种三维对象选择方法、装置、介质和设备,用于提高三维对象选择的效率。
发明内容
本申请实施例提供一种维对象选择方法、装置、介质和设备,用于提高三维对象选择的效率。
第一方面,本申请实施例提供一种对象选择方法,应用于包含三维物体的操作页面;所述三维物体具有多个三维对象,所述方法包括:
根据用户在所述操作页面触发的第一操作指令确定目标视口;
针对所述多个三维对象中的第一三维对象,根据所述目标视口对所述第一三维对象进行渲染,并获取所述第一三维对象的渲染结果;
根据所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量,确定在所述操作页面中是否以目标对象的形式显示所述第一三维对象;所述目标对象用于表征所述第一操作指令选择的三维对象。
通过上述方式,设置了目标视口,对三维对象进行渲染,不需要设计复杂的加速结构,既节省了显存和内存中的空间,又提高了计算的速度,在用户角度看,在极短的时间内,就可以完成选定操作,即实现了三维对象的高效选择。
一种可能的实现方式中,所述第一操作指令为单点指令;
根据用户在所述操作页面触发的第一操作指令确定目标视口,包括:
根据用户在所述操作页面触发的所述单点指令确定所述目标视口为像素视口;
根据所述目标视口对所述第一三维对象进行渲染,并获取所述第一三维对象的渲染结果,包括:
对所述第一三维对象与所述像素视口相交的区域进行渲染,并获取所述第一三维对象的渲染结果;
根据所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量,确定在所述操作页面中是否以目标对象的形式显示所述第一三维对象,包括:
若所述第一三维对象的渲染结果中像素点的数量大于零,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
在上述方式中,在用户的第一操作指令是单点指令时,对第一三维对象与像素视口相交的区域进行渲染。只要第一三维对象有像素点被渲染出来,就可说明第一三维对象被选中。通过这种渲染查询的方式,可以快速地选定目标对象。
一种可能的实现方式中,所述第一操作指令为多边形框选指令;
根据用户在所述操作页面触发的第一操作指令确定目标视口,包括:
根据用户在所述操作页面触发的所述多边形框选指令确定所述目标视口为多边形视口;
根据所述目标视口对所述第一三维对象进行渲染,并获取所述第一三维对象的渲染结果,包括:
对所述第一三维对象进行第一次渲染,并获取第一渲染结果;
对所述第一三维对象与所述多边形视口相交的区域进行渲染,并获取第二渲染结果;
根据所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量,确定在所述操作页面中是否以目标对象的形式显示所述第一三维对象,包括:
若所述第二渲染结果中像素点的第二数量不等于零,且所述第一渲染结果中像素点的第一数量等于所述第二数量,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
在上述方式中,对第一三维对象进行两次渲染,根据两次渲染的结果判断三维对象有没有被选中,当第一渲染结果中像素点的第一数量等于第二渲染结果中像素点的第二数量时,则说明第一三维对象被选为了目标对象。
一种可能的实现方式中,所述方法还包括:
若所述第二渲染结果中像素点的第二数量不等于零,且选择类型为非全选选中,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
在上述方式中,在第二渲染结果中像素点的第二数量不等于零时,且选择类型为非全选选中,说明第一三维物体只要有像素点被画出来,就可以说明,第一三维物体的为目标对象,此时不需要关心第一数量和第二数量的大小。
一种可能的实现方式中,所述方法还包括:
若所述第二数量等于零,则确定所述第一三维对象不为所述第一操作指令选择的目标对象并在所述操作页面中以非目标对象的形式显示。
在上述方式中,在第二渲染结果中像素点的第二数量等于零时,则说明第一三维物体没有像素被画出来,进而可以说明第一三维对象没有被选中。
一种可能的实现方式中,所述根据所述目标视口对所述第一三维对象进行渲染之前,还包括:
确定所述第一三维对象的包围体未包含在所述目标视口对应的区域中。
一种可能的实现方式中,所述方法还包括:
若所述第一三维对象的包围体包含在所述目标视口对应的区域中,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
在上述方式中,引入第一三维对象的包围体,先使用包围体与目标视口的包含关系,对第一三维对象进行初筛,可以提高计算的效率。
一种可能的实现方式中,所述第一三维对象为包围体大于设定像素阈值的三维对象。
一种可能的实现方式中,所述方法还包括:
针对所述多个三维对象中的第二三维对象,确定所述第二三维对象的包围体的几何中心;所述第二三维对象为包围体不大于所述设定像素阈值的三维对象;
若所述几何中心在所述目标视口对应的区域中,则确定所述第二三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
在上述方式中,对于包围体比较小的第二三维对象,通过几何中心的方式判断是否被选中,可以提高对第二三维对象选择的精准度。
一种可能的实现方式中,根据所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量,确定在所述操作页面中是否以目标对象的形式显示所述第一三维对象,包括:
在所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量大于零时,确定所述第一三维对象为所述第一操作指令对应的初始目标对象;
获取各初始目标对象对应的深度信息,并在所述操作页面显示各初始目标对象及各初始目标对象对应的深度信息;
基于用户在所述操作页面触发的第二操作指令,在所述操作页面中以目标对象的形式显示所述第二操作指令选择的三维对象;所述第二操作指令是用户根据深度信息从各初始目标对象中确定所述目标对象。
一种可能的实现方式中,所述获取各初始目标对象对应的深度信息,包括:
针对任一初始目标对象,获取所述初始目标对象的渲染结果中位于所述目标视口内的像素点的深度信息,作为所述初始目标对象的深度信息。
通过上述方式,用户不仅可以选择目标视口下的所有三维对象,还可以根据三维对象的深度信息确定要选择的三维对象的层级,进而实现精准选择。
第二方面,本申请实施例提供一种装置,包括:
目标视口模块,用于根据用户在所述操作页面触发的第一操作指令确定目标视口;
渲染模块,用于针对所述多个三维对象中的第一三维对象,根据所述目标视口对所述第一三维对象进行渲染,并获取所述第一三维对象的渲染结果;
确定模块,用于根据所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量,确定在所述操作页面中是否以目标对象的形式显示所述第一三维对象;所述目标对象用于表征所述第一操作指令选择的三维对象。
一种可能的实现方式中,所述第一操作指令为单点指令;
所述目标视口模块,具体用于根据用户在所述操作页面触发的所述单点指令确定所述目标视口为像素视口;
所述渲染模块,具体用于对所述第一三维对象与所述像素视口相交的区域进行渲染,并获取所述第一三维对象的渲染结果;
所述确定模块,具体用于若所述第一三维对象的渲染结果中像素点的数量大于零,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
一种可能的实现方式中,所述第一操作指令为多边形框选指令;
所述目标视口模块,具体用于根据用户在所述操作页面触发的所述多边形框选指令确定所述目标视口为多边形视口;
所述渲染模块,具体用于对所述第一三维对象进行第一次渲染,并获取第一渲染结果;对所述第一三维对象与所述多边形视口相交的区域进行渲染,并获取第二渲染结果;
所述确定模块,具体用于若所述第二渲染结果中像素点的第二数量不等于零,且所述第一渲染结果中像素点的第一数量等于所述第二数量,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
一种可能的实现方式中,所述确定模块,还用于若所述第二渲染结果中像素点的第二数量不等于零,且选择类型为非全选选中,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
一种可能的实现方式中,所述确定模块,还用于若所述第二数量等于零,则确定所述第一三维对象不为所述第一操作指令选择的目标对象并在所述操作页面中以非目标对象的形式显示。
一种可能的实现方式中,所述确定模块,还用于在所述根据所述目标视口对所述第一三维对象进行渲染之前,确定所述第一三维对象的包围体未包含在所述目标视口对应的区域中。
一种可能的实现方式中,所述确定模块,还用于若所述第一三维对象的包围体包含在所述目标视口对应的区域中,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
一种可能的实现方式中,所述第一三维对象为包围体大于设定像素阈值的三维对象。
一种可能的实现方式中,所述确定模块,还用于针对所述多个三维对象中的第二三维对象,确定所述第二三维对象的包围体的几何中心;所述第二三维对象为包围体不大于所述设定像素阈值的三维对象;
若所述几何中心在所述目标视口对应的区域中,则确定所述第二三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
一种可能的实现方式中,所述确定模块,还用于在所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量大于零时,确定所述第一三维对象为所述第一操作指令对应的初始目标对象;获取各初始目标对象对应的深度信息,并在所述操作页面显示各初始目标对象及各初始目标对象对应的深度信息;基于用户在所述操作页面触发的第二操作指令,在所述操作页面中以目标对象的形式显示所述第二操作指令选择的三维对象;所述第二操作指令是用户根据深度信息从各初始目标对象中确定所述目标对象。
一种可能的实现方式中,所述确定模块,还用于针对任一初始目标对象,获取所述初始目标对象的渲染结果中位于所述目标视口内的像素点的深度信息,作为所述初始目标对象的深度信息。
第三方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序被运行时,执行上述第一方面中任一项方法。
第四方面,本申请实施例提供一种计算设备,包括:存储器,用于存储程序指令;处理器,用于调用存储器中存储的程序指令,按照获得的程序执行上述第一方面中任一项设计中的方法。
第五方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在处理器上运行时,实现如上述第一方面中任一项设计中的方法。
上述第二方面至第五方面的有益效果,具体可参照上述第一方面任一项设计可达到的有益效果,此处不再赘述。
附图说明
图1示例性示出本申请实施例提供的一种应用场景示意图;
图2示例性示出本申请实施例提供的一种基于CPU的选择法示意图;
图3示例性示出本申请实施例提供的另一种基于GPU的选择法示意图;
图4示例性示出本申请实施例提供的又一种三维对象选择方法的示意图;
图5示例性示出本申请实施例提供的再一种三维对象的选择方法示意图;
图6示例性示出本申请实施例提供的一种像素视口的示意图;
图7示例性示出本申请实施例提供的;一种三维对象的选择方法的流程示意图;
图8示例性示出本申请实施例提供的一种多边形视口的示意图;
图9示例性地示出本申请实施例提供的一种网络地址转换装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性示出本申请实施例提供的一种应用场景示意图,如图1所示,场景中包含两个三维对象,这两个三维对象有空间上的关系。在用户的角度观察,圆柱体位于长方体的上面。在一些应用场景中,需要对这些三维对象进行处理,那么在处理之前,需要先选定要处理的对象。这个操作一般需要用户通过鼠标来完成。以用户的单点操作为例,有如下处理方式:
方式一:基于中央处理器(central processing unit,CPU)的选择法。图2示例性示出本申请实施例提供的一种基于CPU的选择法,如图2所示,该方法包括:
步骤201,针对每个三维对象,生成三维对象的包围体。包围体是包围在三维对象外部的立体结构,这个立体结构在空间中的体积一般大于三维对象本身,可以将全部的三维对象包围进去。
步骤202,使用射线求交的方法,判断包围体和射线是否有交点。若有交点,则执行步骤205,若无交点,则执行步骤203。
步骤203,使用射线求交的方法,对三维对象的加速结构进行射线求交;
步骤204,将三维对象的标识和所有的交点放置在数组中,并按照交点与相机的距离对数组进行排序,去除重复的三维对象。
步骤205,将与射线相交的三维对象确定为选定的对象。
在上述过程中,由于三维对象的结构比较复杂,基于CPU的射线求交法,计算量比较大,计算效率较低。如果要提高计算的效率,那么只能增加加速结构的数量,此时,会占用较多的存储空间。
方式二:基于图形处理器(graphics processing unit,GPU)的选择法。图3示例性示出本申请实施例提供的一种基于GPU的选择法,如图3所示,该方法包括如下步骤:
步骤301,设置各个三维对象的渲染目标为标识地图;
步骤302,根据渲染目标渲染各个三维对象,获取每个三维对象的标识地图;
步骤303,在标识地图上,确定鼠标光标所在位置的目标标识;
步骤304,根据目标标识确定选定的对象。在此过程中需要将标识地图从显存中存储到内存中。
基于CPU的选择法,算法实现比较简单,直接使用模型渲染用的数据,无需使用额外的加速结构,可以节省内存。但是该方案仅支持单层标识,不能处理同一像素下多个对象叠加的情况。并且在高分辨率(如4K)的场景中,缓存的回读操作非常缓慢,可能导致明显的性能下降。在需要进行区域选择或任意形状选择的极端情况下(例如全屏选择),性能表现不佳,因为需要读取大量像素。
基于此,本申请实施例提供一种三维对象的选择方法,用于提高三维对象选择的效率,同时实现起来比较简单,并且不会占用过多的内存。
图4示例性示出本申请实施例提供的一种三维对象选择方法的示意图,如图4所示,所述方法应用包含三维物体的操作页面;所述三维物体具有多个三维对象,该方法包括如下步骤:
步骤401,根据用户在操作页面触发的第一操作指令确定目标视口。第一操作指令是用户触发的,例如,用户点击一下页面,或用户在页面中画一个框,或者画一个多边形等。用户在熟悉操作页面的情形下,可以预设自己的第一操作指令会产生什么样的选择效果,这就要求程序按照用户的预设,展示给用户特定的效果。目标视口是由一个或多个像素点大小的视口,通过目标视口可以实现只关心目标视口中的像素。
步骤402,针对多个三维对象中的第一三维对象,根据目标视口对第一三维对象进行渲染,并获取第一三维对象的渲染结果。
不同的目标视口对三维对象的渲染过程也是不同的,得到的渲染结果也不同,因此基于渲染结果可以确定一个三维对象是否显示。
步骤403,根据第一三维对象的渲染结果中位于目标视口内的像素点的数量,确定在操作页面中是否以目标对象的形式显示第一三维对象;目标对象用于表征第一操作指令选择的三维对象。
在渲染过程中,一个像素被渲染的内容有很多,针对于任一第一三维对象,只关心位于目标视口中的像素的个数,根据像素点的个数可以确定是否显示第一三维对象。
通过上述方式,设置了目标视口,对三维对象进行渲染,仅仅需要针对于目标视口,不需要设计复杂的加速结构,既节省了显存和内存中的空间,又提高了计算的速度,在用户角度看,在极短的时间内,就可以完成选定操作,进而实现了三维对象的高效选择。
下面结合不同的第一操作指令,对上述过程进行说明:
第一操作指令:单点指令。
图5示例性示出本申请实施例提供的一种三维对象的选择方法的示意图,如图5所示,该方法包括:
步骤501,根据用户在操作页面触发的单点指令确定目标视口为像素视口;图6示例性示出本申请实施例提供的一种像素视口的示意图,如图6所示,像素视口是一种比较小的目标视口,大小可以为1*1像素或者3*3像素,像素视口的大小可以作为参数,根据用户的设置确定。
步骤502,对第一三维对象与像素视口相交的区域进行渲染,并获取第一三维对象的渲染结果。如图6所示,即对图中3*3像素的区域进行渲染,对圆柱体和长方体都会进行渲染。
步骤503,若第一三维对象的渲染结果中像素点的数量大于零,则确定第一三维对象为第一操作指令选择的目标对象并在操作页面中以目标对象的形式显示。
下面结合像素视口不同的位置,说明如何进行渲染,以及如何确定目标对象。
位置一:圆柱体渲染出的像素个数为9,长方体渲染出的像素个数为9,那么圆柱体和长方体均为目标对象。
位置二:圆柱体渲染出的像素个数为0,长方体渲染出的像素个数为9,那么长方体为目标对象。
位置三:圆柱体渲染出的像素个数为0,长方体渲染出的像素个数为3,那么长方体为目标对象。
第一操作指令:多边形框选指令。
图7示例性示出本申请实施例提供的一种三维对象的选择方法的流程示意图,如图7所示,该方法包括:
步骤701,根据用户在操作页面触发的多边形框选指令确定目标视口为多边形视口;图8示例性示出本申请实施例提供的一种多边形视口的示意图,如图8所示,多边形视口可以是长方形视口,大小可以为300*400像素,根据用户在操作页面上拖动鼠标的距离确定。
需要说明的是,在多边形视口不是长方形视口时,可以根据多边形的顶点,设置视口建材面,并渲染多边形至模板缓冲生成模板遮罩,在渲染时仅仅渲染模板遮罩下的像素点。
步骤702,对第一三维对象进行第一次渲染,并获取第一渲染结果;第一次渲染是对第一三维对象面向用户的整个面进行渲染,第一渲染结果中的像素点的数量是面向用户的整个面的像素点的数量。
步骤703,对第一三维对象与多边形视口相交的区域进行渲染,并获取第二渲染结果。
第二次渲染仅仅是对于多变形相交的区域进行渲染,具体实现尝试可以参照上述的步骤503中多个位置的渲染方式。
步骤704,判断第二渲染结果中像素点的第二数量是否等于零,如果是,则执行步骤708,如果否,则执行步骤705;第二数量等于零,说明三维对象没有像素点被渲染出来,那么这个第一三维对象就不可能被选中。
步骤705,判断第一渲染结果中像素点的第一数量等于第二数量,如果是则执行步骤708,如果否,则执行步骤706;如果第一数量等于第二数量,则说明多边形视口所在的区域可以完全包含第一三维对象,那么说明选择类型无论是全选选中还是非全选选中,那么这个第一三维对象一定会被选中。
若选择类型为全选选中,则说明第一三维对象必须全部包含在多边形的区域中,这个第一三维对象才可以被选中;若选择类型为非全选选中,则说明第一三维对象只须部分在多边形的区域中,这个第一三维对象就可以被选中。
对应用户的操作,例如,用户按住鼠标左键从左向右拖动,则说明选择类型为全选选中;用户按住鼠标左键从右向左拖动,则说明选择类型为非全选选中。
步骤706,判断选择类型是否为非全选选中,若是,则执行步骤707,若否则执行步骤708。
步骤707,确定第一三维对象为第一操作指令选择的目标对象并在操作页面中以目标对象的形式显示。
步骤708,确定第一三维对象不为第一操作指令选择的目标对象并在操作页面中以非目标对象的形式显示。
一种可能的实现方式,在图5和图7所示的实施例中,第一三维对象为包围体大于设定像素阈值的三维对象。这是由于三维对象如果像素值过小,使用上述图5和图7所示的方法进行选择,可能会导致选定不精确。
因此,针对于包围体不大于所述设定像素阈值的第二三维对象,可以通过如下方式确定是否为目标对象:
首先,确定第二三维对象的包围体的几何中心;如果几何中心在目标视口对应的区域中,则确定第二三维对象为第一操作指令选择的目标对象并在操作页面中以目标对象的形式显示。
上述过程中可以使用CPU进行计算,由于第二三维对象的像素点数量较少,因此,运算速度比较快。
一种可能的实现方式中,在第一三维对象的渲染结果中位于目标视口内的像素点的数量大于零时,可以确定第一三维对象为第一操作指令对应的初始目标对象;初始目标对象即还没有最终被选定,但是已经初步被选择出来。
获取各初始目标对象对应的深度信息,并在操作页面显示各初始目标对象及各初始目标对象对应的深度信息。
示例性的,针对任一初始目标对象,可以获取所述初始目标对象的渲染结果中位于所述目标视口内的像素点的深度信息,作为所述初始目标对象的深度信息。例如,可以将所有像素的深度值的平均值确定为第一三维对象的深度信息,或者将位于目标视口中间的像素深度值确定为第一三维对象的深度信息。
基于用户在操作页面触发的第二操作指令,在操作页面中以目标对象的形式显示第二操作指令选择的三维对象;第二操作指令是用户根据深度信息从各初始目标对象中确定目标对象。
在用户的操作页面,初始目标对象可以列表的形式存在,并包含与每一个初始目标对象对应的深度信息,用户可以根据这些深度信息,确定要选择的目标对象,实现单层或者多层的目标对象选择。
需要说明的是,如果不需要深度信息,即选定目标视口下所有的对象,可以调用glClear函数,用于在渲染过程中清除深度信息。此外,可以使用glBeginQuer()函数标识渲染的开始,使用glEndQuery()标识渲染的结束,GPU在执行上述渲染时,仅仅渲染位于glBeginQuer()函数和glEndQuery()函数之间的三维对象,目标视口通过glViewport()实现,可以作为渲染参数,参与渲染过程。
基于相同的技术构思,本申请实施例还提供了一种三维对象选择装置。图9示例性地示出本申请实施例提供的一种三维对象选择装置示意图,该装置可以执行前述的三维对象选择方法,如图9所示,应用于包含三维物体的操作页面;所述三维物体具有多个三维对象,该装置包括:
目标视口模块,用于根据用户在所述操作页面触发的第一操作指令确定目标视口;
渲染模块,用于针对所述多个三维对象中的第一三维对象,根据所述目标视口对所述第一三维对象进行渲染,并获取所述第一三维对象的渲染结果;
确定模块,用于根据所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量,确定在所述操作页面中是否以目标对象的形式显示所述第一三维对象;所述目标对象用于表征所述第一操作指令选择的三维对象。
一种可能的实现方式中,所述第一操作指令为单点指令;
所述目标视口模块,具体用于根据用户在所述操作页面触发的所述单点指令确定所述目标视口为像素视口;
所述渲染模块,具体用于对所述第一三维对象与所述像素视口相交的区域进行渲染,并获取所述第一三维对象的渲染结果;
所述确定模块,具体用于若所述第一三维对象的渲染结果中像素点的数量大于零,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
一种可能的实现方式中,所述第一操作指令为多边形框选指令;
所述目标视口模块,具体用于根据用户在所述操作页面触发的所述多边形框选指令确定所述目标视口为多边形视口;
所述渲染模块,具体用于对所述第一三维对象进行第一次渲染,并获取第一渲染结果;对所述第一三维对象与所述多边形视口相交的区域进行渲染,并获取第二渲染结果;
所述确定模块,具体用于若所述第二渲染结果中像素点的第二数量不等于零,且所述第一渲染结果中像素点的第一数量等于所述第二数量,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
一种可能的实现方式中,所述确定模块,还用于若所述第二渲染结果中像素点的第二数量不等于零,且选择类型为非全选选中,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
一种可能的实现方式中,所述确定模块,还用于若所述第二数量等于零,则确定所述第一三维对象不为所述第一操作指令选择的目标对象并在所述操作页面中以非目标对象的形式显示。
一种可能的实现方式中,所述确定模块,还用于在所述根据所述目标视口对所述第一三维对象进行渲染之前,确定所述第一三维对象的包围体未包含在所述目标视口对应的区域中。
一种可能的实现方式中,所述确定模块,还用于若所述第一三维对象的包围体包含在所述目标视口对应的区域中,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
一种可能的实现方式中,所述第一三维对象为包围体大于设定像素阈值的三维对象。
一种可能的实现方式中,所述确定模块,还用于针对所述多个三维对象中的第二三维对象,确定所述第二三维对象的包围体的几何中心;所述第二三维对象为包围体不大于所述设定像素阈值的三维对象;
若所述几何中心在所述目标视口对应的区域中,则确定所述第二三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
一种可能的实现方式中,所述确定模块,还用于在所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量大于零时,确定所述第一三维对象为所述第一操作指令对应的初始目标对象;获取各初始目标对象对应的深度信息,并在所述操作页面显示各初始目标对象及各初始目标对象对应的深度信息;基于用户在所述操作页面触发的第二操作指令,在所述操作页面中以目标对象的形式显示所述第二操作指令选择的三维对象;所述第二操作指令是用户根据深度信息从各初始目标对象中确定所述目标对象。
一种可能的实现方式中,所述确定模块,还用于针对任一初始目标对象,获取所述初始目标对象的渲染结果中位于所述目标视口内的像素点的深度信息,作为所述初始目标对象的深度信息。
基于相同的技术构思,本发明实施例还提供了一种计算机程序产品,当所述计算机程序产品在处理器上运行时,实现上述实施例中所示的方法。
基于相同的技术构思,本发明实施例还提供了一种计算设备,包括:存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述实施例中所示的方法。
基于相同的技术构思,本发明实施例还提供了一种计算机可读存储介质,当所述计算机程序产品在处理器上运行时,实现上述实施例中所示的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种三维对象选择方法,其特征在于,应用于包含三维物体的操作页面;所述三维物体具有多个三维对象,所述方法包括:
根据用户在所述操作页面触发的第一操作指令确定目标视口;
针对所述多个三维对象中的第一三维对象,根据所述目标视口对所述第一三维对象进行渲染,并获取所述第一三维对象的渲染结果;
根据所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量,确定在所述操作页面中是否以目标对象的形式显示所述第一三维对象;所述目标对象用于表征所述第一操作指令选择的三维对象。
2.如权利要求1所述的方法,其特征在于,所述第一操作指令为单点指令;
根据用户在所述操作页面触发的第一操作指令确定目标视口,包括:
根据用户在所述操作页面触发的所述单点指令确定所述目标视口为像素视口;
根据所述目标视口对所述第一三维对象进行渲染,并获取所述第一三维对象的渲染结果,包括:
对所述第一三维对象与所述像素视口相交的区域进行渲染,并获取所述第一三维对象的渲染结果;
根据所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量,确定在所述操作页面中是否以目标对象的形式显示所述第一三维对象,包括:
若所述第一三维对象的渲染结果中像素点的数量大于零,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
3.如权利要求1所述的方法,其特征在于,所述第一操作指令为多边形框选指令;
根据用户在所述操作页面触发的第一操作指令确定目标视口,包括:
根据用户在所述操作页面触发的所述多边形框选指令确定所述目标视口为多边形视口;
根据所述目标视口对所述第一三维对象进行渲染,并获取所述第一三维对象的渲染结果,包括:
对所述第一三维对象进行第一次渲染,并获取第一渲染结果;
对所述第一三维对象与所述多边形视口相交的区域进行渲染,并获取第二渲染结果;
根据所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量,确定在所述操作页面中是否以目标对象的形式显示所述第一三维对象,包括:
若所述第二渲染结果中像素点的第二数量不等于零,且所述第一渲染结果中像素点的第一数量等于所述第二数量,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
若所述第二渲染结果中像素点的第二数量不等于零,且选择类型为非全选选中,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
5.如权利要求3所述的方法,其特征在于,所述方法还包括:
若所述第二数量等于零,则确定所述第一三维对象不为所述第一操作指令选择的目标对象并在所述操作页面中以非目标对象的形式显示。
6.如权利要求1至5任一项所述的方法,其特征在于,所述根据所述目标视口对所述第一三维对象进行渲染之前,还包括:
确定所述第一三维对象的包围体未包含在所述目标视口对应的区域中。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
若所述第一三维对象的包围体包含在所述目标视口对应的区域中,则确定所述第一三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
8.如权利要求1至5任一项所述的方法,其特征在于,所述第一三维对象为包围体大于设定像素阈值的三维对象。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
针对所述多个三维对象中的第二三维对象,确定所述第二三维对象的包围体的几何中心;所述第二三维对象为包围体不大于所述设定像素阈值的三维对象;
若所述几何中心在所述目标视口对应的区域中,则确定所述第二三维对象为所述第一操作指令选择的目标对象并在所述操作页面中以目标对象的形式显示。
10.如权利要求1至5任一项所述的方法,其特征在于,根据所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量,确定在所述操作页面中是否以目标对象的形式显示所述第一三维对象,包括:
在所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量大于零时,确定所述第一三维对象为所述第一操作指令对应的初始目标对象;
获取各初始目标对象对应的深度信息,并在所述操作页面显示各初始目标对象及各初始目标对象对应的深度信息;
基于用户在所述操作页面触发的第二操作指令,在所述操作页面中以目标对象的形式显示所述第二操作指令选择的三维对象;所述第二操作指令是用户根据深度信息从各初始目标对象中确定所述目标对象。
11.如权利要求10所述的方法,其特征在于,所述获取各初始目标对象对应的深度信息,包括:
针对任一初始目标对象,获取所述初始目标对象的渲染结果中位于所述目标视口内的像素点的深度信息,作为所述初始目标对象的深度信息。
12.一种三维对象选择装置,其特征在于,应用于包含三维物体的操作页面;所述三维物体具有多个三维对象,该装置包括:
目标视口模块,用于根据用户在所述操作页面触发的第一操作指令确定目标视口;
渲染模块,用于针对所述多个三维对象中的第一三维对象,根据所述目标视口对所述第一三维对象进行渲染,并获取所述第一三维对象的渲染结果;
确定模块,用于根据所述第一三维对象的渲染结果中位于所述目标视口内的像素点的数量,确定在所述操作页面中是否以目标对象的形式显示所述第一三维对象;所述目标对象用于表征所述第一操作指令选择的三维对象。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被运行时,执行如权利要求1至11中任一项所述的方法。
14.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求1至11中任一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311323617.2A CN117453095A (zh) | 2023-10-12 | 2023-10-12 | 一种三维对象选择方法、装置、介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311323617.2A CN117453095A (zh) | 2023-10-12 | 2023-10-12 | 一种三维对象选择方法、装置、介质和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117453095A true CN117453095A (zh) | 2024-01-26 |
Family
ID=89588282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311323617.2A Pending CN117453095A (zh) | 2023-10-12 | 2023-10-12 | 一种三维对象选择方法、装置、介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117453095A (zh) |
-
2023
- 2023-10-12 CN CN202311323617.2A patent/CN117453095A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
KR101349171B1 (ko) | 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법 | |
EP1665165B1 (en) | Pixel processing system and method | |
CN111815755A (zh) | 虚拟物体被遮挡的区域确定方法、装置及终端设备 | |
KR101267120B1 (ko) | 성능 분석 동안 관련된 그래픽스 데이터에 대한 그래픽스 명령들의 매핑 | |
US9218686B2 (en) | Image processing device | |
CN108122266B (zh) | 一种缓存骨骼动画渲染纹理的方法、装置和存储介质 | |
US10789761B2 (en) | Method and device for processing spatial data | |
KR20080097354A (ko) | 텍스쳐 상세 레벨을 산출하기 위한 장치 및 방법 | |
KR102659643B1 (ko) | 레지던시 맵 디스크립터 | |
US7825928B2 (en) | Image processing device and image processing method for rendering three-dimensional objects | |
WO2002007089A2 (en) | Apparatus and method for volume rendering | |
CN111754381A (zh) | 图形渲染方法、装置和计算机可读存储介质 | |
JPH11259671A (ja) | 画像表示方法及びそれを実行する画像表示装置 | |
CN114742931A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
JP2017062789A (ja) | グラフィックス処理装置、及びテクスチャリングのためのlodを決定する方法 | |
CN111583398A (zh) | 图像显示的方法、装置、电子设备及计算机可读存储介质 | |
JP6947939B2 (ja) | 画像生成装置、画像生成方法及びプログラム | |
CN117237502A (zh) | 一种三维渲染方法、装置、设备及介质 | |
CN116385253B (zh) | 图元绘制方法、装置、计算机设备和存储介质 | |
CN116630516A (zh) | 一种基于3d特性的2d渲染排序方法、装置、设备及介质 | |
CN110738719A (zh) | 一种基于视距分层优化的Web3D模型渲染方法 | |
CN117453095A (zh) | 一种三维对象选择方法、装置、介质和设备 | |
US7525551B1 (en) | Anisotropic texture prefiltering | |
CN116109767A (zh) | 三维场景的渲染方法、图像处理器、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |