CN113313748A - 视口空间中的多维对象的几何投影面积 - Google Patents
视口空间中的多维对象的几何投影面积 Download PDFInfo
- Publication number
- CN113313748A CN113313748A CN202010122480.4A CN202010122480A CN113313748A CN 113313748 A CN113313748 A CN 113313748A CN 202010122480 A CN202010122480 A CN 202010122480A CN 113313748 A CN113313748 A CN 113313748A
- Authority
- CN
- China
- Prior art keywords
- face
- vector
- projected
- vertices
- determining
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20092—Interactive image processing based on input by user
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
描述了使用各种实施例、系统、方法以及技术来确定多维对象的几何投影面积。这包括:由计算机系统确定由相机投影在视口空间上的一组可见面,该视口空间显示在图形用户界面上,其中,多维对象呈现在电子生成的多维环境中;投影在视口空间上可见的该组可见面中的每个面的顶点;确定基于每个相应面的投影顶点的每个面的一组多边形;以及计算该组多边形中的每个多边形的面积。其后,执行该组多边形中的每个多边形的面积的求和,以确定多维对象的几何投影面积。
Description
技术领域
本发明的实施例总体涉及电子(例如,计算机)生成的多维环境中的投影几何。更具体地,本发明的实施例涉及确定电子生成的多维环境中的多维虚拟对象的几何投影面积(GAP)。
背景技术
多维计算机生成或模拟的环境在许多使用计算机辅助可视化技术的不同领域中得到利用。这些技术需要计算GAP来确定虚拟对象在视口空间中投影的面积。
然而,当前已知的技术低效或不能准确地确定对象的几何投影面积。因此,需要可以克服上述限制并高效地确定多维环境内的多维数字对象的GAP的系统、方法以及技术。
发明内容
一种由一台或多台计算机组成的系统可以配置为凭借在系统上安装有软件、固件、硬件或它们的组合,来执行特定的操作或动作,该软件、固件、硬件或它们的组合在操作中使得系统执行动作。一个或多个计算机程序可以配置为凭借包括指令来执行特定的操作或动作,这些指令在由数据处理设备执行时,使得该设备执行动作。一个总体方面包括一种系统,该系统确定多维对象的几何投影面积(GAP)。该系统可以配置为确定由相机投影在视口空间上的一组可见面,该视口空间显示在图形用户界面上,其中,多维对象呈现在电子生成的多维环境中。系统还可以配置为投影在视口空间上可见的该组可见面中的每个面的顶点。系统还可以配置为确定基于每个面的投影顶点的每个面的一组多边形,并且计算该组多边形中的每个多边形的面积。然后,系统执行该组多边形中的每个多边形的面积的求和,以确定多维对象的GAP。该方面的其他实施例包括记录在一个或多个计算机存储装置上的对应的计算机系统、设备以及计算机程序,该计算机系统、设备以及计算机程序中的每一个配置为执行方法的动作。
实施方案可以包括以下特征中的一个或多个。系统还可配置为通过以下方式来确定多维对象的面是否包括在投影在视口空间上的一组可见面中:投影垂直于该面的第一向量,投影从相机到该面的第二向量,确定第一向量与第二向量之间的角度,并且当第一向量与第二向量之间的角度小于90度时,确定该面可见。第一向量与第二向量之间的角度可以由两个向量之间的点积来确定。第二向量可以朝向面的中心或面的中点中的至少一个投影。为了将面的顶点投影到视口空间,系统还可配置为:确定视图投影矩阵,其中,视图表示世界空间坐标到相机空间坐标的映射,并且其中,投影表示将相机空间坐标映射到视口空间坐标;导出面的每个顶点的齐次坐标;并且使视图投影矩阵与齐次坐标相乘。
系统还可配置为通过确定在视口空间内部投影的面的顶点的总数,来确定在面的投影顶点之外的顶点是投影在视口空间的内部还是外部。当确定无法从在视口空间内部投影的顶点绘制/投影多边形时,将多边形的面积设置为零。所述技术的实施方案可以包括硬件、方法或过程、或计算机可访问介质上的计算机软件。
附图说明
附图中以示例的方式且不限制地例示了本发明,在附图中,同样的附图标记指示类似的元件。
图1例示了根据本发明的一个实施例的系统100,该系统配置为确定在图形用户界面上显示的多维对象的几何投影面积。
图2例示了根据本发明的一个实施例的图200,该图描述了在多维空间中需要确定几何投影面积的多维对象。
图3例示了根据本发明的一个实施例的图300,该图描述了多维对象在多维环境的视口的归一化坐标上的几何投影面积。
图4例示了根据本发明的一个实施例的图400,该图描述了多维对象,以便确定对象的面的中点。
图5例示了根据本发明的一个实施例的图500,该图描述了确定多维对象的候选顶点的过程,这些候选顶点可以用于确定几何投影面积。
图6例示了根据本发明的一个实施例的流程图600,该流程图描述了确定多维物体的几何投影面积的操作。
图7例示了根据本发明的一个实施例的流程图700,该流程图描述了确定多维对象的面是否包括在投影在视口空间上的一组可见面中的操作。
图8例示了根据本发明的一个实施例的流程图800,该流程图描述了将面的顶点投影到视口空间的操作。
图9例示了根据本发明的一个实施例的流程图900,该流程图描述了基于面的投影顶点的位置来确定多维对象的面的几何投影面积的操作。
图10是例示了根据本发明的一个实施例的诸如计算系统1000的数据处理系统的框图。
具体实施方式
将参考下面讨论的细节来描述本发明的各种实施例和方面,并且附图将例示各种实施例。以下描述和附图例示了本发明,并且不被解释为限制本发明。描述了大量具体细节,以提供本发明的各种实施例的彻底理解。然而,在某些情况下,为了提供本发明的实施例的简明讨论,没有描述众所周知的或常规的细节。
本说明书中对“一个实施例”或“实施例”或“另一个实施例”的参考意指结合实施例描述的特定特征、结构或特性可以被包括在本发明的至少一个实施例中。短语“在一个实施例中”在说明书中的各种位置中的出现不是必须全部指同一实施例。在附图中描绘的过程由包括硬件(例如,电路,专用逻辑等)、软件或两者的组合的处理逻辑来执行。虽然下面依据一些顺序操作描述了过程,但是应当理解,所述的一些操作可以以不同的顺序来执行。而且,一些操作可以并行执行而不是顺序执行。
几何投影面积(GAP)是由多维虚拟对象的顶点在归一化坐标系中投影的总面积,该坐标系在视口(归一化视口空间)上可见。当渲染装置包括常规图形界面(例如,屏幕)时,归一化坐标系可以表示为二维坐标系。
虽然在屏幕坐标系中说明了示例性实施例,但是本发明的范围不旨在限于常规渲染装置(例如,屏幕),而是可以包括多维渲染装置,包括虚拟和增强现实系统所需的界面。
图1例示了根据本发明的一个实施例的系统100,该系统配置为确定在图形用户界面上显示的多维对象的几何投影面积。
在一些实施例中,系统100可以包括一个或多个服务器102。服务器102可以配置为根据客户端/服务器架构和/或其他架构与一个或多个客户端计算平台104通信。客户端计算平台104可以配置为经由服务器102和/或根据对等网架构和/或其他架构与其他客户端计算平台通信。用户可以经由客户端计算平台104访问系统100。
系统100通常可以用于确定多维对象的几何投影面积。服务器102可以由机器可读指令106配置。机器可读指令106可以包括一个或多个指令模块。指令模块可以包括计算机程序模块。指令模块可以包括对象可见面确定模块108、顶点确定模块110、多边形确定模块112、多边形面积确定模块113和/或其他指令模块中的一个或多个。
在一个实施例中,对象可见面确定模块108可以配置为确定由相机投影在视口空间上的多维对象的一组可见面,该视口空间显示在图形用户界面上。多维对象可以在电子生成的多维环境中呈现给用户。
顶点确定模块110可以配置为在由视口空间使用的坐标系中确定多维对象的每个可见面的顶点。在一个实施例中,模块110可以包括投影视口空间上可见的、多维对象的每个面的顶点的指令。
多边形确定模块112可以配置为通过确定可以由每个面的顶点绘制/投影的多边形的数量,来确定每个面的特征。模块112可以包括从投影的顶点确定多边形(例如,四边形、正方形、三角形等)的指令。
多边形面积确定模块113可以配置为确定每个多边形的面积。其后,模块113可以执行计算出的所有面积的求和,以确定多维对象的GAP。在一个实施例中,GAP为多维对象在视口上的投影提供了假设屏幕面积的估计。GAP确定多维对象投影面积与视口面积的比率:
GAP=多维对象的总投影面积/视口的总面积
在一些实施例中,服务器102、客户端计算平台104和/或外部资源114可以经由一个或多个电子通信链路可操作地链接。例如,这种电子通信链路可以至少部分地经由诸如因特网和/或其他网络的网络来建立。将理解,这不旨在是限制性的,并且本公开的范围包括服务器102、客户端计算平台104和/或外部资源114可以经由一些其他通讯介质来可操作地链接的实施例。
给定的客户端计算平台104可以包括配置为执行计算机程序模块的一个或多个处理器。计算机程序模块可以配置为使得与给定客户端计算平台104关联的专家或用户能够与系统100和/或外部资源114界面连接,和/或提供本文中归因于客户端计算平台104的其他功能。以非限制性示例的方式,给定客户端计算平台104可以包括台式计算机、膝上型计算机、手持式计算机、平板计算平台、上网本、智能手机、游戏控制台和/或其他计算平台中的一个或多个。外部资源114可以包括在系统100之外的信息源、参与系统100的外部实体和/或其他资源。在一些实施例中,本文中归因于外部资源114的一些或全部功能可以由系统100所包括的资源来提供。
服务器102可以包括电子储存器116、一个或多个处理器118和/或其他部件。服务器102可以包括使得能够与网络和/或其他计算平台交换信息的通信线路或端口。图1中的服务器102的图示不意指是限制性的。服务器102可以包括多个硬件、软件和/或固件部件,这些部件一起操作来提供本文中归因于服务器102的功能。例如,服务器102可以由一起操作为服务器102的计算平台的云来实施。
电子储存器116可以包括电子地存储信息的永久存储介质。电子储存器116的电子存储介质可以包括与服务器102一体设置(即,基本上不可移动)的系统储存器和/或经由例如端口(例如,USB端口、火线端口等)或驱动器(例如,磁盘驱动器等)可移动地连接到服务器102的可移动储存器中的一个或两个。电子储存器116可以包括光学可读存储介质(例如,光盘等)、磁性可读存储介质(例如,磁带、磁性硬盘驱动器、软盘驱动器等)、基于电荷的存储介质(例如,EEPROM、RAM等)、固态存储介质(例如,闪存驱动器等)和/或其他电子可读存储介质中的一个或多个。电子储存器116可以包括一个或多个虚拟存储资源(例如,云存储、虚拟专用网络和/或其他虚拟存储资源)。电子储存器116可以存储软件算法、由处理器118确定的信息、从服务器102接收的信息、从客户端计算平台104接收的信息和/或使得服务器102能够如本文所述起作用的其他信息。
处理器118可以配置为在服务器102中提供信息处理能力。由此可见,处理器118可以包括数字处理器、模拟处理器、设计为处理信息的数字电路、设计为处理信息的模拟电路、状态机和/或其他用于电子地处理信息的机构中的一个或多个。虽然在图1中将处理器118示出为单个实体,但这仅出于例示性目的。在一些实施例中,处理器118可以包括多个处理单元。这些处理单元可以物理地位于同一装置内,或者处理器118可以表示协同操作的多个装置的处理功能。处理器118可以配置为执行模块108、110、112和/或其他模块。
处理器118可以配置为通过软件、硬件、固件、软件、硬件和/或固件的某种组合、和/或其他用于配置处理器118上的处理能力的机构,来执行模块108、110、112和/或其他模块。如本文所用,术语“模块”可以指代执行归因于模块的功能的任意部件或任意组的部件。这可以包括在处理器可读指令的执行期间的一个或多个物理处理器、处理器可读指令、电路、硬件、存储介质或任意其他部件。
应当理解,虽然在图1中将模块108、110、112和/或113例示为在单个处理单元内实施,但是在处理器118包括多个处理单元的实施例中,一个或多个模块108、110和/或112可以远离其他模块来实施。由以下描述的不同模块108、110、112和/或113提供的功能的描述是出于例示性目的,而不旨在限制,因为模块108、110、112和/或113中的任意一个都可以提供比所描述的更多或更少的功能。例如,可以消除模块108、110、112和/或113中的一个或多个,并且其功能中的一些或全部可以由模块108、110、112和/或113中的其他模块来提供。作为另一个示例,处理器118可以配置为执行一个或多个额外的模块,这些模块可以执行以下归因于模块108、110、112和/或113中的一个的一些或全部功能。
一种由一台或多台计算机组成的系统可以配置为凭借在系统上安装有软件、固件、硬件或它们的组合,来执行特定的操作或动作,该软件、固件、硬件或它们的组合在操作中使得系统执行动作。一个或多个计算机程序可以配置为凭借包括指令来执行特定的操作或动作,这些指令在由数据处理设备执行时,使得该设备执行动作。
图2例示了根据本发明的一个实施例的图200,该图描述了在多维空间中需要确定几何投影面积的多维对象。如图例示,多维对象202是具有点V1至V8的欧氏(Euclidean)空间中的3D对象。在一个实施例中,面确定模块108通过投影垂直于多维对象的每个面的向量,来确定多维对象202的面在视口空间上是否可见。如图例示,向量204-214各自表示多维对象的每个相应面/表面的法向量。在该图示中,虚线向量208、212以及214指示它们从相机来看不可见。向量可以从多维对象202的每个外表面投影,由此,从多维对象202的背面开始的向量208被投影为更远离相机。其后,投影从相机到每个面的另一个(第二)向量(未示出)。第二向量可以从相机朝向每个面的中心绘制/投影。在另一个实施例中,从相机开始的第二向量朝向多维对象202的面的中点绘制/投影。在又一个实施例中,第二向量可以从多维对象202的面朝向相机投影。
在两个向量都投影在每个面上之后,确定第一向量与第二向量之间的角度。在一个实施例中,角度可以由第一向量与第二向量之间的点积来确定。在一个实施例中,当第一向量与第二向量之间的角度小于±90度(正负90度)时,确定面在视口空间中可见。当角度恰好为±90度时,那么只有面的边缘/拐角可见。当角度大于±90度时,那么认为多维对象的面不可见。在确定投影在视口空间上的可见面之后,可以如图3例示地确定每个可见面的顶点(在视口空间坐标系中)。
图3例示了根据本发明的一个实施例的图300,该图描述了多维对象在多维环境的视口的归一化坐标上的几何投影面积。一旦确定可见面,即可将顶点投影在视口空间上。
这包括确定视图投影矩阵,其中,视图表示世界空间坐标到相机空间坐标的映射,并且投影表示将相机空间坐标映射到视口空间坐标。假定已经执行了每个面的局部多维坐标空间(例如,三维坐标系)到世界空间坐标中的映射(模型矩阵)。否则,则确定模型视图投影矩阵而不是视图投影矩阵。
其后,可以导出多维对象的面的每个点的齐次坐标。为了导出齐次坐标,以用于投影的比例因子投影点坐标。例如,对于具有点Pxyz的三维对象(即,具有x、y以及z维度的点),齐次坐标可以确定为Px,y,z,w,其中,w表示比例因子。当在具有归一化坐标系的常规屏幕上呈现视口空间时,w设置为1。因此,在该示例中,三维空间中的点Pxyz的齐次坐标可以表示为:Pxyz1。
然后,可以通过使视图投影矩阵或模型视图投影矩阵(视情况而定)与齐次坐标相乘来导出每个面的投影顶点。在三维空间中,这可以表示为:
Vertexviewspace=Matrixviewprojection*P3DSpace,其中,P3DSpace是P=(x,y,z,1)的齐次坐标。
在一个实施例中,可以使用生成多维环境的图形引擎(例如,3D引擎)的渲染流水线的视图投影矩阵。视图投影矩阵依赖相机的位置/旋转、视野、屏幕纵横比以及相机的远近裁剪平面。因此,本领域普通技术人员将理解,视图投影矩阵的生成可以因实施方案而异。
图4例示了根据本发明的一个实施例的图400,该图描述了多维对象,以便确定对象的面的中点。为了确定可见面,如上所述,在一个实施例中,在面的中点处确定从相机到面的向量。在一个实施例中,为了确定中点或其近似,如图例示,将多维对象202封装在边界框402内。可以选择边界框的面404来确定其中点。如图例示,面404是欧氏空间中y轴上的平面(由此具有相同的y维度),该平面具有顶点406(x1,y,z1)、顶点408(x1,y,z2)、顶点410(x2,y,z2)以及顶点412(x2,y,z1)。面404例示了平行四边形,并且当前对相机可见。然后,在面的坐标系(模型坐标系)中将中点(Mp)计算为所有顶点坐标的和除以4,并将其表示为:
Mp=(顶点406坐标+顶点408坐标+顶点410坐标+顶点412坐标)/4
一旦确定了中点,则在一个实施例中,可以如上所述地从该点向相机(反之亦然)绘制/投影第二向量,以确定面是否可见。
图5例示了根据本发明的一个实施例的图500,该图描述了确定多维对象的候选顶点的过程,这些候选顶点可以用于确定GAP。如图例示,顶点可以投影在视口空间501A内部或外部(表示为501B)。两个对象的顶点分别以面502和面506投影。面502的所有顶点都投影在视口空间501A内并表示为504A-D。然而,面506的顶点508A和508B投影在视口空间501A内,而顶点510A和510B投影在外部空间501B处。
在一个实施例中,为了确定面的顶点是否可以用于确定多维对象202的GAP,确定投影在视口空间内部的面的顶点总数。如对于面506例示的,顶点510A和510B投影在视口空间的外部(在501B处),并且508A和508B投影在视口空间501A内。其后,确定是否可以用在视口空间内投影的顶点绘制多边形。由于可以用顶点504A-D绘制多边形,因此这些顶点被视为确定面502的面积的候选顶点,由此,面502的面积用于确定与面502对应的对象的GAP。
然而,如图例示,仅用两个顶点(508A和508B)无法为面506绘制多边形。由此,面506的面积设置为零,并且不考虑面506来确定对应对象的GAP。在另一个示例中,如果510B可以投影在视口空间501A内,则可以使用面506的三个顶点(顶点508A、508B以及510B)来投影三角形。由此,在这种情况下,可以用包括三个顶点的三角形的面积来确定面506的面积。
图6例示了根据本发明的一个实施例的流程图600,该流程图描述了确定多维物体的几何投影面积的操作。如操作602处例示,确定由相机投影在视口空间上的一组可见面,该视口空间显示在图形用户界面上,其中,多维对象呈现在电子生成的多维环境中。其后,在操作604处,投影在视口空间上可见的一组可见面中的每个面的顶点。在操作606处,确定基于每个面的投影顶点的每个面的一组多边形。然后,如608例示,计算该组多边形中的每个多边形的面积。如610例示,执行一组多边形中的每个面积的求和,以确定多维对象的GAP。
图7例示了根据本发明的一个实施例的流程图700,该流程图描述了确定多维对象的面是否包括在投影在视口空间上的一组可见面中的操作。如702例示,投影垂直于面的第一向量。在704处,投影从相机到面的第二向量。在706处,确定第一向量与第二向量之间的角度。在708处,当第一向量与第二向量之间的角度小于90度时,确定面可见。
图8例示了根据本发明的一个实施例的流程图800,该流程图描述了将面的顶点投影到视口空间的操作。在802处,确定视图投影矩阵。在视图投影矩阵中,视图表示世界空间坐标到相机空间坐标的映射,并且投影表示将相机空间坐标映射到视口空间坐标。其后,在804处,导出面的每个顶点的齐次坐标。在806处,使视图投影矩阵和齐次坐标相乘。
图9例示了根据本发明的一个实施例的流程图900,该流程图描述了基于面的投影顶点的位置来确定多维对象的面的几何投影面积的操作。在902处,基于投影确定在面的投影顶点之外的顶点是投影在视口空间的内部还是外部。在一个实施例中,视口空间等于用户的可见视口。然而,在另一个实施例中,视口空间可以延伸到用户视口的可见区域之外。在902处,确定投影在视口空间内部的面的顶点总数。在906处,当确定无法从在视口空间内部投影的顶点绘制多边形时,将多边形的面积设置为零。
图10是例示了可以与本发明的一个实施例一起使用的诸如计算系统1000的数据处理系统的框图。例如,系统1000可以被实施为确定多维环境中的多维对象的可视性度量的系统的一部分。从该说明书应该显而易见的是,本发明的方面可以至少部分地在软件中具体实施。即,技术可以响应于计算机系统或其他计算机系统的处理器(诸如微处理器)执行包含在存储器(诸如ROM、DRAM、大容量储存器或远程存储装置)中的指令序列而在计算机系统或其他计算机系统中进行。在各种实施例中,可以将硬件电路与软件指令结合使用来实施本发明。由此,技术不限于硬件电路和软件的任何特定组合,也不限于由计算机系统执行的指令的任何特定源。另外,贯穿该说明书,各种功能和操作被描述为由软件代码执行或由软件代码引起,以简化描述。然而,本领域技术人员将认识到,这种表达的意思是功能由处理器执行代码而产生。
在一个实施例中,系统1000可以表示服务器102。系统1000可以具有分布式架构,该分布式架构具有借助网络耦合的多个节点,或者系统的所有部件可以集成到单个单元中。计算系统1000可以表示执行上述任意过程或方法的上述任意数据处理系统。在一个实施例中,计算机系统1000可以被实施为集成电路(IC)、分立的电子装置、适合于诸如主板的电路板的模块、计算机系统的插入卡、和/或可以并入任意计算装置的机架/机箱内的部件。系统1000旨在示出任意数据处理单元或计算机系统的许多部件的高级视图。然而,应当理解,在某些实施例中可以存在额外或更少的部件,此外,在其他实施例中可以出现所示部件的不同布置。系统1000可以表示台式电脑、膝上型电脑、平板电脑、服务器、移动电话、可编程逻辑控制器、个人数字助理(PDA)、个人通信器、网络路由器或集线器、无线接入点(AP)或中继器、机顶盒或其组合。
在一个实施例中,系统1000包括经由总线或互连1022的处理器1001、存储器1003以及装置1005-1008。处理器1001可以表示单个处理器或内部包括单个处理器核心或多个处理器核心的多个处理器。处理器1001可以表示一个或多个通用处理器,诸如微处理器、中央处理单元(CPU)、微控制器单元(MCU)等。处理器1001可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其他指令集的处理器、或实施指令集组合的处理器。处理器1001也可以是一个或多个专用处理器,诸如专用集成电路(ASIC)、蜂窝或基带处理器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、网络处理器、通信处理器、密码处理器、协处理器、嵌入式处理器、或能够处理指令的任意其他类型的逻辑。处理器1001还可以是低功率多核处理器插口,诸如超低压处理器,可以充当用于与系统的各种部件通信的主处理单元和中央集线器。这种处理器可以被实施为片上系统(SoC)。
处理器1001配置为执行用于执行本文讨论的操作和方法的指令。系统1000还包括图形界面,该图形界面与图形子系统1004通信,该图形子系统可以包括显示控制器和/或显示装置。处理器1001可以与存储器1003通信,在实施例中,该存储器可以经由多个存储装置来实施,以提供给定量的系统内存。在各种实施例中,各个存储装置可以具有不同的封装类型,诸如单片封装(SDP)、双片封装(DDP)或四片封装(QDP)。在某些实施例中,这些装置可以直接焊接到主板上,以提供更低轮廓解决方案,而在其他实施例中,这些装置可以配置为一个或多个存储模块,这些模块又可以通过给定的连接器耦合到主板。存储器1003可以是机器可读的永久存储介质,诸如一个或多个易失性储存(或存储)装置,诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、或其他类型的存储装置,诸如硬盘驱动器和闪存。存储器1003可以存储包括由处理器1001或任意其他装置执行的可执行程序指令的序列的信息。系统1000还可以包括诸如装置1005-1008的IO装置,包括无线收发器1005、输入装置1006、音频IO装置1007以及其他IO装置1008。
无线收发器1005可以是WiFi收发器、红外收发器、蓝牙收发器、WiMax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(GPS)收发器)或其他射频(RF)收发器、网络接口(例如,以太网接口)或其组合。输入装置1006可以包括鼠标、触摸板、触敏屏幕(可以与显示装置1004集成)、诸如触针的指针装置、和/或键盘(例如,物理键盘或显示为触敏屏幕的一部分的虚拟键盘)。其他可选装置1008可以包括存储装置(例如,硬盘驱动器、闪存装置)、通用串行总线(USB)端口、并行端口、串行端口、打印机、网络接口、总线桥(例如,PCI-PCI桥)、传感器(例如,运动传感器,诸如加速器、陀螺仪、磁强计、光传感器、指南针、接近传感器等)、或它们的组合。可选装置1008还可以包括成像处理子系统(例如,相机),其可以包括用于促进相机功能(诸如记录照片和视频剪辑)的光学传感器,诸如电荷耦合装置(CCD)或互补金属氧化物半导体(CMOS)光学传感器。取决于系统1000的特定配置或设计,某些传感器可以经由传感器集线器(未示出)耦合到互连1022,而诸如键盘或热传感器的其他装置可以由嵌入式控制器(未示出)控制。
为了提供诸如数据的信息、应用程序、一个或多个操作系统等的持久存储,在一个实施例中,大容量储存器(未示出)也可以耦合到处理器1001。在各种实施例中,为了启用更薄且更轻的系统设计而且提高系统的响应能力,可以经由固态装置(SSD)来实施该大容量储存器。然而,在其他实施例中,大容量储存器可以主要使用具有更少量的SSD存储的硬盘驱动器(HDD)来实施,以充当SSD缓存,以在断电事件期间启用上下文状态和其他这种信息的非易失性存储,使得在重新启动系统活动时可以快速开机。闪存装置也可以例如经由串行外围接口(SPI)耦合到处理器1001。该闪存装置可以提供系统软件(包括基本输入/输出软件(BIOS)以及系统的其他固件)的非易失性存储。
注意,虽然系统1000被例示为具有数据处理系统的各种部件,但是其并不旨在表示互连这些部件的任何特定架构或方式;因为这种细节不与本发明的实施例有密切关系。还将理解,具有更少部件或可能更多部件的网络计算机、手持式计算机、移动电话以及其他数据处理系统也可以与本发明的实施例一起使用。
由此,本文描述了确定多维环境中的多维对象的几何投影面积的方法、设备以及计算机可读介质。虽然已经参考特定的示例性实施例描述了本发明,但是将显而易见的是,可以在不脱离权利要求所阐述的本发明的更广精神和范围的情况下对这些实施例进行各种修改和改变。因此,将在例示性意义上而不是在限制性意义上考虑说明书和附图。
Claims (20)
1.一种方法,其包括:
由计算机系统确定由相机投影在视口空间上的一组可见面,该视口空间显示在图形用户界面上,其中,多维对象呈现在电子生成的多维环境中;
投影在所述视口空间上可见的所述一组可见面中的每个面的顶点;
确定基于每个面的所述投影顶点的每个面的一组多边形;
计算所述一组多边形中的每个多边形的面积;以及
执行所述一组多边形中的每个多边形的所述面积的求和;
其中,所述方法确定所述多维对象的几何投影面积。
2.根据权利要求1所述的方法,其中,确定所述多维对象的面是否包括在投影在所述视口空间上的所述一组可见面中包括:
投影垂直于所述面的第一向量;
投影从所述相机到所述面的第二向量;
确定所述第一向量与所述第二向量之间的角度;以及
当所述第一向量与所述第二向量之间的所述角度小于90度时,确定所述面可见。
3.根据权利要求2所述的方法,其中,所述角度由所述第一向量与所述第二向量之间的点积来确定。
4.根据权利要求2所述的方法,其中,所述第二向量朝向所述面的中心投影。
5.根据权利要求2所述的方法,其中,所述第二向量从所述相机朝向所述面的中点投影。
6.根据权利要求1所述的方法,其中,将面的所述顶点投影到所述视口空间包括:
确定视图投影矩阵,其中,视图表示世界空间坐标到相机空间坐标的映射,并且其中,投影表示将所述相机空间坐标映射到视口空间坐标;
导出所述面的每个顶点的齐次坐标;以及
使所述视图投影矩阵与所述齐次坐标相乘。
7.根据权利要求1所述的方法,还包括:
确定在面的所述投影顶点之外的顶点是投影在所述视口空间的内部还是外部;
确定投影在所述视口空间内部的所述面的顶点总数;
其中,当确定无法从在所述视口空间内部投影的所述顶点投影多边形时,将所述多边形的所述面积设置为零。
8.一种永久计算机可读介质,其包括指令,这些指令在由具有至少一个处理核心的处理系统执行时,执行一种方法,该方法包括:
确定由相机投影在视口空间上的一组可见面,该视口空间显示在图形用户界面上,其中,多维对象呈现在电子生成的多维环境中;
投影在所述视口空间上可见的所述一组可见面中的每个面的顶点;
确定基于每个面的所述投影顶点的每个面的一组多边形;
计算所述一组多边形中的每个多边形的面积;以及
执行所述一组多边形中的每个多边形的所述面积的求和;
其中,所述处理系统确定所述多维对象的几何投影面积。
9.根据权利要求8所述的永久计算机可读介质,其中,确定所述多维对象的面是否包括在投影在所述视口空间上的所述一组可见面中包括:
投影垂直于所述面的第一向量;
投影从所述相机到所述面的第二向量;
确定所述第一向量与所述第二向量之间的角度;以及
当所述第一向量与所述第二向量之间的所述角度小于90度时,确定所述面可见。
10.根据权利要求9所述的永久计算机可读介质,其中,所述角度由所述第一向量与所述第二向量之间的点积来确定。
11.根据权利要求9所述的永久计算机可读介质,其中,所述第二向量朝向所述面的中心投影。
12.根据权利要求9所述的永久计算机可读介质,其中,所述第二向量从所述相机朝向所述面的中点投影。
13.根据权利要求8所述的永久计算机可读介质,其中,将面的所述顶点投影到所述视口空间包括:
确定视图投影矩阵,其中,视图表示世界空间坐标到相机空间坐标的映射,并且其中,投影表示将所述相机空间坐标映射到视口空间坐标;
导出所述面的每个顶点的齐次坐标;以及
使所述视图投影矩阵与所述齐次坐标相乘。
14.根据权利要求8所述的永久计算机可读介质,还包括:
确定在面的所述投影顶点之外的顶点是投影在所述视口空间的内部还是外部;
确定投影在所述视口空间内部的所述面的顶点总数;
其中,当确定无法从在所述视口空间内部投影的所述顶点投影多边形时,将所述多边形的所述面积设置为零。
15.一种系统,其包括:
存储装置;
处理系统,其耦合到所述处理装置,所述处理系统配置为:
确定由相机投影在视口空间上的一组可见面,该视口空间显示在图形用户界面上,其中,多维对象呈现在电子生成的多维环境中;
投影在所述视口空间上可见的所述一组可见面中的每个面的顶点;
确定基于每个面的所述投影顶点的每个面的一组多边形;
计算所述一组多边形中的每个多边形的面积;并且
执行所述一组多边形中的每个多边形的所述面积的求和;
其中,所述处理系统确定所述多维对象的几何投影面积。
16.根据权利要求15所述的系统,其中,为了确定所述多维对象的面是否包括在投影在所述视口空间上的所述一组可见面中,所述处理系统还配置为:
投影垂直于所述面的第一向量;
投影从所述相机到所述面的第二向量;
确定所述第一向量与所述第二向量之间的角度;并且
当所述第一向量与所述第二向量之间的所述角度小于90度时,确定所述面可见。
17.根据权利要求16所述的系统,其中,所述角度由所述第一向量与所述第二向量之间的点积来确定。
18.根据权利要求16所述的系统,其中,所述第二向量朝向所述面的中心或所述面的中点中的至少一个投影。
19.根据权利要求15所述的系统,其中,为了将面的所述顶点投影到所述视口空间,所述处理系统还配置为:
确定视图投影矩阵,其中,视图表示世界空间坐标到相机空间坐标的映射,并且其中,投影表示将所述相机空间坐标映射到视口空间坐标;
导出所述面的每个顶点的齐次坐标;并且
使所述视图投影矩阵与所述齐次坐标相乘。
20.根据权利要求15所述的系统,其中,所述处理系统还配置为:
确定在面的所述投影顶点之外的顶点是投影在所述视口空间的内部还是外部;
确定投影在所述视口空间内部的所述面的顶点总数;
其中,当确定无法从在所述视口空间内部投影的所述顶点投影多边形时,将所述多边形的所述面积设置为零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010122480.4A CN113313748A (zh) | 2020-02-27 | 2020-02-27 | 视口空间中的多维对象的几何投影面积 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010122480.4A CN113313748A (zh) | 2020-02-27 | 2020-02-27 | 视口空间中的多维对象的几何投影面积 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113313748A true CN113313748A (zh) | 2021-08-27 |
Family
ID=77370045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010122480.4A Pending CN113313748A (zh) | 2020-02-27 | 2020-02-27 | 视口空间中的多维对象的几何投影面积 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113313748A (zh) |
-
2020
- 2020-02-27 CN CN202010122480.4A patent/CN113313748A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111815755B (zh) | 虚拟物体被遮挡的区域确定方法、装置及终端设备 | |
CN108122277B (zh) | 一种建模方法及装置 | |
US20140292753A1 (en) | Method of object customization by high-speed and realistic 3d rendering through web pages | |
WO2014105268A1 (en) | REORDERING OF COMMAND STREAMS FOR GRAPHICAL PROCESSING UNITS (GPUs) | |
GB2559850A (en) | Stroke operation prediction for three-dimensional digital content | |
CN112204621A (zh) | 基于计算设备能力简档的虚拟骨架 | |
US9489756B2 (en) | Graph based degree of freedom counter for two dimensional drawings | |
WO2020157738A2 (en) | Viewability metrics of a multidimensional object in a multidimensional digital environment | |
WO2022033444A1 (zh) | 动态流体效果处理方法、装置、电子设备和可读介质 | |
US9830733B2 (en) | Method and apparatus for performing ray-node intersection test | |
US10754498B2 (en) | Hybrid image rendering system | |
US10949990B2 (en) | Geometric area of projection of a multidimensional object in a viewport space | |
CN113313748A (zh) | 视口空间中的多维对象的几何投影面积 | |
AU2017213546B2 (en) | Face painting on a single image with an underlying 3d model | |
CN115761123A (zh) | 三维模型处理方法、装置、电子设备以及存储介质 | |
US11748911B2 (en) | Shader function based pixel count determination | |
CN107103209B (zh) | 3d数字内容交互和控制 | |
CN113487704A (zh) | 一种燕尾箭头标的绘制方法、装置、存储介质及终端设备 | |
US11741663B2 (en) | Multidimensional object view ability data generation | |
CN113313749A (zh) | 多维数字环境中多维对象的可见度度量 | |
KR20160010780A (ko) | 3d 이미지 제공 시스템 및 그 제공방법 | |
US20230368454A1 (en) | Graphics Processing Unit Instancing Control | |
CN113313800A (zh) | 基于纹理的像素数确定 | |
CN117714738A (zh) | 视频处理方法及相关设备 | |
CN117853680A (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 |