CN116228949A - 三维模型处理方法、装置及存储介质 - Google Patents
三维模型处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN116228949A CN116228949A CN202310215412.6A CN202310215412A CN116228949A CN 116228949 A CN116228949 A CN 116228949A CN 202310215412 A CN202310215412 A CN 202310215412A CN 116228949 A CN116228949 A CN 116228949A
- Authority
- CN
- China
- Prior art keywords
- cutting tool
- dimensional model
- point
- target
- tool
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000005520 cutting process Methods 0.000 claims abstract description 187
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000009877 rendering Methods 0.000 claims abstract description 36
- 239000012634 fragment Substances 0.000 claims abstract description 23
- 230000001960 triggered effect Effects 0.000 claims abstract description 12
- 230000004044 response Effects 0.000 claims description 24
- 230000000694 effects Effects 0.000 abstract description 8
- 238000004590 computer program Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000005266 casting Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本公开实施例公开了一种三维模型处理方法、装置及存储介质,其中,方法包括:响应于用户触发的裁切工具生成操作,生成裁切工具的参数信息;基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系;基于所述目标三维模型中任意一点与所述裁切工具的位置关系,执行所述目标三维模型的渲染操作,所述渲染操作为渲染所述位置关系为不在所述裁切工具内的点,放弃渲染所述位置关系为在所述裁切工具内的点。本公开实施例可以不真实修改、裁切三维模型的网格,只对不需要输出的像素点进行隐藏,即实现为用户呈现良好的三维模型画面效果。
Description
技术领域
本公开涉及三维纹理和图像处理技术领域,尤其涉及一种三维模型处理方法、装置及存储介质。
背景技术
目前,随着虚拟现实(Virtual Reality,简称为VR)场景的普及,越来越多的三维重建设备被推出和使用,但是受限于设备精度、数据采集方法、三维重建算法等,所构建的三维模型可能存在杂乱的边角。相关技术中,为了向用户展示良好的三维模型,通常需要用户使用一个本地三维动画制作和渲染软件来修剪三维模型中存在的杂乱的边角,但是本地三维动画制作和渲染软件存在体积大、无法做到多人协同操作、成本高等问题,导致生成三维模型的成本高,耗时长。
发明内容
本公开实施例所要解决的一个技术问题是:提供一种三维模型处理方法、装置及存储介质。
根据本公开实施例的一个方面,提供一种三维模型处理方法,应用于支持WebGL的浏览器客户端,所述方法包括:
响应于用户触发的裁切工具生成操作,生成裁切工具的参数信息;
基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系;
基于所述目标三维模型中任意一点与所述裁切工具的位置关系,执行所述目标三维模型的渲染操作,所述渲染操作为渲染所述位置关系为不在所述裁切工具内的点,放弃渲染所述位置关系为在所述裁切工具内的点。
在本公开一实施例中,所述裁切工具为盒子裁切工具时,所述生成裁切工具的参数信息,包括:
生成所述盒子裁切工具的六个面的平面方程,以及所述盒子裁切工具的尺寸。
在本公开又一实施例中,所述基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系,包括:
根据所述六个面的平面方程,在片元着色器中计算所述目标三维模型中任意一点与所述六个面中任意一个面的距离;
响应于与所述六个面中任意一个面的距离均小于所述盒子裁切工具的尺寸,判定所述位置关系为在所述裁切工具内;
响应于与所述六个面中任意一个面的距离不都小于所述盒子裁切工具的尺寸,判定所述位置关系为不在所述裁切工具内。
在本公开又一实施例中,所述方法还包括:
在顶点着色器中生成所述目标三维模型中任意一点的空间坐标参数;
所述根据所述六个面的平面方程,在片元着色器中计算所述目标三维模型中任意一点与所述六个面中任意一个面的距离,包括:
基于所述目标三维模型中任意一点的空间坐标参数和六个面的平面方程,计算所述任意一点与所述六个面中任意一个面的距离。
在本公开又一实施例中,所述裁切工具为套索工具时,所述生成裁切工具的参数信息,包括:
生成所述套索工具的任意一个线段的两个端点的空间坐标。
在本公开又一实施例中,所述基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系,包括:
从所述目标三维模型中任意一点向一个方向发送射线;
统计从所述目标三维模型中任意一点向所述一个方向发送的射线与所述套索工具的交点的数目;
响应于所述数目为奇数,判定所述位置关系为在所述裁切工具内;
响应于所述数目为奇数,判定所述位置关系为不在所述裁切工具内。
根据本公开实施例的又一方面,提供一种三维模型处理装置,应用于支持WebGL的浏览器客户端,所述装置包括:
工具参数生成模块,用于响应于用户触发的裁切工具生成操作,生成裁切工具的参数信息;
计算模块,用于基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系;
渲染模块,用于基于所述目标三维模型中任意一点与所述裁切工具的位置关系,执行所述目标三维模型的渲染操作,所述渲染操作为渲染所述位置关系为不在所述裁切工具内的点,放弃渲染所述位置关系为在所述裁切工具内的点。
在本公开一实施例中,所述裁切工具为盒子裁切工具时,所述工具参数生成模块,用于生成所述盒子裁切工具的六个面的平面方程,以及所述盒子裁切工具的尺寸。
在本公开又一实施例中,所述计算模块包括:
距离计算子模块,用于根据所述六个面的平面方程,在片元着色器中计算所述目标三维模型中任意一点与所述六个面中任意一个面的距离;
第一判定子模块,用于响应于与所述六个面中任意一个面的距离均小于所述盒子裁切工具的尺寸,判定所述位置关系为在所述裁切工具内;
第二判定子模块,用于响应于与所述六个面中任意一个面的距离不都小于所述盒子裁切工具的尺寸,判定所述位置关系为不在所述裁切工具内。
在本公开又一实施例中,所述裁切工具为套索工具时,所述工具参数生成模块,用于生成所述套索工具的任意一个线段的两个端点的空间坐标。
在本公开又一实施例中,所述计算模块包括:
射线生成子模块,用于从所述目标三维模型中任意一点向一个方向发送射线;
统计子模块,用于统计从所述目标三维模型中任意一点向所述一个方向发送的射线与所述套索工具的交点的数目;
第三判定子模块,用于响应于所述数目为奇数,判定所述位置关系为在所述裁切工具内;
第四判定子模块,用于响应于所述数目为奇数,判定所述位置关系为不在所述裁切工具内。
根据本公开实施例的再一方面,提供一种电子设备,该电子设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述三维模型处理方法。
根据本公开实施例的再一方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述三维模型处理方法。
基于本公开上述实施例提供的三维模型处理方法、装置以及存储介质,应用于支持全球广域网图形函数库(Web Graphics Library,简称为WebGL)2.0的浏览器客户端,响应于用户触发的裁切工具生成操作,生成裁切工具的参数信息;基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系;基于所述目标三维模型中任意一点与所述裁切工具的位置关系,执行所述目标三维模型的渲染操作,也即渲染所述位置关系为不在所述裁切工具内的点,而放弃渲染所述位置关系为在所述裁切工具内的点。本公开技术方案通过调用三维纹理应用程序编程接口即可对需要渲染展示的三维模型进行渲染处理,也即,不需要真实修改、裁切三维模型的网格,只对不需要输出的像素点进行隐藏,即可为用户呈现良好的三维模型画面效果,相较于使用模型裁切的方式,本公开技术方案不仅快速、直观,而且可以有效避免在计算机中安装本地三维动画制作和渲染应用程序,进而实现三维模型修剪所导致的资源浪费、配置复杂的问题。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开的三维模型处理方法的一个实施例的流程图;
图2为本公开的三维模型处理方法的通过盒子裁切工具处理三维模型的实施例的流程图;
图3A为本公开的三维模型处理方法的通过套索工具处理三维模型的实施例的流程图;
图3B为本公开的套索工具示意图;
图4为本公开的三维模型处理装置的一个实施例的结构示意图;
图5为本公开的三维模型处理装置的又一个实施例的结构示意图;
图6为本公开一示意性实施例提供的电子设备的结构图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于计算机系统/服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器等电子设备一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本公开概述
本公开实施例提供的技术方案应用于三维模型渲染、展示场景中,为了快速处理三维模型存在杂乱边角的问题,本公开提供一种隐藏杂乱边角的技术方案,为了实现该技术方案,需要浏览器能够支持WebGL,基于WebGL的三维纹理应用程序编程接口可以加载三维模型到显存中,以便渲染、展示使用,而且通过WebGL的着色器可以生成三维模型的空间参数以及计算三维模型中任意一点与裁切工具的位置关系,进而实现将位于裁切工具内的点进行隐藏,也即放弃渲染位于裁切工具内的点,由此通过浏览器的WebGL环境实现了直观、快速地展示良好的三维模型画面效果,避免展示三维模型存在的杂乱边角。
示例性实施例
图1为本公开的三维模型处理方法的一个实施例的流程图;该三维模型处理方法可以应用在电子设备(如移动终端等)上,电子设备上的浏览器需要能够支持WebGL2.0。如图1所示,该三维模型处理方法包括以下步骤:
在步骤101中,响应于用户触发的裁切工具生成操作,生成裁切工具的参数信息。
在一实施例中,在具体执行本公开实施例之前,需要先确保浏览器支持WebGL,如果浏览器不支持,则可弹出提示信息提醒用户升级浏览器版本。
在一实施例中,用户可以在浏览器客户端界面中通过裁切工具生成按钮触发裁切工具生成操作,还可以通过裁切工具生成菜单指令触发裁切工具生成操作,而在生成裁切工具后,用户还可以通过拖动、放大、缩小等操作来触发裁切工具的位置和大小,生成大小、位置合适的裁切工具。
在一实施例中,裁切工具可以为盒子裁切工具(也即立方体形式的裁切工具),盒子裁切工具由六个平面组成,生成裁切工具的参数信息具体为生成盒子裁切工具的六个面的平面方程,以及所述盒子裁切工具的尺寸。
在一实施例中,浏览器客户端可以自动生成六个平面的平面方程Ax+By+Cz+D=0。其中,可以用float32数组来表示盒子裁切工具的参数信息,每个平面用4个参数A、B、C、D(描述平面空间特征的常数)表示,因此一个盒子裁切工具可以用6×4=24个参数表示。
在一实施例中,裁切工具可以为套索工具,套索工具是由一组首尾相连的线段组成的多边形,参见图3B。根据用户触发的裁切工具生成操作生成套索工具后,浏览器客户端可以自动生成套索工具的参数。其中,可以用float32数组来表示套索工具的参数信息,具体可以用每个线段的两个端点的空间坐标表示。
在步骤102中,基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系。
在一实施例中,一个点与裁切工具的位置关系可以为在裁切工具内,或者不在裁切工具内。
在一实施例中,顶点着色器在生成目标三维模型中任意一点的空间坐标信息后,可以将目标三维模型中任意一点的空间坐标信息传到片元着色器,进而在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系。
在一实施例中,在裁切工具为盒子裁切工具时,可以计算每一个点与盒子裁切工具六个平面的距离,再根据距离确定每一个点在盒子裁切工具内部还是外部,具体可参见图2所示实施例,这里先不详述。
在一实施例中,在裁切工具为套索工具时,可以通过射线法计算每一个点与套索工具的位置关系。通过射线法确定每一个点与多边性的位置关系的算法为一种常用算法,具体可参见图3A所示实施例,这里先不详述。
在步骤103中,基于所述目标三维模型中任意一点与所述裁切工具的位置关系,执行所述目标三维模型的渲染操作,所述渲染操作为渲染所述位置关系为不在所述裁切工具内的点,放弃渲染所述位置关系为在所述裁切工具内的点。
在一实施例中,通过步骤102确定目标三维模型中任意一点与所述裁切工具的位置关系后,即可对位置关系为在所述裁切工具内的点使用discard函数放弃渲染,而对位置关系为不在所述裁切工具内的点执行正常的渲染逻辑,完成渲染操作。
上述步骤101~103,在需要进行三维模型处理时,可以基于用户触发的裁切工具生成操作,生成裁切工具的参数信息;基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系;基于所述目标三维模型中任意一点与所述裁切工具的位置关系,执行所述目标三维模型的渲染操作,也即渲染所述位置关系为不在所述裁切工具内的点,而放弃渲染所述位置关系为在所述裁切工具内的点。本公开技术方案通过调用三维纹理应用程序编程接口即可对需要渲染展示的三维模型进行渲染处理,也即不需要真实修改、裁切三维模型的网格,只对不需要输出的像素点进行隐藏,即可为用户呈现良好的三维模型画面效果,相较于使用布尔运算进行模型裁切的方式,本公开技术方案不仅快速、直观,而且可以有效避免在计算机中安装应用程序实现三维模型修剪所导致的资源浪费、配置复杂的问题。
为了更好地说明本公开的三维模型处理的方案,下面用另一个实施例说明。
图2为本公开的三维模型处理方法的通过盒子裁切工具处理三维模型的实施例的流程图;本实施例以通过盒子裁切工具实现三维模型处理为例进行示例性说明,如图2所示,包括如下步骤:
在步骤201中,响应于用户触发的裁切工具生成操作,生成所述盒子裁切工具的六个面的平面方程,以及所述盒子裁切工具的尺寸。
在一实施例中,可以用float32数组来表示盒子裁切工具的参数信息,每一个平面的平面方程为Ax+By+Cz+D=0,通过4个参数A、B、C、D(描述平面空间特征的常数)即可表示一个平面,因此一个盒子裁切工具可以用6×4=24个参数表示六个平面的平面方程。
在一实施例中,盒子裁切工具的尺寸用于指示盒子裁切工具的长度、宽度和高度。
在步骤202中,根据所述六个面的平面方程,在片元着色器中计算所述目标三维模型中任意一点与所述六个面中任意一个面的距离。
在一实施例中,由于顶点着色器可自动生成所述目标三维模型中任意一点的空间坐标参数,因此根据所述六个面的平面方程,在片元着色器中计算所述目标三维模型中任意一点与所述六个面中任意一个面的距离,包括:基于所述目标三维模型中任意一点的空间坐标参数和六个面的平面方程,计算所述任意一点与所述六个面中任意一个面的距离。
在一实施例中,目标三维模型中任意一点的空间坐标参数为对应点的(x,y,z)坐标,通过一个点的(x,y,z)坐标以及一个平面的平面方程,即可计算得到这个点到平面的距离。
在步骤203中,响应于与所述六个面中任意一个面的距离均小于所述盒子裁切工具的尺寸,判定所述位置关系为在所述裁切工具内。
在一个实施例中,盒子裁切工具的尺寸为长度、宽度、高度,在计算出一个点与六个平面的距离之后,例如,计算出点与平面a、平面b、平面c、平面d、平面e、平面f的距离分别为d1、d2、d3、d4、d5、d6。其中,平面a与平面b盒子的顶面和底面,平面c和平面d是盒子的左侧面和右侧面,平面e和平面f是盒子的前侧面和后侧面,则需要判断d1和d2是否小于盒子裁切工具的高度,d3和d4是否小于盒子裁切工具的长度,d5和d6是否小于盒子裁切工具的宽度,如果同时满足d1和d2小于盒子裁切工具的高度,d3和d4小于盒子裁切工具的长度以及d5和d6小于盒子裁切工具的宽度,则可判定该点位于裁切工具内。
在一实施例中,在确定点位于所述裁切工具内时,可执行步骤206。
在步骤204中,响应于与所述六个面中任意一个面的距离不都小于所述盒子裁切工具的尺寸,判定所述位置关系为不在所述裁切工具内。
在一实施例中,参见步骤203,计算出点与平面a、平面b、平面c、平面d、平面e、平面f的距离分别为d1、d2、d3、d4、d5、d6之后。其中,如果不能同时满足d1和d2小于盒子裁切工具的高度,d3和d4小于盒子裁切工具的长度以及d5和d6小于盒子裁切工具的宽度,则可判定该点不在裁切工具内。
在一实施例中,在确定点不在所述裁切工具内时,可执行步骤205。
在步骤205中,渲染所述位置关系为不在所述裁切工具内的点。
在一实施例中,可以按照渲染并展示三维模型的逻辑来执行渲染位置关系为不在所述裁切工具内的点的操作,这里不作详述。
在步骤206中,放弃渲染所述位置关系为在所述裁切工具内的点。
在一实施例中,可通过discard函数放弃渲染位置关系为在所述裁切工具内的点。
通过上述步骤201~步骤206,可以通过盒子裁切工具实现将位于盒子裁切工具内的点进行隐藏,不需要真实修改、裁切模型的网格,只对不需要输出的像素点进行隐藏,即可为用户呈现良好的三维模型画面效果,本公开技术方案不仅快速、直观,而且可以有效避免在计算机中安装应用程序实现三维模型修剪所导致的资源浪费、配置复杂的问题。
图3A为为本公开的三维模型处理方法的通过套索工具处理三维模型的实施例的流程图,图3B为本公开的套索工具示意图;本实施例以通过套索工具实现三维模型处理为例进行示例性说明,如图3A所示,包括如下步骤:
在步骤301中,响应于用户触发的裁切工具生成操作,生成所述套索工具的任意一个线段的两个端点的空间坐标。
在一实施例中,参见图3B,套索工具是由一组首尾相连的线段组成的多边形。其中,可以用float32数组来表示套索工具的参数信息,每个线段用两个端点的空间坐标表示。
在步骤302中,从所述目标三维模型中任意一点向一个方向发送射线。
在一实施例中,通过射线法计算一个点与多边形的位置关系时,可以向任意一个方向发送射线。
在步骤303中,统计从所述目标三维模型中任意一点向所述一个方向发送的射线与所述套索工具的交点的数目。
在一实施例中,通过光线投射法Ray-casting Algorithm计算一个点与多边形的位置关系时,可以从该点向随便一个方向发送一条射线,参见图3B从点P向一个方向发送一条射线11,与套索工具的边存在交点S和交点T,共两个交点,从点Q向一个方向发送一条射线12,与套索工具的边存在零个交点;从点O向一个方向发送一条射线13,与套索工具的边存在一个交点R。
在步骤304中,响应于所述数目为奇数,判定所述位置关系为在所述裁切工具内。
在一实施例中,在确定点位于所述裁切工具内时,可执行步骤307。
在步骤305中,响应于所述数目为奇数,判定所述位置关系为不在所述裁切工具内。
在一实施例中,在步骤304和步骤305中,参见图3B,射线11与套索工具共有两个交点,数目为偶数,则可判定点P不在所述裁切工具内;射线12与套索工具的边存在0个交点,数目为偶数,则可判定点Q不在所述裁切工具内;射线13与套索工具的边存在1个交点,数目为奇数,则可判定点O在所述裁切工具内。
在一实施例中,在确定点不在所述裁切工具内时,可执行步骤306。
在步骤306中,渲染所述位置关系为不在所述裁切工具内的点。
在一实施例中,可以按照渲染并展示三维模型的逻辑来执行渲染位置关系为不在所述裁切工具内的点的操作,这里不作详述。
在步骤307中,放弃渲染所述位置关系为在所述裁切工具内的点。
在一实施例中,可通过discard函数放弃渲染位置关系为在所述裁切工具内的点。
通过上述步骤301~步骤307,可以通过套索工具实现将位于套索工具内的点进行隐藏,不需要真实修改、裁切模型的网格,只对不需要输出的像素点进行隐藏,即可为用户呈现良好的三维模型画面效果,可以有效避免在计算机中安装应用程序实现三维模型修剪所导致的资源浪费、配置复杂的问题。
与前述三维模型处理方法的实施例相对应,本公开还提供了三维模型处理装置对应的实施例。
图4为本公开的三维模型处理装置的一个实施例的结构示意图,该装置应用在电子设备(如计算机系统、服务器)上,电子设备支持WebGL的浏览器客户端,如图4所示,该装置包括:
工具参数生成模块41,用于响应于用户触发的裁切工具生成操作,生成裁切工具的参数信息;
计算模块42,用于基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系;
渲染模块43,用于基于所述目标三维模型中任意一点与所述裁切工具的位置关系,执行所述目标三维模型的渲染操作,所述渲染操作为渲染所述位置关系为不在所述裁切工具内的点,放弃渲染所述位置关系为在所述裁切工具内的点。
图5为本公开的三维模型处理装置的又一个实施例的结构示意图,如图5所示,在图4所示实施例的基础上,在一实施例中,所述裁切工具为盒子裁切工具时,所述工具参数生成模块41,用于生成所述盒子裁切工具的六个面的平面方程,以及所述盒子裁切工具的尺寸。
在一实施例中,所述计算模块42包括:
距离计算子模块421,用于根据所述六个面的平面方程,在片元着色器中计算所述目标三维模型中任意一点与所述六个面中任意一个面的距离;
第一判定子模块422,用于响应于与所述六个面中任意一个面的距离均小于所述盒子裁切工具的尺寸,判定所述位置关系为在所述裁切工具内;
第二判定子模块423,用于响应于与所述六个面中任意一个面的距离不都小于所述盒子裁切工具的尺寸,判定所述位置关系为不在所述裁切工具内。
在一实施例中,所述装置还包括:
空间信息生成模块44,用于在顶点着色器中生成所述目标三维模型中任意一点的空间坐标参数;
所述计算模块42,用于基于所述目标三维模型中任意一点的空间坐标参数和六个面的平面方程,计算所述任意一点与所述六个面中任意一个面的距离。
在一实施例中,所述裁切工具为套索工具时,所述工具参数生成模块41,用于生成所述套索工具的任意一个线段的两个端点的空间坐标。
在一实施例中,所述计算模块42包括:
射线生成子模块424,用于从所述目标三维模型中任意一点向一个方向发送射线;
统计子模块425,用于统计从所述目标三维模型中任意一点向所述一个方向发送的射线与所述套索工具的交点的数目;
第三判定子模块426,用于响应于所述数目为奇数,判定所述位置关系为在所述裁切工具内;
第四判定子模块427,用于响应于所述数目为奇数,判定所述位置关系为不在所述裁切工具内。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
下面,参考图6来描述根据本公开实施例的电子设备,其中可以集成本公开实施例实现方法的装置。图6为本公开一示意性实施例提供的电子设备的结构图,如图6所示,电子设备包括一个或多个处理器61、一个或多个计算机可读存储介质的存储器62,以及存储在存储器上并可在处理器上运行的计算机程序。在执行存储器62的程序时,可以实现上述三维模型处理方法。
具体的,在实际应用中,该电子设备还可以包括输入装置63、输出装置64等部件,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。本领域技术人员可以理解,图6中示出的电子设备的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的部件,或者某些部件,或者不同的部件布置。其中:
处理器61可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,通过运行或执行存储在存储器62内的软件程序和/或模块,以及调用存储在存储器62内的数据,执行各种功能和处理数据,从而对该电子设备进行整体监控。
存储器62可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器61可以运行程序指令,以实现上文的本公开的各个实施例的三维模型处理方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
输入装置63可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆,光学或轨迹球信号输入。
输出装置64可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置64可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
电子设备还可以包括给各个部件供电的电源,可以通过电源管理系统与处理器61逻辑相连,从而通过电源管理系统实现管理充电、放电,以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
当然,为了简化,图6中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的三维模型处理方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的三维模型处理方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。
Claims (10)
1.一种三维模型处理方法,其特征在于,应用于支持WebGL的浏览器客户端,所述方法包括:
响应于用户触发的裁切工具生成操作,生成裁切工具的参数信息;
基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系;
基于所述目标三维模型中任意一点与所述裁切工具的位置关系,执行所述目标三维模型的渲染操作,所述渲染操作为渲染所述位置关系为不在所述裁切工具内的点,放弃渲染所述位置关系为在所述裁切工具内的点。
2.根据权利要求1所述的方法,其特征在于,所述裁切工具为盒子裁切工具时,所述生成裁切工具的参数信息,包括:
生成所述盒子裁切工具的六个面的平面方程,以及所述盒子裁切工具的尺寸。
3.根据权利要求2所述的方法,其特征在于,所述基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系,包括:
根据所述六个面的平面方程,在片元着色器中计算所述目标三维模型中任意一点与所述六个面中任意一个面的距离;
响应于与所述六个面中任意一个面的距离均小于所述盒子裁切工具的尺寸,判定所述位置关系为在所述裁切工具内;
响应于与所述六个面中任意一个面的距离不都小于所述盒子裁切工具的尺寸,判定所述位置关系为不在所述裁切工具内。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在顶点着色器中生成所述目标三维模型中任意一点的空间坐标参数;
所述根据所述六个面的平面方程,在片元着色器中计算所述目标三维模型中任意一点与所述六个面中任意一个面的距离,包括:
基于所述目标三维模型中任意一点的空间坐标参数和六个面的平面方程,计算所述任意一点与所述六个面中任意一个面的距离。
5.根据权利要求1所述的方法,其特征在于,所述裁切工具为套索工具时,所述生成裁切工具的参数信息,包括:
生成所述套索工具的任意一个线段的两个端点的空间坐标。
6.根据权利要求5所述的方法,其特征在于,所述基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系,包括:
从所述目标三维模型中任意一点向一个方向发送射线;
统计从所述目标三维模型中任意一点向所述一个方向发送的射线与所述套索工具的交点的数目;
响应于所述数目为奇数,判定所述位置关系为在所述裁切工具内;
响应于所述数目为奇数,判定所述位置关系为不在所述裁切工具内。
7.一种三维模型处理装置,其特征在于,应用于支持WebGL的浏览器客户端,所述装置包括:
工具参数生成模块,用于响应于用户触发的裁切工具生成操作,生成裁切工具的参数信息;
计算模块,用于基于所述裁切工具的参数信息,在片元着色器中计算目标三维模型中任意一点与所述裁切工具的位置关系;
渲染模块,用于基于所述目标三维模型中任意一点与所述裁切工具的位置关系,执行所述目标三维模型的渲染操作,所述渲染操作为渲染所述位置关系为不在所述裁切工具内的点,放弃渲染所述位置关系为在所述裁切工具内的点。
8.根据权利要求7所述的装置,其特征在于,所述裁切工具为盒子裁切工具时,所述工具参数生成模块,用于生成所述盒子裁切工具的六个面的平面方程,以及所述盒子裁切工具的尺寸;或,
所述裁切工具为套索工具时,所述工具参数生成模块,用于生成所述套索工具的任意一个线段的两个端点的空间坐标。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机产品;
处理器,用于执行所述存储器中存储的计算机产品,且所述计算机产品被执行时,实现上述权利要求1-6任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器执行时,实现上述权利要求1-6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310215412.6A CN116228949B (zh) | 2023-02-28 | 2023-02-28 | 三维模型处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310215412.6A CN116228949B (zh) | 2023-02-28 | 2023-02-28 | 三维模型处理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116228949A true CN116228949A (zh) | 2023-06-06 |
CN116228949B CN116228949B (zh) | 2024-03-08 |
Family
ID=86578440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310215412.6A Active CN116228949B (zh) | 2023-02-28 | 2023-02-28 | 三维模型处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116228949B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315703A (zh) * | 2007-05-30 | 2008-12-03 | 数邦科技(上海)有限公司 | 三维大规模场景动态管理方法 |
CN104463942A (zh) * | 2014-10-31 | 2015-03-25 | 上海联影医疗科技有限公司 | 三维图像裁剪方法及装置 |
CN104794758A (zh) * | 2015-04-17 | 2015-07-22 | 青岛海信医疗设备股份有限公司 | 一种三维图像的裁剪方法 |
CN112767535A (zh) * | 2020-12-31 | 2021-05-07 | 刘秀萍 | 插件式架构的大规模三维点云可视化平台 |
CN112802169A (zh) * | 2021-01-29 | 2021-05-14 | 中国地质大学(武汉) | 一种三维地质模型实时剖切渲染方法 |
CN114283268A (zh) * | 2021-12-28 | 2022-04-05 | 北京光启元数字科技有限公司 | 一种三维模型处理方法、装置、设备及介质 |
CN114549775A (zh) * | 2022-01-13 | 2022-05-27 | 阿里巴巴新加坡控股有限公司 | 电子地图的渲染方法、装置和计算机程序产品 |
CN115131513A (zh) * | 2022-04-20 | 2022-09-30 | 北京图盟科技有限公司 | 一种三维地形裁剪方法、装置、设备及可读存储介质 |
-
2023
- 2023-02-28 CN CN202310215412.6A patent/CN116228949B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315703A (zh) * | 2007-05-30 | 2008-12-03 | 数邦科技(上海)有限公司 | 三维大规模场景动态管理方法 |
CN104463942A (zh) * | 2014-10-31 | 2015-03-25 | 上海联影医疗科技有限公司 | 三维图像裁剪方法及装置 |
CN104794758A (zh) * | 2015-04-17 | 2015-07-22 | 青岛海信医疗设备股份有限公司 | 一种三维图像的裁剪方法 |
CN112767535A (zh) * | 2020-12-31 | 2021-05-07 | 刘秀萍 | 插件式架构的大规模三维点云可视化平台 |
CN112802169A (zh) * | 2021-01-29 | 2021-05-14 | 中国地质大学(武汉) | 一种三维地质模型实时剖切渲染方法 |
CN114283268A (zh) * | 2021-12-28 | 2022-04-05 | 北京光启元数字科技有限公司 | 一种三维模型处理方法、装置、设备及介质 |
CN114549775A (zh) * | 2022-01-13 | 2022-05-27 | 阿里巴巴新加坡控股有限公司 | 电子地图的渲染方法、装置和计算机程序产品 |
CN115131513A (zh) * | 2022-04-20 | 2022-09-30 | 北京图盟科技有限公司 | 一种三维地形裁剪方法、装置、设备及可读存储介质 |
Non-Patent Citations (3)
Title |
---|
BALÁZS CSÉBFALVI 等: "Fast Surface Rendering of Volumetric Data", 《DBLP》, pages 1 - 9 * |
程泽华: "基于WebGL的地质三维模型构建及可视化方法研究", 《 中国优秀硕士学位论文全文数据库 基础科学辑》, pages 011 - 537 * |
金锄头文库: "计算机图形学(简单多边形裁剪算法)", pages 3, Retrieved from the Internet <URL:https://wenku.so.com/d/9235050d60f07b1c422771c7dec6b269> * |
Also Published As
Publication number | Publication date |
---|---|
CN116228949B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5120926B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP2015515059A (ja) | シーンにおける不透明度レベルを推定する方法とそれに対応する装置 | |
CN113077548A (zh) | 针对物体的碰撞检测方法、装置、设备和存储介质 | |
US20230206567A1 (en) | Geometry-aware augmented reality effects with real-time depth map | |
CN114842175B (zh) | 三维标签的交互呈现方法、装置、设备和介质 | |
KR20240074815A (ko) | 3d 모델 렌더링 방법 및 장치, 전자 디바이스, 그리고 저장 매체 | |
CN114170381A (zh) | 三维路径展示方法、装置、可读存储介质及电子设备 | |
CN114930285B (zh) | 一种软件架构的可视化方法及装置 | |
CN116228949B (zh) | 三维模型处理方法、装置及存储介质 | |
WO2024066208A1 (zh) | 模型外点位的全景图展示方法和装置、设备、介质 | |
CN111080792B (zh) | 模型简化处理方法、装置以及电子设备、存储介质 | |
CN112417340A (zh) | 网页图片处理方法、计算机设备和存储介质 | |
CN114913277A (zh) | 一种物体立体交互展示方法、装置、设备及介质 | |
CN114797109A (zh) | 对象编辑方法、装置、电子设备和存储介质 | |
CN114522420A (zh) | 游戏数据处理方法、装置、计算机设备及存储介质 | |
JP6564259B2 (ja) | 画像処理装置、画像処理方法 | |
JPH10198823A (ja) | 映像生成装置 | |
CN116612228A (zh) | 用于平滑物体边缘的方法、装置及存储介质 | |
CN115481476B (zh) | 数据展示方法、装置及存储介质 | |
US20230419594A1 (en) | Method and system for texturing an image | |
CN116778126A (zh) | 用于放大显示虚拟现实空间的方法、装置及存储介质 | |
CN116796090A (zh) | 模型瓦片加载方法、装置及存储介质 | |
CN116824101A (zh) | 用于虚拟现实空间切换的方法和装置 | |
EP4258218A1 (en) | Rendering method, device, and system | |
CN111757081B (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 |