CN103617317A - 智能3d模型的自动布局方法和系统 - Google Patents
智能3d模型的自动布局方法和系统 Download PDFInfo
- Publication number
- CN103617317A CN103617317A CN201310605070.5A CN201310605070A CN103617317A CN 103617317 A CN103617317 A CN 103617317A CN 201310605070 A CN201310605070 A CN 201310605070A CN 103617317 A CN103617317 A CN 103617317A
- Authority
- CN
- China
- Prior art keywords
- model
- summit
- models
- value
- neighbours
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000001914 filtration Methods 0.000 claims abstract description 26
- 238000013507 mapping Methods 0.000 abstract description 5
- 238000009877 rendering Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了智能3D模型的自动布局方法和系统,其自动布局方法包括:A、构建3D场景、解析3D文件获得引擎数据,基于所述引擎数据进行渲染,其中所述引擎数据包括模型及摄像机的位置;B、根据所述模型与摄像机的位置过滤所述3D场景中相对于所述摄像机无效的模型;C、基于过滤后所保留的模型,以其中任一模型为基准,计算出在预设方向的邻居模型,并标记所述邻居模型;D、将所标记的模型组成布局,通过用户输入指令更改焦点模型。本发明采用3D模型到屏幕上的映射算法,计算出模型之间的空间关系,并空间关系抽象为布局,方便了焦点的移动,解决了现有3D应用中焦点的移动方式固化的问题。
Description
技术领域
本发明涉及机器视觉技术,特别涉及一种智能3D模型的自动布局方法和系统。
背景技术
随着智能设备的兴起,3D应用在智能应用市场上的比例越来越重,针对3D的应用开发也在逐渐升温。目前网络上大量的3D引擎只针对模型进行管理,针对视图管理的3D引擎乏善可陈。特别地,现有的3D应用中焦点的移动方式只能固化在程序中,例如,模型A的左边为模型B,上边为模型C,若程序中固定焦点左移只能选择模型B,而当模型B的位置与模型C互换后,控制焦点仍会默认其左边的模型为B,因此左移时仍会选择模型B,而实际上此时模型A的左边为模型C,这样就会出现操作与屏幕显示不对应,因而3D场景的布局有任何微小的变化都需要重新修改程序来控制焦点移动时选择的对象,进而给用户的操作带来不便。同时,现有的这种焦点移动方法适用范围十分狭窄、固化且不能与屏幕显示的内容同步,影响用户的使用。
因此,现有技术还有待于改进和发展。
发明内容
本发明的目的在于提供一种智能3D模型的自动布局方法和系统,以解决现有技术焦点的移动方式固化的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种3D模型的自动布局方法,其包括:
A、构建3D场景、解析3D文件获得引擎数据,基于所述引擎数据进行渲染,其中所述引擎数据包括模型及摄像机的位置;
B、根据所述模型与摄像机的位置过滤所述3D场景中相对于所述摄像机无效的模型;
C、基于过滤后所保留的模型,以其中任一模型为基准,计算出在预设方向的邻居模型,并标记所述邻居模型;
D、将所标记的模型组成布局。
所述的智能3D模型的自动布局方法,其中,所述步骤B具体包括:
B1、当模型与摄像机的距离超过视锥体的远剪裁面时,过滤该模型;
B2、过滤位于摄像机捕捉范围外的模型;
B3、过滤后所剩余的模型中,当两个模型重叠时,计算比较两个模型到摄像机的距离,过滤距离摄像机远的模型。
所述的智能3D模型的自动布局方法,其中,所述步骤B2具体包括:
B21、根据模型上所有顶点的坐标大小获取该模型的立方体包围盒;
B22、将所述立方体包围盒的8个顶点映射到屏幕上,形成平面包围盒;
B23、获取预设的屏幕视口的区域范围,当所述8个顶点均在屏幕视口的区域范围外时,过滤该8个顶点对应的模型,其中所述区域范围为预设屏幕视口的高度及宽度所形成的区域。
所述的智能3D模型的自动布局方法,其中,所述步骤B3具体包括:
B31、过滤后所剩余的模型的任意两个模型中,将其中一个模型的平面包围盒的4个顶点坐标循环遍历另一个模型的顶点坐标;
B32、判断一个模型的顶点坐标的x值是否大于另一个模型的最小x值而小于该模型的最大x值;以及判断一个模型的顶点坐标的y值是否大于另一个模型的最小y值而小于该模型的最大y值,当判断结果均为是时,表示所述两个模型重叠,转向步骤B33,否则所述两个模型不重叠;
B33、分别计算比较两个模型到摄像机的距离,过滤距离摄像机远的模型。
所述的智能3D模型的自动布局方法,其中,所述步骤C具体包括:
C1、以任一模型为基准模型,根据该基准模型对应的平面包围盒的中心点划出其在预设方向下的预设范围;
C2、判断其他模型对应的平面包围盒的任一顶点是否位于所述预设范围内:若是,则记录该顶点及与其对应的模型;否则标记该顶点对应的模型在预设方向上无效,其中所述其他模型为经过过滤后所得到的模型中除去所述基准模型之外的模型;
C3、分别计算所记录的顶点到所述中心点的距离,将距离最小的顶点所对应的模型标记为基准模型的预设方向的邻居,并记下所述最小距离对应的顶点。
所述的智能3D模型的自动布局方法,其中,所述预设方向为向左,所述步骤C1具体包括:以一模型为基准模型,从该基准模型对应的平面包围盒的中心点到其左上角的顶点引出第一射线,从该中心点到左下角的顶点引出第二射线,第一射线与第二射线之间夹角区域为预设范围。
所述的智能3D模型的自动布局方法,其中,所述判断其他模型对应的平面包围盒的任一顶点是否位于预设范围内,具体包括:
C21、从所述中心点到其他模型对应的平面包围盒的顶点引出向量;
C22、将向量与所述第一射线进行点乘得到第一数值,向量与所述第二射线进行点乘得到第二数值;
C23、当第一数值与第二数值的乘积小于或等于零时,该顶点位于预设范围内。
所述的智能3D模型的自动布局方法,其中,所述预设方向为向左或向右时,所述步骤C3之后还包括:
C4、若所记下的顶点有多个时,判断多个顶点是否属于同一平面包围盒:若是,则保留所述多个顶点中的一个顶点,将该顶点对应的模型标记为基准模型的预设方向邻居;否则转向步骤C5;
C5、比较各个顶点对应的y值,取最大y值对应的顶点,并将该顶点对应的模型标记为基准模型的左或右邻居。
所述的智能3D模型的自动布局方法,其中,
所述预设方向为向上或向下时,所述步骤C3之后还包括:
C6、若所记下的顶点有多个时,判断多个顶点是否属于同一平面包围盒:若是,则保留所述多个顶点中的一个顶点,将该顶点对应的模型标记为基准模型的预设方向邻居;否则转向步骤C7;
C7、比较各个顶点对应的x值,取最小x值对应的顶点,并将该顶点对应的模型标记为基准模型的上或下邻居。
一种3D模型的自动布局方法的系统,其包括:
场景构建模块,用于构建3D场景、解析3D文件获得引擎数据,基于所述引擎数据进行渲染,其中所述引擎数据包括模型及摄像机的位置;
过滤模块,用于根据所述模型与摄像机的位置过滤所述3D场景中相对于所述摄像机无效的模型;
邻居计算模块,用于基于过滤后所保留的模型,以其中任一模型为基准,计算出在预设方向的邻居模型,并标记所述邻居模型;
布局模块,用于将所标记的模型组成布局。
相较于现有技术,本发明提供的智能3D模型的自动布局方法和系统,构建3D场景后,根据模型与摄像机的距离过滤3D场景中无效的模型,计算出位于剩余的模型上、下、左、右方向的预设范围内的模型并对应标记为上邻居、下邻居、左邻居、右邻居,使每个模型的上、下、左、右方向仅保留1个或0个模型,最后将所有模型组成布局,通过输入的键盘事件更改焦点模型,方便了焦点的移动,解决了现有3D应用中焦点的移动方式固化、布局更改后需重新修改程序来控制焦点选择的问题。
附图说明
图1为本发明智能3D模型的自动布局方法的方法流程图。
图2为本发明智能3D模型的自动布局方法的实施例平面包围盒的示意图。
图3为本发明智能3D模型的自动布局方法的实施例中左邻居的计算模拟示意图。
图4为本发明智能3D模型的自动布局系统的结构框图。
具体实施方式
本发明提供一种智能3D模型的自动布局方法和系统,通过对3D场景中的模型进行过滤,采用3D模型到屏幕上的映射算法,计算出模型之间的空间关系,使每个模型的上、下、左、右方向仅保留1个或0个模型,再将这些模型布局,使空间关系抽象为布局,通过Manger控制所有模型,方便焦点的移动。为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1,其为本发明智能3D模型的自动布局方法的方法流程图。如图1所示,所述的智能3D模型的自动布局方法包括以下步骤:
S100、构建3D场景、解析3D文件获得引擎数据,基于所述引擎数据进行渲染;
本实施例中,利用3D技术构建3D场景,使用与该3D场景对应的解析库将3D文件解析为引擎数据,之后基于该引擎数据在屏幕上渲染出可视物体。其中,所解析出来的引擎数据包括摄像机的位置、模型的位置及大小等属性,本实施例中不对所述摄像机的位置进行限制,但是每个模型与摄像机的相对位置是相对固定的,所述模型至少包括一个,优选地,所述模型为多个在本实施例中,由于构件3D场景为现有技术,此处对此不再赘述。
S200、根据所述模型与摄像机的位置过滤所述3D场景中相对于所述摄像机无效的模型;
S300、基于过滤后所保留的模型,以其中任一模型为基准,计算出在预设方向的邻居模型,并标记所述邻居模型;
具体地,所述预设方向包括左、右及上、下方向。
S400、将所标记的模型组成布局。
本实施例中,还可包括步骤:通过用户输入指令更改焦点模型这一步骤,此时所有标记模型组成布局后,用户可按实际情况而设定焦点模型,其中所述用户输入指令包括用户输入的键盘事件等。
在步骤S100中,先通过3D技术构建3D场景,将此3D场景保存为相应格式的文件;再利用对应的解析库将所述文件解析为引擎的数据;接着可使用OpenGL(Open Graphics Library,三维图形标准)、DirectX(Direct eXtension,一种多媒体编程接口)或者CPU(CentralProcessingUnit,中央处理器)软件渲染技术等构建3D场景并渲染,其中,解析出来的引擎数据包括摄像机的位置、模型的位置、大小、材质和纹理属性,利用这些属性引擎就可以在屏幕上渲染出可视物体。
3D场景构建完成后,有些模型并不适合参与邻居布局,需要对3D场景中不必要的模型(即相对于摄像机无效的模型)进行筛选过滤。本实施例中步骤S200通过以下三个步骤来过滤不必要的模型:
步骤1、处理离摄像机比较远的模型。当一个模型与摄像机的距离超过视锥体的远剪裁面时,过滤该模型。其中,视锥体(frustum)是指场景中摄像机的可见的一个锥体范围,远剪裁面是指摄像机能看见的最远距离。比远剪裁面还远的物体不可见,因此需过滤。
步骤2、处理在摄像机之外的模型。即过滤位于摄像机捕捉范围外的模型,具体实施方式包括:
第一步、根据模型上所有顶点的坐标大小获取该模型的立方体包围盒。遍历模型上所有的顶点,提取所述顶点的3D坐标(x,y,z),在所提取的所有3D坐标中查询出x、y、z坐标值中的最大值和最小值,结合这6个坐标值在三维(3D)坐标系中形成该模型的立方体包围盒,其中每一个模型对应一个立方体包围盒。
第二步、将所述立方体包围盒的8个顶点映射到屏幕上,形成平面包围盒。此步骤即实现3D图形系统的坐标转换,将3D投影到2D窗口。具体实施时依次通过3D相对坐标系 ——> 模型视图矩阵变换 ——>投影矩阵变换——> 透视除法归一化——>视口变换——>屏幕2D坐标(带有深度信息的屏幕坐标(x,y))。请同时参阅图2,其中的虚线图为立方体包围盒到屏幕上的映射点,实线图为2D图形。
第三步、获取预设的屏幕视口的区域范围,当所述8个顶点均在屏幕视口的区域范围外时,过滤该8个顶点对应的模型,其中,所述区域范围可为预设屏幕视口的高度及宽度所形成的区域,还可以是由预设屏幕视口的长度及宽度所形成区域的大小,此处对此不作限制。当所述8个顶点均在所述屏幕视口的高度与宽度所围成的区域外时,过滤掉所述8个顶点对应的模型。本步骤中获取程序初始化时设置的屏幕视口的宽高,判断立方体包围盒的8个顶点是否在屏幕视口的宽高所形成的区域范围内。只要有一个顶点在所述区域范围内,则该立方体包围盒对应的模型有效,保留;若8个顶点均在所述宽高范围外则无效,过滤该立方体包围盒对应的模型。
对3D场景中所有模型都进行上述步骤1、2处理后剩余的即是有效的模型,需判断所述有效的模型是否重叠。
步骤3、当两个模型重叠时,计算比较两个模型到摄像机的距离,过滤距离摄像机远的模型。请继续参阅图2,在上述第二步中得到了模型的立方体包围盒的8个顶点在屏幕上的映射,根据这8个顶点在屏幕上的位置查询出立方体包围盒在x和y轴上的最小值和最大值,然后形成一个屏幕上的矩形的平面包围盒,如图2中黑色方框所示。
统计出模型的平面包围盒的4个顶点坐标,选取过滤后所剩余的模型中任意两个模型,先将其中一个模型的平面包围盒的4个顶点坐标循环遍历另一个模型的顶点坐标。接着判断一个模型的顶点坐标的x值是否大于另一个模型的最小x值而小于该模型的最大x值;以及判断一个模型的顶点坐标的y值是否大于另一个模型的最小y值而小于该模型的最大y值。即判断一个模型的顶点坐标的x值是否在另一个模型的最小x值与最大x值之间、且该模型的顶点坐标的y值是否在所述另一个模型的最小y值与最大y值之间。当判断结果均为是时,表示所述两个模型重叠,则分别计算比较两个模型到摄像机的距离,过滤距离摄像机远的模型。当判断结果为否时,表示两个模型不重叠。
假设模型A和模型B。将模型B的4个顶点坐标与A模型的4个顶点坐标进行比较,找出x轴上的最大值xB_max,最小值xB_min;y轴上的最大值yB_max,最小值yB_min。将模型A的顶点1的坐标(xA1,yA1)分别与模型B的4个顶点坐标进行比较,当xB_min<x1<xB_max,且yB_min<y1<yB_max时,表示模型A和模型B重叠。此时需要分别计算模型A和模型B到摄像机的距离,以模型A为例,假设模型A的三维坐位(一般选模型A的中心点)为(x1,y1,z1),摄像机(一般选摄像机的中心点)坐标为(x2,y2,z2),模型A到摄像机的距离
L= sqrt((x1-x2)*(x1-x2) +(y1-y2)*(y1-y2) + (z1-z2)*(z1-z2))。同理计算出模型B到摄像机的距离,比较所计算的距离,将距离远的模型过滤。
经过上述步骤S200过滤后,对剩余的模型求取其邻居模型,即找出位于各模型上、下、左、右方向的预设范围内的模型。以计算模型的左方向为例,请同时参阅图3,计算出位于基准模型预设方向的模型并对应标记为预设方向邻居的方法具体包括:
步骤301、以任一模型为基准模型,根据该基准模型对应的平面包围盒的中心点划出其在预设方向下的预设范围,其中,所述预设范围为以中线点到预设方向两侧的顶点所引出的射线之间所在的区域。具体实施时,以任一模型为基准模型,如图3所示,优选地,假设预设方向为向左,则从该基准模型对应的平面包围盒a的中心点P0到其左上角的顶点P1引出第一射线r1,从该中心点P0到左下角的顶点P2引出第二射线r2,第一射线r1与第二射线r2之间夹角区域为预设范围,夹角为β。
步骤302、判断其他模型对应的平面包围盒的任一顶点是否位于所述预设范围内:若是,则记录该顶点及与其对应的模型;否则标记该顶点对应的模型在预设方向上无效。具体判断时,先从所述中心点到其他模型对应的平面包围盒的顶点引出向量;再将向量与所述第一射线进行点乘得到第一数值,向量与所述第二射线进行点乘得到第二数值;根据几何向量学相关原理得知,当第一数值与第二数值的乘积小于或等于零(即符号相反或其中至少一个为零)时,该顶点位于预设范围内。请同时参阅图3,假设第一射线向量为(P1x,P1y),中心点PO到顶点P3的向量为(P2x,P2y),则点乘公式:P1x*P2x + P1y*P2y=第一数值,同理可推出第二数值,若第一与第二数值的乘积小于或等于零时,则表示该模型在所述预设范围内,记录下该顶点。具体地,所述第一及第二数值有三种可能,即第一数值与第二数值的符号相同、第一及第二数值的符号相反,或者第一或第二数值的其中至少一个为零,当其中一个为零时,说明该顶点在射线上,即在预设范围之内,若第一及第二符号相反,则说明该顶点在预设范围之内,而当第一数值与第二数值的符号相同时,则说明该顶点不在预设范围之内,因此当第一及第二数值的乘积大于零时,则说明该顶点不在预设范围内,若小于或等于零,则说明在预设范围之内。本实施例中,所述其他模型为经过过滤后所得到的模型中除去所述基准模型之外的模型。
步骤303、分别计算所记录的顶点到所述中心点的距离,将距离最小的顶点所对应的模型标记为基准模型的预设方向的邻居,并记下所述最小距离对应的顶点。
在步骤302中,假设有3个平面包围盒,其位置如图3所示。从中心点P0向平面包围盒b、c、d的4个顶点分别引出一向量。本实施例以中心点P0向平面包围盒b的顶点P3引出向量n为例,顶点P3的坐标为(X3,Y3),中心点P0的坐标为(P0x,P0y)。将向量n与第一射线r1进行点乘,向量n·射线r1= X3* P0x + Y3* P0y=第一数值。点乘的结果为一数字,若第一数值为负数,表示向量在射线的左边,为正数在射线的右边,为0则在射线上。射线的左右以其箭头的方向为准。从图3可知,当第一数值为负数且第二数值为正数时,即向量在第一射线r1的左边,且在第二射线r2的右边时,该顶点才位于预设范围内。若向量在第一射线r1的右边,或者在第二射线r2的左边时,表示没有顶点位于预设范围内,此时基准模型的左邻居为空。
图3中,平面包围盒d在预设范围外,由于其可能是上邻居,需标记其左无效,用于后续判断。平面包围盒b、c在预设范围内,本发明在基准模型左边最多只能保留1个模型,因此需要通过步骤303去掉多余的模型。在步骤303中,计算所有在预设范围内的顶点到中心点的距离,获取距离最小的顶点。则此顶点所属于的模型为当前模型的左邻居,并标记;其余模型可淘汰。
具体实施时,若步骤303中计算出有多个顶点到中心点的距离相等。需要继续淘汰;若所述预设方向为向左或向右时,在步骤303之后还包括:
步骤304、若所记下的顶点有多个时,判断多个顶点是否属于同一平面包围盒:若是,则保留所述多个顶点中的一个顶点,将该顶点对应的模型标记为基准模型的预设方向邻居;否则,转向步骤305。
步骤305、比较各个顶点对应的y值,取最大y值对应的顶点,并将该顶点对应的模型标记为基准模型的左或右邻居。
若所述预设方向为向上或向下时,在所述步骤303之后还包括:
步骤306、若所记下的顶点有多个时,判断多个顶点是否属于同一平面包围盒:若是,则保留所述多个顶点中的一个顶点,将该顶点对应的模型标记为基准模型的预设方向邻居;否则转向步骤307。
步骤307、比较各个顶点对应的x值,取最小x值对应的顶点,并将该顶点对应的模型标记为基准模型的上或下邻居。
具体实施时,以左为预设方向作为例子来具体说明如何进一步确定基准模型的邻居,将所有满足距离相等且距离最小的要求的顶点两两组合,假设为P1和P2为一组,P3和P4为一组。如果P1为一个平面包围盒的一个顶点坐标,且P2也为该平面包围盒的另一个顶点坐标,则P1、 P2属于同一个平面包围盒。此时可将p1或P2从满足要求的顶点中剔除。如果P3和P4均属于另一个平面包围盒,剔除p3或P4。假设此时未剔除P1及P3,接着将未剔除的P1和P3组合后继续比较判断,以确保每个平面包围盒仅剩1个顶点,最后计算经过剔除后所剩余顶点对应的模型的中心点坐标到基准模型的中心点坐标的距离,距离最小的模型保留,其余的模型剔除。当有2个或多个距离相等且最小时,保留中心点位置偏上的模型,也即是坐标值中y值最大的模型,将其标记为左邻居。
应当理解的是,右邻居、上邻居、下邻居的计算方式与上述实施例中左邻居计算相同;射线方向对应更改。计算出模型之间的空间关系应满足每个模型的上、下、左、右方向仅保留1个或0个模型,以满足现有布局管理的规则,避免多出模型导致选择混乱。另外,当对基准模型的上/下方向进行计算时,在步骤304中,若多个顶点不属于同一平面包围盒,则保留x值最小的顶点,保留偏左的模型,并将该顶点对应的模型标记为基准模型的上/下邻居。具体实施时,每个模型都需要作为一次基准模型来计算其上邻居、下邻居、左邻居、右邻居。标记时要标记出哪个模型是哪个模型的邻居,这样各模型的空间关系就能相互关联,之后可对空间关系进行布局。
在具体实施时,所述步骤S400具体包括:将步骤S100~S200处理后剩余的所有模型采用一个Manger(布局管理器)来进行管理,将模型放在Manger的动态数组或者其他链表中。同时在Manger中保存一个模型指针,指向当前的焦点模型(即被选中的模型)。此外,当用户输入指令更改焦点模型时、即需要选择另外一个模型时,将用户输入指令(包括用户输入的键盘事件等)传输给Manger, Manger收到键盘事件后是判断其是否为方向键:如果不是则不作处理;如果是,根据该方向移动焦点,选中该方向上的与焦点模型相邻的另一模型。这样当模型更换位置后,根据上述实施例系统重新跑一遍布局流程,重新计算出邻居关系,以确保焦点移动的准确性,且改变了现有焦点移动与模型固化的设置。
本发明实施例还相应提供一种用于实现所述智能3D模型的自动布局方法的系统,如图4所示,所述系统包括:
场景构建模块110,用于构建3D场景、解析3D文件获得引擎数据,基于所述引擎数据进行渲染,其中所述引擎数据包括模型及摄像机的位置。;
过滤模块120,用于根据模型与摄像机的距离过滤3D场景中无效的模型;
邻居计算模块130,用于基于过滤后所保留的模型,以其中任一模型为基准,计算出在预设方向的邻居模型,并标记所述邻居模型(即计算出位于该基准模型预设方向的模型并对应标记为预设方向邻居);
布局模块140,用于将所标记的模型组成布局;还可用于通过用户输入指令更改焦点模型。
由于上述系统中各个部分的功能已经在上述方法实施例中进行了详细介绍,此处不再赘述。
综上所述,本发明构建3D场景后,根据模型与摄像机的距离过滤3D场景中无效的模型,采用3D模型到屏幕上的映射算法,计算出位于剩余的模型上、下、左、右方向的预设范围内的模型并对应标记为上邻居、下邻居、左邻居、右邻居,使每个模型的上、下、左、右方向仅保留1个或0个模型,计算得到模型之间的空间关系,最后将所有模型组成布局,将空间关系抽象为布局,通过输入的键盘事件更改焦点模型,方便了焦点的移动,解决了现有3D应用中焦点的移动方式固化、布局更改后需重新修改程序来控制焦点选择的问题。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
Claims (10)
1.一种3D模型的自动布局方法,其特征在于,包括:
A、构建3D场景、解析3D文件获得引擎数据,基于所述引擎数据进行渲染,其中所述引擎数据包括模型及摄像机的位置;
B、根据所述模型与摄像机的位置过滤所述3D场景中相对于所述摄像机无效的模型;
C、基于过滤后所保留的模型,以其中任一模型为基准,计算出在预设方向的邻居模型,并标记所述邻居模型;
D、将所标记的模型组成布局。
2.根据权利要求1所述的智能3D模型的自动布局方法,其特征在于,所述步骤B具体包括:
B1、当模型与摄像机的距离超过视锥体的远剪裁面时,过滤该模型;
B2、过滤位于摄像机捕捉范围外的模型;
B3、过滤后所剩余的模型中,当两个模型重叠时,计算比较两个模型到摄像机的距离,过滤距离摄像机远的模型。
3.根据权利要求2所述的智能3D模型的自动布局方法,其特征在于,所述步骤B2具体包括:
B21、根据模型上所有顶点的坐标大小获取该模型的立方体包围盒;
B22、将所述立方体包围盒的8个顶点映射到屏幕上,形成平面包围盒;
B23、获取预设的屏幕视口的区域范围,当所述8个顶点均在屏幕视口的区域范围外时,过滤该8个顶点对应的模型,其中所述区域范围为预设屏幕视口的高度及宽度所形成的区域。
4.根据权利要求2所述的智能3D模型的自动布局方法,其特征在于,所述步骤B3具体包括:
B31、过滤后所剩余的模型的任意两个模型中,将其中一个模型的平面包围盒的4个顶点坐标循环遍历另一个模型的顶点坐标;
B32、判断一个模型的顶点坐标的x值是否大于另一个模型的最小x值而小于该模型的最大x值;以及判断一个模型的顶点坐标的y值是否大于另一个模型的最小y值而小于该模型的最大y值,当判断结果均为是时,表示所述两个模型重叠,转向步骤B33,否则所述两个模型不重叠;
B33、分别计算比较两个模型到摄像机的距离,过滤距离摄像机远的模型。
5.根据权利要求3所述的智能3D模型的自动布局方法,其特征在于,所述步骤C具体包括:
C1、以任一模型为基准模型,根据该基准模型对应的平面包围盒的中心点划出其在预设方向下的预设范围;
C2、判断其他模型对应的平面包围盒的任一顶点是否位于所述预设范围内:若是,则记录该顶点及与其对应的模型;否则标记该顶点对应的模型在预设方向上无效,其中所述其他模型为经过过滤后所得到的模型中除去所述基准模型之外的模型;
C3、分别计算所记录的顶点到所述中心点的距离,将距离最小的顶点所对应的模型标记为基准模型的预设方向的邻居,并记下所述最小距离对应的顶点。
6. 根据权利要求5所述的智能3D模型的自动布局方法,其特征在于,所述预设方向为向左,所述步骤C1具体包括:以一模型为基准模型,从该基准模型对应的平面包围盒的中心点到其左上角的顶点引出第一射线,从该中心点到左下角的顶点引出第二射线,第一射线与第二射线之间夹角区域为预设范围。
7.根据权利要求6所述的智能3D模型的自动布局方法,其特征在于,所述判断其他模型对应的平面包围盒的任一顶点是否位于预设范围内,具体包括:
C21、从所述中心点到其他模型对应的平面包围盒的顶点引出向量;
C22、将向量与所述第一射线进行点乘得到第一数值,向量与所述第二射线进行点乘得到第二数值;
C23、当第一数值与第二数值的乘积小于或等于零时,该顶点位于预设范围内。
8.根据权利要求5所述的智能3D模型的自动布局方法,其特征在于,所述预设方向为向左或向右时,所述步骤C3之后还包括:
C4、若所记下的顶点有多个时,判断多个顶点是否属于同一平面包围盒:若是,则保留所述多个顶点中的一个顶点,将该顶点对应的模型标记为基准模型的预设方向邻居;否则转向步骤C5;
C5、比较各个顶点对应的y值,取最大y值对应的顶点,并将该顶点对应的模型标记为基准模型的左或右邻居。
9.根据权利要求5所述的智能3D模型的自动布局方法,其特征在于,
所述预设方向为向上或向下时,所述步骤C3之后还包括:
C6、若所记下的顶点有多个时,判断多个顶点是否属于同一平面包围盒:若是,则保留所述多个顶点中的一个顶点,将该顶点对应的模型标记为基准模型的预设方向邻居;否则转向步骤C7;
C7、比较各个顶点对应的x值,取最小x值对应的顶点,并将该顶点对应的模型标记为基准模型的上或下邻居。
10.一种3D模型的自动布局方法的系统,其特征在于,包括:
场景构建模块,用于构建3D场景、解析3D文件获得引擎数据,基于所述引擎数据进行渲染,其中所述引擎数据包括模型及摄像机的位置;
过滤模块,用于根据所述模型与摄像机的位置过滤所述3D场景中相对于所述摄像机无效的模型;
邻居计算模块,用于基于过滤后所保留的模型,以其中任一模型为基准,计算出在预设方向的邻居模型,并标记所述邻居模型;
布局模块,用于将所标记的模型组成布局。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310605070.5A CN103617317B (zh) | 2013-11-26 | 2013-11-26 | 智能3d模型的自动布局方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310605070.5A CN103617317B (zh) | 2013-11-26 | 2013-11-26 | 智能3d模型的自动布局方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103617317A true CN103617317A (zh) | 2014-03-05 |
CN103617317B CN103617317B (zh) | 2017-07-11 |
Family
ID=50168020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310605070.5A Expired - Fee Related CN103617317B (zh) | 2013-11-26 | 2013-11-26 | 智能3d模型的自动布局方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103617317B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133382A (zh) * | 2017-04-01 | 2017-09-05 | 湖北工业大学 | 基于机器视觉的太阳能电池残片再利用的智能排样方法 |
CN108174090A (zh) * | 2017-12-28 | 2018-06-15 | 北京天睿空间科技股份有限公司 | 基于三维空间视口信息的球机联动方法 |
CN111091477A (zh) * | 2018-10-24 | 2020-05-01 | 国网浙江省电力有限公司 | 一种变电站工程临建自动布局方法和系统 |
CN114898076A (zh) * | 2022-03-29 | 2022-08-12 | 北京城市网邻信息技术有限公司 | 模型标签的添加方法、装置、电子设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839663B1 (en) * | 1999-09-30 | 2005-01-04 | Texas Tech University | Haptic rendering of volumetric soft-bodies objects |
CN101208723A (zh) * | 2005-02-23 | 2008-06-25 | 克雷格·萨默斯 | 用于3维照相机和3维视频的自动场景建模 |
EP2006802A1 (en) * | 2007-06-19 | 2008-12-24 | Agfa HealthCare NV | Method of constructing a grey value model and/or a geometric model of an anatomic entity in a 3D digital medical image |
CN101681438A (zh) * | 2007-03-02 | 2010-03-24 | 有机运动公司 | 跟踪三维对象的系统和方法 |
CN101799937A (zh) * | 2010-03-23 | 2010-08-11 | 南京大学 | 一种采用草图创建三维模型的方法 |
WO2010121085A1 (en) * | 2009-04-16 | 2010-10-21 | Ioan Alexandru Salomie | Scalable particle interactive networks |
CN101968898A (zh) * | 2010-10-29 | 2011-02-09 | 中国科学院地理科学与资源研究所 | 一种全球三维地形显示方法 |
CN102509348A (zh) * | 2011-09-26 | 2012-06-20 | 北京航空航天大学 | 一种共享增强现实场景的真实物体多方位表示方法 |
CN102881036A (zh) * | 2012-07-30 | 2013-01-16 | 北京中科盘古科技发展有限公司 | 一种动画场景文件压缩的方法 |
CN103247076A (zh) * | 2013-05-17 | 2013-08-14 | 南京大学 | 一种基于全局优化的三维模型合成方法 |
-
2013
- 2013-11-26 CN CN201310605070.5A patent/CN103617317B/zh not_active Expired - Fee Related
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839663B1 (en) * | 1999-09-30 | 2005-01-04 | Texas Tech University | Haptic rendering of volumetric soft-bodies objects |
CN101208723A (zh) * | 2005-02-23 | 2008-06-25 | 克雷格·萨默斯 | 用于3维照相机和3维视频的自动场景建模 |
CN101681438A (zh) * | 2007-03-02 | 2010-03-24 | 有机运动公司 | 跟踪三维对象的系统和方法 |
EP2006802A1 (en) * | 2007-06-19 | 2008-12-24 | Agfa HealthCare NV | Method of constructing a grey value model and/or a geometric model of an anatomic entity in a 3D digital medical image |
WO2010121085A1 (en) * | 2009-04-16 | 2010-10-21 | Ioan Alexandru Salomie | Scalable particle interactive networks |
CN101799937A (zh) * | 2010-03-23 | 2010-08-11 | 南京大学 | 一种采用草图创建三维模型的方法 |
CN101968898A (zh) * | 2010-10-29 | 2011-02-09 | 中国科学院地理科学与资源研究所 | 一种全球三维地形显示方法 |
CN102509348A (zh) * | 2011-09-26 | 2012-06-20 | 北京航空航天大学 | 一种共享增强现实场景的真实物体多方位表示方法 |
CN102881036A (zh) * | 2012-07-30 | 2013-01-16 | 北京中科盘古科技发展有限公司 | 一种动画场景文件压缩的方法 |
CN103247076A (zh) * | 2013-05-17 | 2013-08-14 | 南京大学 | 一种基于全局优化的三维模型合成方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133382A (zh) * | 2017-04-01 | 2017-09-05 | 湖北工业大学 | 基于机器视觉的太阳能电池残片再利用的智能排样方法 |
CN107133382B (zh) * | 2017-04-01 | 2020-07-10 | 湖北工业大学 | 基于机器视觉的太阳能电池残片再利用的智能排样方法 |
CN108174090A (zh) * | 2017-12-28 | 2018-06-15 | 北京天睿空间科技股份有限公司 | 基于三维空间视口信息的球机联动方法 |
CN108174090B (zh) * | 2017-12-28 | 2020-10-16 | 北京天睿空间科技股份有限公司 | 基于三维空间视口信息的球机联动方法 |
CN111091477A (zh) * | 2018-10-24 | 2020-05-01 | 国网浙江省电力有限公司 | 一种变电站工程临建自动布局方法和系统 |
CN114898076A (zh) * | 2022-03-29 | 2022-08-12 | 北京城市网邻信息技术有限公司 | 模型标签的添加方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103617317B (zh) | 2017-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10812780B2 (en) | Image processing method and device | |
CN105069827B (zh) | 一种采用三维模型处理视频转场的方法 | |
CN112933597B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN108648269A (zh) | 三维建筑物模型的单体化方法和系统 | |
EP2051533B1 (en) | 3D image rendering apparatus and method | |
JP2004348702A (ja) | 画像処理方法、画像処理装置、および画像処理システム | |
CN106027962B (zh) | 视频监控的覆盖率计算方法及装置、布点方法及系统 | |
CN101414383B (zh) | 图像处理设备和图像处理方法 | |
EP3649621B1 (en) | 3d modelling for 3d printing of objects having zero-thickness parts | |
CN102834849A (zh) | 进行立体视图像的描绘的图像描绘装置、图像描绘方法、图像描绘程序 | |
JP2006293792A (ja) | 立体映像生成装置 | |
CN103051915B (zh) | 一种交互式立体视频关键帧的制作方法及制作装置 | |
CN106204713B (zh) | 静态合并处理方法和装置 | |
CN108280873A (zh) | 模型空间位置捕捉及热点自动生成处理系统 | |
CN106056655B (zh) | 一种可编辑的虚拟摄像机系统和方法 | |
CN103617317A (zh) | 智能3d模型的自动布局方法和系统 | |
CN103632390A (zh) | 一种利用d3d技术实现裸眼3d动画实时制作的方法 | |
CN100369062C (zh) | 三维图像的生成方法及其显示系统 | |
CN111870949A (zh) | 游戏场景中的对象处理方法、装置及电子设备 | |
KR20110088995A (ko) | 3차원 모델 안에서 감시 카메라 영상을 시각화하기 위한 방법 및 시스템, 및 기록 매체 | |
JPWO2018179253A1 (ja) | ポリゴンモデル生成装置、ポリゴンモデル生成方法及びプログラム | |
Ishikawa et al. | Interactive 3-D indoor modeler for virtualizing service fields | |
CN111773710A (zh) | 一种纹理图像处理的方法、装置、电子设备和存储介质 | |
CN110379005B (zh) | 一种基于虚拟资源管理的三维重建方法 | |
JP2023512129A (ja) | スキンアニメーションの微細詳細を推測する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170711 |