CN111986323B - 模型简化方法 - Google Patents
模型简化方法 Download PDFInfo
- Publication number
- CN111986323B CN111986323B CN202010855118.8A CN202010855118A CN111986323B CN 111986323 B CN111986323 B CN 111986323B CN 202010855118 A CN202010855118 A CN 202010855118A CN 111986323 B CN111986323 B CN 111986323B
- Authority
- CN
- China
- Prior art keywords
- model
- vertices
- representing
- vertex
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000009877 rendering Methods 0.000 claims abstract description 106
- OIGNJSKKLXVSLS-VWUMJDOOSA-N prednisolone Chemical compound O=C1C=C[C@]2(C)[C@H]3[C@@H](O)C[C@](C)([C@@](CC4)(O)C(=O)CO)[C@@H]4[C@@H]3CCC2=C1 OIGNJSKKLXVSLS-VWUMJDOOSA-N 0.000 claims description 7
- XOFYZVNMUHMLCC-ZPOLXVRWSA-N prednisone Chemical compound O=C1C=C[C@]2(C)[C@H]3C(=O)C[C@](C)([C@@](CC4)(O)C(=O)CO)[C@@H]4[C@@H]3CCC2=C1 XOFYZVNMUHMLCC-ZPOLXVRWSA-N 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 11
- 230000009467 reduction Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- 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
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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
-
- 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
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- 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
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提出一种模型简化方法。模型简化方法包括:建构一包围体以包围一模型,其中模型包括至少一基元和多个顶点;以多个顶点的每一个分别作为视点,向至少一渲染面绘制模型和包围体;判断以多个顶点中的一目前顶点作为视点所绘制在至少一渲染面的包围体是否被遮挡,以决定是否将目前顶点标记为一不可见顶点;以及在至少一基元中的一目前基元的所有顶点均被标记为不可见顶点的情况下,从模型中剔除目前基元。由此,模型可以有效地被简化。
Description
技术领域
本发明有关于一种模型简化方法。
背景技术
一般的建模工具是对物体的每个部件都进行建模,包括模型内部不可见的基元(primitive)和顶点(vertex)。当模型用于渲染绘制时,比如在3D游戏场景中,在3D应用程序中,或者在3D电影渲染绘制时,视角是有约束和限制的。一般而言,渲染画面不需要看到模型内部的部件。然而,模型内部的部件(例如模型内部的不可见的基元和不可见的顶点)由于不需要在绘制时被看到,如果也参与绘制将浪费渲染的时间和资源。如何简化模型以增加绘制的效率是亟需解决的课题。
发明内容
本发明提供一种模型简化方法,以从模型中剔除不可见基元。
本发明的模型简化方法包括:建构一包围体以包围一模型,其中模型包括至少一基元(primitive)和多个顶点(vertex);以多个顶点的每一个分别作为视点(eye-position),向至少一渲染面(rendering surface)绘制模型和包围体;判断以多个顶点中的一目前顶点作为视点所绘制在至少一渲染面的包围体是否被遮挡,以决定是否将目前顶点标记为一不可见顶点;以及在至少一基元中的一目前基元的所有顶点均被标记为不可见顶点的情况下,从模型中剔除目前基元。
基于上述,本发明的模型简化方法可以由目前顶点向渲染面绘制包围体并判断包围体是否被遮挡,以决定是否将目前顶点标记为不可见顶点。在对模型的多个顶点完成“不可见顶点”的检查后,在目前基元的所有顶点均被标记为不可见顶点的情况下,目前基元可以从模型中被剔除,由此,模型可以有效地被简化。
附图说明
图1是根据本发明的一实施例绘示一种模型简化方法的流程示意图。
图2是根据本发明的一实施例绘示的一种包围体的示意图。
图3是根据本发明的另一实施例绘示的一种包围体的示意图。
图4是根据本发明的一实施例绘示一种包围体的建构方式示意图。
图5是根据本发明的另一实施例绘示一种包围体的建构方式示意图。
图6是根据本发明的一实施例绘示的模型、包围体与渲染面的剖面示意图。
图7是根据本发明的一实施例说明图1所示模型简化方法的详细流程示意图。
图8是根据本发明的一实施例说明图6所示“向渲染面绘制模型和包围体”的操作的详细流程示意图。
图9是根据本发明的另一实施例说明图6所示“向渲染面绘制模型和包围体”的操作的详细流程示意图。
其中,附图中符号的简单说明如下:
210:模型;210a、210b:顶点;220、230:包围体;220a、220b、220c:包围面;610:渲染面;610a、610b、610c:渲染平面(渲染目标);A、B、C、D、E、F:点;o:模型中心点;S110、S120、S121、S122、130、131、132、133、S140、S810、S820、S830、S910、S920、S930:步骤。
具体实施方式
依照不同的设计需求,下述诸实施例所述的模型简化方法的实现方式可以是硬件(hardware)、固件(firmware)、软件(software,即程序)或是前述三者中的多者的组合形式。
以硬件形式而言,所述模型简化方法可以实现于集成电路(integrated circuit)上的逻辑电路。所述模型简化方法的相关操作/功能可以利用硬件描述语言(hardwaredescription languages,例如Verilog HDL或VHDL)或其他合适的编程语言来实现为硬件。举例来说,所述模型简化方法的相关操作/功能可以被实现于一或多个控制器、微控制器、微处理器、专用集成电路(Application-specific integrated circuit,ASIC)、数字信号处理器(digital signal processor,DSP)、现场可编程逻辑门阵列(Field ProgrammableGate Array,FPGA)及/或其他处理单元中的各种逻辑区块、模块和电路。
以软件形式以及(或是)固件形式而言,所述模型简化方法的相关操作/功能可以被实现为编程码(programming codes)。例如,利用一般的编程语言(programminglanguages,例如C、C++或组合语言)或其他合适的编程语言来实现所述模型简化方法的相关操作/功能。所述编程码可以被记录/存放在记录介质中。在一些实施例中,所述记录介质例如包括只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)以及(或是)储存装置。所述储存装置包括硬盘(hard disk drive,HDD)、固态硬盘(Solid-state drive,SSD)或是其他储存装置。在另一些实施例中,所述记录介质可以包括“非瞬态计算机可读取介质(non-transitory computer readable medium)”。举例来说,带(tape)、盘(disk)、卡(card)、半导体存储器、可程序设计的逻辑电路等可以被使用来实现所述非瞬态计算机可读取介质。计算机、中央处理器(Central Processing Unit,CPU)、控制器、微控制器或微处理器可以从所述记录介质中读取并执行所述编程码,从而实现所述模型简化方法的相关操作/功能。而且,所述编程码也可经由任意传输介质(通信网络或广播电波等)而提供给所述计算机(或CPU)。所述通信网络例如是因特网(Internet)、有线通信(wired communication)网络、无线通信(wireless communication)网络或其它通信介质。
一般而言,一个模型包括至少一个基元(primitive)和多个顶点(vertex)。当所述模型用于渲染绘制时,所述模型可能有一或多个基元是不可见的。所述不可见的基元是指,一个基元虽然会参与渲染绘制的处理过程,但是因为被遮挡而不会出现在渲染结果(经绘制的模型图像)中。可想而知,所述不可见的基元将浪费渲染的时间和资源。
图1是根据本发明的一实施例绘示一种模型简化方法的流程图。图1所示方法可以对所述模型进行简化操作,以从所述模型中剔除不可见基元。图1所示步骤S110会建构包围体,以包围所述模型。所述包围体可以依照设计需求来设定。
举例来说,图2是根据本发明的一实施例绘示的一种模型和包围体的示意图。图2所示模型210可以是欲简化的任何立体模型(三维模型)。在本实施例中,模型210可以包括至少一个基元和多个顶点。举例来说,基元可以是三角形、线或是其他几何形状。基元可以包括多个顶点。举例来说,一个三角形基元可以包括三个顶点,而一个线基元可以包括两个顶点。本发明不限制模型、基元和顶点的种类。本实施例所述模型简化方法可以被应用于任何的模型。请参照图1与图2,步骤S110可以建构包围体220,以完整包围模型210。图2所示包围体220是一个六面体。无论如何,本发明所述包围体的实现方式不应受限于图2所示包围体220。
举例来说,图3是根据本发明的另一实施例绘示的一种包围体的示意图。图3所示模型210可以参照图2所示模型210的相关说明,故不再赘述。请参照图1与图3,步骤S110可以建构包围体230,以包围模型210。图3所示包围体230是一个圆柱体。在其他实施例中,用来包围模型210的包围体的几何形状可以包括三角柱体、正方体、长方体、四面体、菱柱体、棱锥体、圆锥体、圆柱体或是其他几何体。
包围体220(或是230)的建构方式将说明于图4或图5所示实施例。无论如何,本发明所述包围体的建构方式不应受限于图4或图5所示实施方式。在其他实施例中,所述包围体的建构方式可以依照设计需求来决定。
图4是根据本发明的一实施例绘示一种包围体220的建构方式示意图。请参照图1与图4,步骤S110可以建构包围体220,以包围模型210。在本实施例中,步骤S110(建构包围体220的操作)可以包括:计算等式1、等式2、等式3、等式4、等式5与等式6以获得边界坐标Ax、By、Cz、Dx、Ey以及Fz,以及依照边界坐标Ax、By、Cz、Dx、Ey以及Fz去建构所述包围体220。边界坐标Ax与Dx可以是在图4所示X轴上的A点与D点的X轴坐标。边界坐标By与Ey可以是在图4所示Y轴上的B点与E点的Y轴坐标。边界坐标Cz与Fz可以是在图4所示Z轴上的C点与F点的Z轴坐标。图4所示A点、B点、C点、D点、E点和F点可以定义包围体220的六个面。其中,xv1,xv2…xvn表示模型210的多个顶点的X轴坐标,yv1,yv2…yvn表示模型210的多个顶点的Y轴坐标,zv1,zv2…zvn表示模型210的多个顶点的Z轴坐标,以及δA、δB、δC、δD、δE与δF表示大于或等于0的六个实数。实数δA、δB、δC、δD、δE与δF的每一个可以依照设计需求来决定。
Ax=max(xv1,xv2…xvn)+δA 等式1
By=max(yv1,yv2…yvn)+δB 等式2
Cz=max(zv1,zv2…zvn)+δC 等式3
Dx=min(xv1,xv2…xvn)-δD 等式4
Ey=min(yv1,yv2…yvn)-δE 等式5
Fz=min(zv1,zv2…zvn)-δF 等式6
其中,n为模型210的顶点总数,δA、δB和δC分别为在X轴、Y轴与Z轴的正方向上增加的偏移值,而δD、δE和δF分别为在X轴、Y轴与Z轴的负方向上减少的偏移值。在图4所示的例子中,建构包围体220的操作(步骤S110)可以在模型210的模型空间(model space)中建立包围体220。亦即,包围体220的A点、B点、C点、D点、E点和F点可以使用与模型210相同的坐标系空间。
在计算出边界坐标Ax、By、Cz、Dx、Ey以及Fz之后,步骤S110可以依照边界坐标Ax、By、Cz、Dx、Ey以及Fz建构长方体包围体220。举例来说,边界坐标Ax与Dx可以决定X轴的两个正交平面(A点的正交平面与D点的正交平面),边界坐标By与Ey可以决定Y轴的两个正交平面(B点的正交平面与E点的正交平面),边界坐标Cz与Fz可以决定Z轴的两个正交平面(C点的正交平面与F点的正交平面)。也就是说,图4所示实施例的建构包围体220的操作可以不需要进行坐标空间的转换,直接根据模型210的模型空间建构包围体220。
图5是根据本发明的另一实施例绘示一种包围体220的建构方式示意图。请参照图1与图5,步骤S110可以建构包围体220,以包围模型210。在本实施例中,步骤S110(建构包围体220的操作)可以包括:计算等式7、等式8与等式9以获得坐标值xd、yd与zd,以及计算等式10以获得缩放系数fd。其中,xv1,xv2…xvn表示模型210的多个顶点在模型坐标空间中的X轴坐标,yv1,yv2…yvn表示模型210的多个顶点在模型坐标空间中的Y轴坐标,以及zv1,zv2…zvn表示模型210的多个顶点在模型坐标空间中的Z轴坐标。
xd=max(xv1,xv2…xvn)-min(xv1,xv2…xvn) 等式7
yd=max(yv1,yv2…yvn)-min(yv1,yv2…yvn) 等式8
zd=max(zv1,zv2…zvn)-min(zv1,zv2…zvn) 等式9
fd=max(xd,yd,zd)/2 等式10
步骤S110可以将模型210的多个顶点从所述模型坐标空间平移变换到以模型210的中心(即图5所示o点)为原点的新坐标空间。然后,步骤S110可以使用缩放系数fd去计算等式11、等式12与等式13,以获得在所述新坐标空间中的经缩放X轴坐标xn、经缩放Y轴坐标yn与经缩放Z轴坐标zn。其中,xs表示模型210的多个顶点的任一个顶点在新坐标空间中的原X轴坐标,xn表示模型210的多个顶点的任一个顶点在新坐标空间中的经缩放X轴坐标,ys表示模型210的多个顶点的任一个顶点在新坐标空间中的原Y轴坐标,yn表示模型210的多个顶点的任一个顶点在新坐标空间中的经缩放Y轴坐标,zs表示模型210的多个顶点的任一个顶点在新坐标空间中的原Z轴坐标,以及zn表示模型210的多个顶点的任一个顶点在新坐标空间中的经缩放Z轴坐标。
xn=xs/fd 等式11
yn=ys/fd 等式12
zn=zs/fd 等式13
接下来,步骤S110可以计算等式14、等式15、等式16、等式17、等式18与等式19,以获得边界坐标Ax、By、Cz、Dx、Ey以及Fz。最后,步骤S110可以依照边界坐标Ax、By、Cz、Dx、Ey以及Fz去建构包围体220。其中,xn1,xn2…xnn表示模型210的多个顶点在所述新坐标空间中的所述经缩放X轴坐标,yn1,yn2…ynn表示模型210的多个顶点在所述新坐标空间中的所述经缩放Y轴坐标,zn1,zn2…znn表示模型210的多个顶点在所述新坐标空间中的所述经缩放Z轴坐标,以及δA、δB、δC、δD、δE与δF表示大于或等于0的六个实数。实数δA、δB、δC、δD、δE与δF的每一个可以依照设计需求来决定。
Ax=max(xn1,xn2…xnn)+δA 等式14
By=max(yn1,yn2…ynn)+δB 等式15
Cz=max(zn1,zn2…znn)+δC 等式16
Dx=min(xn1,xn2…xnn)-δD 等式17
Ey=min(yn1,yn2…ynn)-δE 等式18
Fz=min(zn1,zn2…znn)-δF 等式19
其中,n为模型210的顶点总数。也就是说,图5所示实施例所采用的建构包围体220的操作可以将模型210的多个顶点从模型空间平移变换到以模型210的中心(即图5中的o点)为原点的新坐标空间,然后在所述新坐标空间中建构包围体220。在另一实施例中,步骤S110的操作也可以选择其他任意位置(依照设计需求来决定位置)作为新坐标空间的原点,并将模型210的多个顶点从模型空间平移变换到新坐标空间。本发明不限制新坐标空间的原点的选择方式。
在将模型210的多个顶点平移变换到新坐标空间之后,步骤S110还可以使用缩放系数fd去对新坐标空间中的模型210进行缩放。通过平移转换和缩放的操作,步骤S110可以比较容易建构出包围体220。
请参照图1。步骤S120以模型210的多个顶点的每一个分别作为视点,向至少一渲染面绘制模型和包围体。步骤S130可以判断以多个顶点中的一目前顶点作为视点所绘制在至少一渲染面的包围体是否被遮挡,以决定是否将目前顶点标记为一不可见顶点。
图6是根据本发明的一实施例绘示的模型210、包围体220与渲染面610的剖面示意图。图6所示模型210与包围体220可以参照图2所示模型210与包围体220、图3所示模型210与包围体230、图4所示模型210与包围体220以及(或)图5所示模型210与包围体220的相关说明,故不再赘述。图6所示模型210包括顶点210a与顶点210b。其中顶点210a位于模型210的内部,而顶点210b位于模型210的外表面。在模型210外的任何视点去观看模型210时,顶点210a为不可见而顶点210b为可见。因此,顶点210a可称为不可见顶点。
在图6所示情境中,模型210被放置于地面上,因此模型210向地面方向不需要渲染绘制。基于此情境,包围体220可以由五个包围面所构成。图6是剖面示意图,因此绘示包围体220的其中三个包围面220a、220b与220c于图6中。同理可推,图6绘示渲染面610的三个渲染平面(渲染目标)610a、610b与610c。如图6所示,渲染面610可以包围模型210与包围体220。
请参照图1与图6。步骤S120与步骤S130可以对模型210的顶点210b进行“不可见顶点”的检查操作。举例来说,步骤S120可以使用模型210的顶点210b作为视点,分别向渲染面610的渲染平面610a、610b与610c绘制模型210,然后分别向渲染平面610a、610b与610c绘制包围体220的包围面220a、220b与220c。以顶点210b作为视点所绘制在渲染平面610c的包围面220c(包围体220)没有被遮挡,因此步骤S130可以判断顶点210b是可见顶点。
步骤S120与步骤S130还可以对模型210的顶点210a进行“不可见顶点”的检查操作。举例来说,步骤S120可以使用模型210的顶点210a作为视点,分别向渲染面610的渲染平面610a、610b与610c绘制模型210,然后分别向渲染平面610a、610b与610c绘制包围体220的包围面220a、220b与220c。在以顶点210a作为视点所绘制的渲染平面610a中,包围面220a(包围体220)被模型210完全遮挡。在以顶点210a作为视点所绘制的渲染平面610b中,包围面220b(包围体220)被模型210完全遮挡。在以顶点210a作为视点所绘制的渲染平面610c中,包围面220c(包围体220)被模型210完全遮挡。因此,步骤S130可以判断以多个顶点中的目前顶点作为视点所绘制在渲染面610的包围体220是否被完全遮挡。当以顶点210a作为视点所绘制在渲染面610的包围体220完全被遮挡时,步骤S130可以判断顶点210a是不可见顶点,并且将顶点210a标记为“不可见顶点”。
依此类推,步骤S130可以对模型210的每一个顶点进行上述的“不可见顶点”的检查操作。因此,模型简化方法可以由目前顶点向渲染面绘制包围体并判断包围体是否被遮挡,以决定是否将目前顶点标记为不可见顶点。请参照图1。在至少一基元中的一目前基元的所有顶点均被标记为不可见顶点的情况下,步骤S140可以从模型中剔除所述目前基元。由此,模型210可以有效地被简化。
图7是根据本发明的一实施例说明图1所示模型简化方法的详细流程示意图。图7所示步骤S110、S120、S130与S140可以参照图1所示步骤S110、S120、S130与S140的相关说明。在图7所示实施例中,步骤S120包括步骤S121与S122,而步骤S130包括步骤S131、S132与S133。
请参照图6与图7。步骤S121可以从模型210的多个顶点中选择尚未处理的一个顶点作为视点。所述“处理”是指,步骤S121、S122、S131、S132与S133的“不可见顶点”的检查操作。步骤S121所选择的顶点被称为“目前顶点”。步骤S122可以将目前顶点作为视点,向渲染面610绘制模型210和包围体220。步骤S131可以进行遮挡查询/检查,亦即判断被绘制在渲染面610的包围体220是否完全地被模型210遮挡。当绘制在渲染面610的包围体220没有被完全遮挡时(步骤S131的判断结果为“否”),步骤S132会被略过而直接进行步骤S133。
当绘制在渲染面610的包围体220被完全遮挡时(步骤S131的判断结果为“是”),步骤S132会被进行。步骤S132可以将目前顶点标记为“不可见顶点”。步骤S133可以检查/判断模型210的这些顶点中是否还有尚未处理的顶点。当模型210还有尚未处理的顶点时(步骤S133的判断结果为“是”),步骤S121、S122与S131会被再一次执行。
当模型210的这些顶点全部都被处理过时(步骤S133的判断结果为“否”),步骤S140可以被进行。举例来说,当目前基元的所有顶点均被标记为“不可见顶点”时,步骤S140可以判断所述目前基元为一个不可见基元。当所述目前基元被判断为不可见基元时,步骤S140可以从模型210中删除所述目前基元。此外,步骤S140还可以检查模型210的所有顶点。若模型210的这些顶点中的一个顶点未被任何基元使用,则这个顶点可以称为“未使用顶点”。因为“未使用顶点”未被任何基元使用,所以步骤S140还可以从模型210删除所述未使用顶点。
图8是根据本发明的一实施例说明图6所示“向渲染面绘制模型和包围体”的操作的详细流程示意图。请参照图6与图8,步骤S122包括步骤S810、S820与S830。步骤S810可以设置包围体220的多个二维渲染平面中的任一者为渲染目标。步骤S820可以用步骤S121所选的目前顶点作为视点,向渲染目标绘制模型210。步骤S830可以用步骤S121所选的目前顶点作为视点,向渲染目标绘制包围体220,并判断被绘制在渲染目标的包围体220是否被遮挡。当被绘制在这些二维渲染平面(渲染目标)的包围体220完全被遮挡时(步骤S131的判断结果为“是”),步骤S132可以将目前顶点被标记为“不可见顶点”。
具体来说,假设包围体220包括六个互为正交的二维渲染平面p1~p6。步骤S810可以从这些二维渲染平面p1~p6中选择一个二维渲染平面(例如二维渲染平面p1)作为目前渲染目标。接着,步骤S820可以将用步骤S121所选的目前顶点作为视点,以向目前渲染目标绘制模型210。步骤S830可以将用步骤S121所选的目前顶点作为视点,以向目前渲染目标绘制包围体220,并判断被绘制在目前渲染目标(即二维渲染平面p1)的包围体220是否完全被遮挡。步骤S810至S830可以再一次被进行,以从这些二维渲染平面p1~p6中选择下一个二维渲染平面(例如二维渲染平面p2)作为目前渲染目标,然后向所述目前渲染目标绘制模型210与包围体220,并判断被绘制在目前渲染目标(即二维渲染平面p2)的包围体220是否完全被遮挡。依此类推,步骤S810至S830可以多次被进行,以分别向其余二维渲染平面p3~p6绘制模型210与包围体220,并判断被绘制在二维渲染平面p3~p6的包围体220是否完全被遮挡。当被绘制在二维渲染平面p1~p6的包围体220完全被遮挡时,步骤S121所选的目前顶点可以被标记为“不可见顶点”。在一实施例中,可以是每次都对所有的二维渲染平面绘制模型210与包围体220以判断被绘制的包围体220是否完全被遮挡。在另一实施例中,也可以是当绘制在其中一个二维渲染平面的包围体220被判断为没有被遮挡时,即判断步骤S121所选的目前顶点是可见顶点,而不继续对剩下的二维渲染平面绘制模型210与包围体220。例如假设绘制在二维渲染平面p2的包围体220被判断为没有被遮挡时,即可判断目前顶点是可见顶点,而不需要继续对剩下的二维渲染平面p3~p6绘制模型210与包围体220。
图9是根据本发明的另一实施例说明图6所示“向渲染面绘制模型和包围体”的操作的详细流程示意图。在图9所示实施例中,包围体220可以是一个立方体。请参照图6与图9,步骤S122包括步骤S910、S920与S930。步骤S910可以设置一个立方体作为渲染目标,其中所述立方体包围模型210和包围体220。步骤S920可以用步骤S121所选的目前顶点作为视点,向渲染目标绘制模型220。步骤S930可以用步骤S121所选的目前顶点作为视点,向渲染目标绘制包围体220,并判断被绘制在渲染目标的包围体220是否被遮挡。当被绘制在渲染目标(立方体)的包围体220完全被遮挡时(步骤S131的判断结果为“是”),步骤S132可以将目前顶点被标记为“不可见顶点”。
综上所述,上述诸实施例所述的模型简化方法可以由目前顶点向渲染面绘制包围体220,并且判断包围体220(或230)是否被模型210遮挡,以决定是否将目前顶点标记为“不可见顶点”。在对模型210的多个顶点完成“不可见顶点”的检查后,所述的模型简化方法可以检查模型210的多个基元的每一个。在目前基元的所有顶点均被标记为“不可见顶点”的情况下,所述目前基元可以被判定为“不可见基元”,而所述的模型简化方法可以从模型210中剔除所述目前基元。除此之外,在对模型210的多个基元完成“不可见基元”的检查后,所述的模型简化方法还可以检查模型210的所有顶点。若模型210的这些顶点中的一个顶点未被任何基元使用,则这个顶点可以称为“未使用顶点”。所述模型简化方法可以从模型210删除所述未使用顶点,使模型能够更进一步地被简化。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
Claims (9)
1.一种模型简化方法,其特征在于,包括:
建构包围体以包围模型,其中所述模型包括至少一基元和多个顶点;
以所述多个顶点的每一个分别作为视点,向至少一渲染面绘制所述模型和所述包围体;
判断以所述多个顶点中的目前顶点作为视点所绘制在所述至少一渲染面的所述包围体是否被以所述目前顶点作为视点所绘制在所述至少一渲染面的所述模型遮挡,以决定是否将所述目前顶点标记为不可见顶点;以及
在所述至少一基元中的目前基元的所有顶点均被标记为所述不可见顶点的情况下,从所述模型中剔除所述目前基元。
2.根据权利要求1所述的模型简化方法,其中所述至少一渲染面包括多个渲染平面,而所述决定是否将所述目前顶点标记为所述不可见顶点的操作包括:
当以所述目前顶点作为视点所绘制在所述多个渲染平面的所述包围体完全被以所述目前顶点作为视点所绘制在所述多个渲染平面的所述模型遮挡时,标记所述目前顶点为所述不可见顶点。
3.根据权利要求1所述的模型简化方法,其中所述从所述模型中剔除所述目前基元的操作包括:
当所述目前基元的所有顶点均被标记为所述不可见顶点时,判断所述目前基元为不可见基元;以及
当所述目前基元被判断为所述不可见基元时,从所述模型中删除所述目前基元。
4.根据权利要求1所述的模型简化方法,还包括:
若所述多个顶点中的未使用顶点未被任何基元使用,则从所述模型删除所述未使用顶点。
5.根据权利要求1所述的模型简化方法,其中所述包围体的几何形状包括三角柱体、正方体、长方体、四面体、菱柱体、棱锥体、圆锥体或圆柱体。
6.根据权利要求1所述的模型简化方法,其中所述建构包围体的操作包括:
计算Ax=max(xv1,xv2…xvn)+δA,其中xv1,xv2…xvn表示所述多个顶点的X轴坐标,而δA表示大于或等于0的实数;
计算By=max(yv1,yv2…yvn)+δB,其中yv1,yv2…yvn表示所述多个顶点的Y轴坐标,而δB表示大于或等于0的实数;
计算Cz=max(zv1,zv2…zvn)+δC,其中zv1,zv2…zvn表示所述多个顶点的Z轴坐标,而δC表示大于或等于0的实数;
计算Dx=min(xv1,xv2…xvn)-δD,其中δD表示大于或等于0的实数;
计算Ey=min(yv1,yv2…yvn)-δE,其中δE表示大于或等于0的实数;
计算Fz=min(zv1,zv2…zvn)-δF,其中δF表示大于或等于0的实数;以及
依照Ax、By、Cz、Dx、Ey以及Fz建构所述包围体。
7.根据权利要求1所述的模型简化方法,其中所述建构包围体的操作包括:
计算xd=max(xv1,xv2…xvn)-min(xv1,xv2…xvn),其中xv1,xv2…xvn表示所述多个顶点在模型坐标空间中的X轴坐标;
计算yd=max(yv1,yv2…yvn)-min(yv1,yv2…yvn),其中yv1,yv2…yvn表示所述多个顶点在所述模型坐标空间中的Y轴坐标;
计算zd=max(zv1,zv2…zvn)-min(zv1,zv2…zvn),其中zv1,zv2…zvn表示所述多个顶点在所述模型坐标空间中的Z轴坐标;
计算fd=max(xd,yd,zd)/2,其中fd表示缩放系数;
将所述模型的所述多个顶点从所述模型坐标空间平移变换到以所述模型的中心为原点的新坐标空间;
计算xn=xs/fd、yn=ys/fd与zn=zs/fd,其中xs表示所述多个顶点的任一个顶点在所述新坐标空间中的原X轴坐标,xn表示所述多个顶点的任一个顶点在所述新坐标空间中的经缩放X轴坐标,ys表示所述多个顶点的任一个顶点在所述新坐标空间中的原Y轴坐标,yn表示所述多个顶点的任一个顶点在所述新坐标空间中的经缩放Y轴坐标,zs表示所述多个顶点的任一个顶点在所述新坐标空间中的原Z轴坐标,以及zn表示所述多个顶点的任一个顶点在所述新坐标空间中的经缩放Z轴坐标;
计算Ax=max(xn1,xn2…xnn)+δA,其中xn1,xn2…xnn表示所述多个顶点在所述新坐标空间中的所述经缩放X轴坐标,而δA表示大于或等于0的实数;
计算By=max(yn1,yn2…ynn)+δB,其中yn1,yn2…ynn表示所述多个顶点在所述新坐标空间中的所述经缩放Y轴坐标,而δB表示大于或等于0的实数;
计算Cz=max(zn1,zn2…znn)+δC,其中zn1,zn2…znn表示所述多个顶点在所述新坐标空间中的所述经缩放Z轴坐标,而δC表示大于或等于0的实数;
计算Dx=min(xn1,xn2…xnn)-δD,其中δD表示大于或等于0的实数;
计算Ey=min(yn1,yn2…ynn)-δE,其中δE表示大于或等于0的实数;
计算Fz=min(zn1,zn2…znn)-δF,其中δF表示大于或等于0的实数;以及
依照Ax、By、Cz、Dx、Ey以及Fz建构所述包围体。
8.根据权利要求1所述的模型简化方法,其中所述绘制和所述判断的操作包括:
设置多个二维渲染平面中的任一者为渲染目标;
以所述目前顶点作为视点,向所述渲染目标绘制所述模型;以及
以所述目前顶点作为视点,向所述渲染目标绘制所述包围体,并判断被绘制在所述渲染目标的所述包围体是否被向所述渲染目标绘制的所述模型遮挡;
其中当被绘制在所述多个二维渲染平面的所述包围体完全被向所述渲染目标绘制的所述模型遮挡时,所述目前顶点被标记为所述不可见顶点。
9.根据权利要求1所述的模型简化方法,其中所述绘制和所述判断的操作包括:
设置立方体为渲染目标,其中所述立方体包围所述模型和所述包围体;
以所述目前顶点作为视点,向所述渲染目标绘制所述模型;以及
以所述目前顶点作为视点,向所述渲染目标绘制所述包围体,并判断被绘制在所述渲染目标的所述包围体是否被向所述渲染目标绘制的所述模型遮挡;
其中当被绘制在所述渲染目标的所述包围体完全被向所述渲染目标绘制的所述模型遮挡时,所述目前顶点被标记为所述不可见顶点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010855118.8A CN111986323B (zh) | 2020-08-24 | 2020-08-24 | 模型简化方法 |
US17/023,386 US11282272B2 (en) | 2020-08-24 | 2020-09-17 | Model simplification method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010855118.8A CN111986323B (zh) | 2020-08-24 | 2020-08-24 | 模型简化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111986323A CN111986323A (zh) | 2020-11-24 |
CN111986323B true CN111986323B (zh) | 2024-03-22 |
Family
ID=73443934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010855118.8A Active CN111986323B (zh) | 2020-08-24 | 2020-08-24 | 模型简化方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11282272B2 (zh) |
CN (1) | CN111986323B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574360B1 (en) * | 1999-07-23 | 2003-06-03 | International Business Machines Corp. | Accelerated occlusion culling using directional discretized occluders and system therefore |
CN107248190A (zh) * | 2017-05-11 | 2017-10-13 | 珠海金山网络游戏科技有限公司 | 一种三维游戏引擎的场景图设计方法及系统 |
CN110368694A (zh) * | 2019-08-22 | 2019-10-25 | 网易(杭州)网络有限公司 | 游戏场景的数据处理方法、装置、设备及可读存储介质 |
CN110443893A (zh) * | 2019-08-02 | 2019-11-12 | 广联达科技股份有限公司 | 大规模建筑场景渲染加速方法、系统、装置和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6897863B2 (en) * | 2001-11-30 | 2005-05-24 | Caterpillar Inc | System and method for hidden object removal |
US7646384B2 (en) * | 2005-03-31 | 2010-01-12 | Siemens Product Lifecycle Management Software Inc. | System and method to determine a simplified representation of a model |
TWI344622B (en) * | 2007-06-29 | 2011-07-01 | Via Tech Inc | Method and apparatus for rendering computer graphics primitive |
US9035944B2 (en) * | 2010-08-06 | 2015-05-19 | Intergraph Corporation | 3-D model view manipulation apparatus |
US8884949B1 (en) * | 2011-06-06 | 2014-11-11 | Thibault Lambert | Method and system for real time rendering of objects from a low resolution depth camera |
US9928645B2 (en) * | 2015-04-17 | 2018-03-27 | Microsoft Technology Licensing, Llc | Raster-based mesh decimation |
-
2020
- 2020-08-24 CN CN202010855118.8A patent/CN111986323B/zh active Active
- 2020-09-17 US US17/023,386 patent/US11282272B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574360B1 (en) * | 1999-07-23 | 2003-06-03 | International Business Machines Corp. | Accelerated occlusion culling using directional discretized occluders and system therefore |
CN107248190A (zh) * | 2017-05-11 | 2017-10-13 | 珠海金山网络游戏科技有限公司 | 一种三维游戏引擎的场景图设计方法及系统 |
CN110443893A (zh) * | 2019-08-02 | 2019-11-12 | 广联达科技股份有限公司 | 大规模建筑场景渲染加速方法、系统、装置和存储介质 |
CN110368694A (zh) * | 2019-08-22 | 2019-10-25 | 网易(杭州)网络有限公司 | 游戏场景的数据处理方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11282272B2 (en) | 2022-03-22 |
CN111986323A (zh) | 2020-11-24 |
US20220058864A1 (en) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6952204B2 (en) | 3D computer modelling apparatus | |
CN106780709B (zh) | 一种确定全局光照信息的方法及装置 | |
WO2012037863A1 (zh) | 三维模型数据化简、渐进传输方法及装置 | |
US11107278B2 (en) | Polygon model generating apparatus, polygon model generation method, and program | |
JP2018106712A (ja) | 二次曲面の高速レンダリング及びその輪郭の印付け | |
CN109410213A (zh) | 基于包围盒的多边形图元裁剪方法、计算机可读存储介质、电子设备 | |
US20170249778A1 (en) | Rendering the global illumination of a 3d scene | |
KR20110016938A (ko) | 기하 셰이더를 사용하는 테셀레이션 엔진을 위한 시스템, 방법, 및 컴퓨터 프로그램 제품 | |
JP2007242022A (ja) | 衝突感知装置及び方法 | |
CN113724401A (zh) | 一种三维模型切割方法、装置、计算机设备和存储介质 | |
JP2023538127A (ja) | 加速レイトレーシングのシステムおよび方法 | |
WO2019012632A1 (ja) | 認識処理装置、認識処理方法及びプログラム | |
JP2023072019A (ja) | 非同期動作による加速レイトレーシング及び光線変換のためのシステム及び方法 | |
JP2006146338A (ja) | エンタテインメント装置、オブジェクト表示装置、オブジェクト表示方法、プログラム、およびキャラクタ表示方法 | |
CN111986323B (zh) | 模型简化方法 | |
US20100158388A1 (en) | Hardware accelerated silhouette detection | |
CN103177474A (zh) | 三维模型的邻域点坐标确定方法及装置、构建方法及装置 | |
US20220392146A1 (en) | Graphics processing | |
CN115953290A (zh) | 基于gpu光栅器的场景体素化方法 | |
CN113506375A (zh) | 一种根据地图数据增加场景二维图像深度信息的处理方法 | |
JP4320577B2 (ja) | 3次元モデルの生成方法および装置並びにコンピュータプログラム | |
CN114974042B (zh) | 一种使投影投射到物体表面增强现实效果的方法及系统 | |
CN116721187B (zh) | 基于场景切割的动画动态加卸载方法、装置、设备及介质 | |
US10297075B2 (en) | Method of processing image data | |
JP2010244368A (ja) | 構成部品データ簡略化装置、構成部品データ簡略化方法および構成部品データ簡略化プログラム |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210210 Address after: 200131 3rd floor, building 2, No. 200, zhangheng Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai Applicant after: Gryfield Intelligent Technology Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203 Applicant before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |