CN112184870B - 用于三维图形软件的三维物体拾取方法 - Google Patents

用于三维图形软件的三维物体拾取方法 Download PDF

Info

Publication number
CN112184870B
CN112184870B CN202011092601.1A CN202011092601A CN112184870B CN 112184870 B CN112184870 B CN 112184870B CN 202011092601 A CN202011092601 A CN 202011092601A CN 112184870 B CN112184870 B CN 112184870B
Authority
CN
China
Prior art keywords
dimensional
dimensional object
screen
color value
rgb color
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.)
Active
Application number
CN202011092601.1A
Other languages
English (en)
Other versions
CN112184870A (zh
Inventor
魏静
刘镇
胡稼鑫
彭真
张军
邓廷
胡佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Zhixin Yili Technology Co ltd
Original Assignee
Chengdu Zhixin Yili Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Zhixin Yili Technology Co ltd filed Critical Chengdu Zhixin Yili Technology Co ltd
Priority to CN202011092601.1A priority Critical patent/CN112184870B/zh
Publication of CN112184870A publication Critical patent/CN112184870A/zh
Application granted granted Critical
Publication of CN112184870B publication Critical patent/CN112184870B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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/04845Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts

Abstract

本发明公开了一种用于三维图形软件的三维物体拾取方法,涉及图形处理技术领域,该方法在GPU加载三维物体时,同时通过正交投影映射和图元色值清单,利用CPU的空闲能力同步进行离屏渲染,在需要利用鼠标拾取三维物体时,根据标点击获取到的实际屏幕中的坐标、坐标映射关系以及图元色值清单确定出当前拾取的三维物体。本发明将三维显示无损转换为二维平面图像显示,可契合鼠标事件,解决现有技术中可能出现鼠标定位不准或无法定位的问题;同时由于离屏渲染技术在三维物体加载时并同时完成,降低了重绘式拾取算法对对硬件的限制,可用于大三维场景的使用。

Description

用于三维图形软件的三维物体拾取方法
技术领域
本发明涉及图形处理技术领域,具体而言,涉及一种用于三维图形软件的三维物体拾取方法。
背景技术
随着三维技术的快速发展和各行业对三维可视化技术要求的不断增加,对三维可视化技术提出了更高的要求,已不仅限于是实现简单的三维可视能力,而是需要用户与三维虚拟环境进行人机交互,并能实现优秀的用户体验。
三维环境中的目标定位和拾取是三维交互技术中最为重要的一部分,三维环境中目标拾取的速度和准确度不高一直是存在主要问题。
目前三维拾取技术和算法研究已有成型的体系,最主要的算法有两种:
一类是基于三维空间的射线拾取算法,代表算法就是射线求交拾取技术,其基本思路为通过鼠标在屏幕上的点击位置,利用变换矩阵换算成拾取射线,计算该拾取射线与任意3D物体中的任意三角形是否相交,从而实现对三维物体的选取;
另一类是基于图像空间的拾取算法,如基于GPU的重绘式拾取技术,是在OpenGL绘图模式下,通过两次绘图来拾取并显示物体。
两种常用算法的优劣特点如下:
1)射线拾取算法在拾取对象为点或者是简单的物体时效率很高。但由于算法首先假设所有的图形变换矩阵必须时可逆的,在实际环境中,并不是所有的图形变换矩阵都是可逆的,于是造成在一些特殊情况下无法拾取到物体;而当拾取对象为复杂的物体时,判断物体是否在所选择体内部的算法及其复杂,使整个运算过程资源开销过大,对系统的实现带来很大难度。
2)重绘式拾取法算法简单,但由于堆栈容量的限制,造成这种算法不能处理大场景中的拾取。
发明内容
本发明在于提供一种用于三维图形软件的三维物体拾取方法,其能够缓解上述问题。
为了缓解上述的问题,本发明采取的技术方案如下:
一种用于三维图形软件的三维物体拾取方法,包括:
1)在GPU加载三维物体时,同步进行离屏渲染,具体为:
将实际屏幕中的各三维物体进行正交投影映射为二维图形;
为各三维物体对应赋予不同的RGB色值,对于每一三维物体,利用其对应赋予的RGB色值颜色填充其映射的二维图形;
根据三维物体的属性,以及三维物体对应的RGB色值生成图元色值清单;
新建与实际屏幕存在坐标映射关系的虚拟屏幕,将各填充有颜色的二维图形在所述虚拟屏幕按照坐标进行渲染;
2)在需要利用鼠标拾取三维物体时,根据鼠标点击获取到的实际屏幕中的坐标、所述坐标映射关系以及所述图元色值清单确定出当前拾取的三维物体。
进一步地,对于每一三维物体,其映射的二维图形,与其在所述实际屏幕中的视觉图像一致。
进一步地,所述三维物体的正交投影映射方法具体为:以三维物体在实际屏幕展现的正向为基准方向,在与该基准方向垂直的二维投影面进行投影,并得到所述二维图形,所述二维投影面与所述实际屏幕大小相同。
进一步地,在需要拾取三维物体时,具体操作方法为:利用鼠标点击的方式获取实际屏幕中的坐标,根据该实际屏幕中的坐标,以及所述坐标映射关系获取虚拟屏幕中的坐标,之后获取该虚拟屏幕中的坐标位置的RGB色值,并根据该坐标位置的RGB色值在所述图元色值清单中匹配得到对应三维物体的属性,继而确定出当前拾取的三维物体。
进一步地,每当一所述二维图形填充了对应的RGB色值颜色后,就将该二维图形加入投影堆栈中;在生成所述图元色值清单的过程中,按照二维图形加入所述投影堆栈的顺序,封装该二维图形对应的RGB色值和三维物体的属性至图元色值清单列表,构成RGB色值与三维对象的关联矩阵。
进一步地,在二维图形的渲染过程中,按照先入先出的方式,从所述投影堆栈中取出二维图形进行渲染。
进一步地,当各二维图形在所述虚拟屏幕存在重合区域时,则该重合区域由最后渲染的二维图形覆盖。
进一步地,所述虚拟屏幕为与所述实际屏幕大小相同,且不在人体视觉范围内出现的参考屏幕。
进一步地,所述虚拟屏幕的底色透明。
与现有技术相比,本发明的有益效果是:将三维显示无损转换为二维平面图像显示,可契合鼠标事件,解决现有技术中可能出现鼠标定位不准或无法定位的问题;同时由于离屏渲染技术在三维物体加载时并同时完成,降低了重绘式拾取算法对对硬件的限制,可用于大三维场景的使用。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举本发明实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例三维物体拾取方法的流程图;
图2是本发明实施例实际屏幕、图元色值清单以及虚拟屏幕之间的关系示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,本发明实施例一种用于三维图形软件的三维物体拾取方法,具体如下:
一、在GPU加载三维物体时,同步进行离屏渲染,具体为:
1)将实际屏幕中的各三维物体进行正交投影映射为二维图形。
其中,正交投影的原理如下:
正交投影是指像空间U和零空间W相互正交子空间的投影。也就是说,任意u∈U,w∈W,它们的内积(u|w)都等于0。正交投影的最简单的情况是到(过原点)直线上的正交投影。如果u是这条直线的单位方向向量,则投影给出为:Pu=uu*
在本实施例中,三维物体的正交投影映射方法具体为:以三维物体在实际屏幕展现的正向为基准方向,在与该基准方向垂直的二维投影面进行投影,并得到二维图形,二维投影面与实际屏幕大小相同。对于每一三维物体,其映射的二维图形,与其在实际屏幕中的视觉图像一致。
2)为各三维物体对应赋予不同的RGB色值,对于每一三维物体,利用其对应赋予的RGB色值颜色填充其映射的二维图形。
在本实施例中,每当一二维图形填充了对应的RGB色值颜色后,就将该二维图形加入投影堆栈中。
3)根据三维物体的属性,以及三维物体对应的RGB色值生成图元色值清单。
在本实施例中,在生成图元色值清单的过程中,按照二维图形加入投影堆栈的顺序,封装该二维图形对应的RGB色值和三维物体的属性至图元色值清单列表,构成RGB色值与三维对象的关联矩阵,形成图元色值清单。
4)新建与实际屏幕存在坐标映射关系的虚拟屏幕,将各填充有颜色的二维图形在虚拟屏幕按照坐标进行渲染。
在本实施例中,虚拟屏幕是在实际屏幕范围外新建的区域,其大小与实际屏幕相同,且将底色设置为透明。
在本实施例中,在二维图形的渲染过程中,按照先入先出的方式,从投影堆栈中取出二维图形进行渲染。
在本实施例中,当各二维图形在虚拟屏幕存在重合区域时,则该重合区域由最后渲染的二维图形覆盖。
在本实施例中,当投影堆栈中的所有二维图形渲染完成后,离屏虚拟屏幕完成,该屏幕不在人体视觉范围内出现,而是作为实际屏幕的参考存在。
如图2所示,其中示出了实际屏幕、图元色值清单以及虚拟屏幕之间的关系示意图,图中的三维场景指代的实际屏幕,颜色清单即图元色值清单,离屏渲染屏幕即虚拟屏幕。
二、拾取三维物体
在需要利用鼠标拾取三维物体,且鼠标点击事件完成时,获取到鼠标在实际屏幕中的坐标位置。由于实际屏幕与离屏虚拟屏幕存在坐标映射关系,因此,鼠标的实际点击坐标也是在离屏虚拟屏幕中的坐标;
之后获取该虚拟屏幕中的坐标位置的RGB色值,并根据该RGB色值在图元色值清单中匹配得到对应三维物体的属性,从而确定三维物体,完成三维物体的拾取。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种用于三维图形软件的三维物体拾取方法,其特征在于,包括:
1)在GPU加载三维物体时,同步进行离屏渲染,具体为:
将实际屏幕中的各三维物体进行正交投影映射为二维图形;
为各三维物体对应赋予不同的RGB色值,对于每一三维物体,利用其对应赋予的RGB色值颜色填充其映射的二维图形;
根据三维物体的属性,以及三维物体对应的RGB色值生成图元色值清单;
新建与实际屏幕存在坐标映射关系的虚拟屏幕,将各填充有颜色的二维图形在所述虚拟屏幕按照坐标进行渲染;
2)在需要利用鼠标拾取三维物体时,根据鼠标点击获取到的实际屏幕中的坐标、所述坐标映射关系以及所述图元色值清单确定出当前拾取的三维物体。
2.根据权利要求1所述用于三维图形软件的三维物体拾取方法,其特征在于,对于每一三维物体,其映射的二维图形,与其在所述实际屏幕中的视觉图像一致。
3.根据权利要求2所述用于三维图形软件的三维物体拾取方法,其特征在于,所述三维物体的正交投影映射方法具体为:以三维物体在实际屏幕展现的正向为基准方向,在与该基准方向垂直的二维投影面进行投影,并得到所述二维图形,所述二维投影面与所述实际屏幕大小相同。
4.根据权利要求1所述用于三维图形软件的三维物体拾取方法,其特征在于,在需要拾取三维物体时,具体操作方法为:利用鼠标点击的方式获取实际屏幕中的坐标,根据该实际屏幕中的坐标,以及所述坐标映射关系获取虚拟屏幕中的坐标,之后获取该虚拟屏幕中的坐标位置的RGB色值,并根据该坐标位置的RGB色值在所述图元色值清单中匹配得到对应三维物体的属性,继而确定出当前拾取的三维物体。
5.根据权利要求4所述用于三维图形软件的三维物体拾取方法,其特征在于,每当一所述二维图形填充了对应的RGB色值颜色后,就将该二维图形加入投影堆栈中;在生成所述图元色值清单的过程中,按照二维图形加入所述投影堆栈的顺序,封装该二维图形对应的RGB色值和三维物体的属性至图元色值清单列表,构成RGB色值与三维对象的关联矩阵。
6.根据权利要求5所述用于三维图形软件的三维物体拾取方法,其特征在于,在二维图形的渲染过程中,按照先入先出的方式,从所述投影堆栈中取出二维图形进行渲染。
7.根据权利要求6所述用于三维图形软件的三维物体拾取方法,其特征在于,当各二维图形在所述虚拟屏幕存在重合区域时,则该重合区域由最后渲染的二维图形覆盖。
8.根据权利要求1所述用于三维图形软件的三维物体拾取方法,其特征在于,所述虚拟屏幕为与所述实际屏幕大小相同,且不在人体视觉范围内出现的参考屏幕。
9.根据权利要求1所述用于三维图形软件的三维物体拾取方法,其特征在于,所述虚拟屏幕的底色透明。
CN202011092601.1A 2020-10-13 2020-10-13 用于三维图形软件的三维物体拾取方法 Active CN112184870B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011092601.1A CN112184870B (zh) 2020-10-13 2020-10-13 用于三维图形软件的三维物体拾取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011092601.1A CN112184870B (zh) 2020-10-13 2020-10-13 用于三维图形软件的三维物体拾取方法

Publications (2)

Publication Number Publication Date
CN112184870A CN112184870A (zh) 2021-01-05
CN112184870B true CN112184870B (zh) 2023-11-03

Family

ID=73949640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011092601.1A Active CN112184870B (zh) 2020-10-13 2020-10-13 用于三维图形软件的三维物体拾取方法

Country Status (1)

Country Link
CN (1) CN112184870B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542611A (zh) * 2010-12-27 2012-07-04 新奥特(北京)视频技术有限公司 一种三维空间物体拾取方法
CN103473814A (zh) * 2013-09-23 2013-12-25 电子科技大学中山学院 一种基于gpu的三维几何图元拾取方法
CN106934845A (zh) * 2015-12-29 2017-07-07 龙芯中科技术有限公司 对象拾取方法及装置
CN108037870A (zh) * 2017-11-03 2018-05-15 福建天晴数码有限公司 一种基于触摸屏的三维场景物体拾取的方法及终端
CN111192641A (zh) * 2019-12-20 2020-05-22 深圳晶泰科技有限公司 一种用于复杂web 3D场景下用户交互的系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4100195B2 (ja) * 2003-02-26 2008-06-11 ソニー株式会社 3次元オブジェクトの表示処理装置、表示処理方法、およびコンピュータプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542611A (zh) * 2010-12-27 2012-07-04 新奥特(北京)视频技术有限公司 一种三维空间物体拾取方法
CN103473814A (zh) * 2013-09-23 2013-12-25 电子科技大学中山学院 一种基于gpu的三维几何图元拾取方法
CN106934845A (zh) * 2015-12-29 2017-07-07 龙芯中科技术有限公司 对象拾取方法及装置
CN108037870A (zh) * 2017-11-03 2018-05-15 福建天晴数码有限公司 一种基于触摸屏的三维场景物体拾取的方法及终端
CN111192641A (zh) * 2019-12-20 2020-05-22 深圳晶泰科技有限公司 一种用于复杂web 3D场景下用户交互的系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GPU三维图元拾取;张嘉华等;工程图学学报(01);第46-52页 *
激光加工工艺软件的三维图形层次化拾取方法;李春林等;激光杂志(07);第58-61页 *

Also Published As

Publication number Publication date
CN112184870A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
US5357599A (en) Method and apparatus for rendering polygons
KR20160130821A (ko) 비-정규 직교 그리드로의 텍스처 매핑을 위한 그라디언트 조정
CN114581589A (zh) 图像处理方法及相关装置
CN106990961B (zh) 一种WebGL图形渲染引擎的建立方法
JPH0916806A (ja) 立体画像処理装置
US7158133B2 (en) System and method for shadow rendering
GB2406252A (en) Generation of texture maps for use in 3D computer graphics
WO2022143367A1 (zh) 一种图像渲染方法及其相关设备
CN108022202A (zh) 一种超前消隐几何引擎结构
US11120611B2 (en) Using bounding volume representations for raytracing dynamic units within a virtual space
CN114663632A (zh) 基于空间位置的光照显示虚拟物体的方法及设备
JPH03202981A (ja) 三次元図形表示方法及びシステム
KR101919077B1 (ko) 증강 현실 표시 방법 및 장치
US5880735A (en) Method for and apparatus for transparency conversion, image processing system
CN112184870B (zh) 用于三维图形软件的三维物体拾取方法
US7116333B1 (en) Data retrieval method and system
CN113436307B (zh) 基于osgEarth影像数据到UE4场景的映射算法
JP2000339499A (ja) テクスチャマッピング・テクスチャモザイク処理装置
US20230206567A1 (en) Geometry-aware augmented reality effects with real-time depth map
JP2001283254A (ja) 3次元グラフィックス描画装置およびその方法
CN116091742B (zh) 一种三维场景的相机观测点展示优化的方法
CN115641399B (zh) 基于图像的多层网格拾取方法及系统
JP2952585B1 (ja) 画像生成方法
JPH01106284A (ja) 3次元画像表示制御装置
JPH0234069B2 (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
GR01 Patent grant
GR01 Patent grant