CN116194961A - 水纹仿真方法及装置、电子设备、存储介质 - Google Patents
水纹仿真方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN116194961A CN116194961A CN202180002709.3A CN202180002709A CN116194961A CN 116194961 A CN116194961 A CN 116194961A CN 202180002709 A CN202180002709 A CN 202180002709A CN 116194961 A CN116194961 A CN 116194961A
- Authority
- CN
- China
- Prior art keywords
- bitmap image
- pixel
- point
- image
- target
- 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
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 title claims abstract description 150
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004088 simulation Methods 0.000 title claims abstract description 41
- 230000000694 effects Effects 0.000 claims abstract description 28
- 230000009466 transformation Effects 0.000 claims description 47
- 239000011159 matrix material Substances 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 17
- 238000012216 screening Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 16
- 238000000926 separation method Methods 0.000 claims description 13
- 238000001914 filtration Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 239000013598 vector Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 8
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000004575 stone Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000003643 water by type Substances 0.000 description 1
Images
Classifications
-
- 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
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/60—3D [Three Dimensional] animation of natural phenomena, e.g. rain, snow, water or plants
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种水纹仿真方法及装置、电子设备、存储介质。该方法包括:当检测到初始模型在仿真过程中有获取水纹的需求时,获取水纹对应的目标区域,并获取所述目标区域对应的插槽(11);将所述插槽贴合到所述初始模型得到目标模型,所述目标模型的目标区域呈现水纹效果(12)。该方法中,将带有水纹的插槽贴合到初始模型即可使目标模型携带水纹,仅需要为插槽开辟内存和显存即可而无需额外增加内存和显存,有利于提升仿真效率。
Description
本公开涉及数据处理技术领域,尤其涉及一种水纹仿真方法及装置、电子设备、存储介质。
目前,在建模时需要对模型的部分区域(如河流、湖泊等)形成水纹。相关技术中,3D仿真过程中所形成的水纹通常为立体水纹,从而需要分配专用空间处理水纹,从而需要额外的内存和显存处理模拟水纹后的显示。
发明内容
本公开提供一种水纹仿真方法及装置、电子设备、存储介质,以解决相关技术的不足。
根据本公开实施例的第一方面,提供一种水纹仿真方法,包括:
当检测到初始模型在仿真过程中有获取水纹的需求时,获取水纹对应的目标区域,并获取所述目标区域对应的插槽;
将所述插槽贴合到所述初始模型得到目标模型,所述目标模型的目标区域呈现水纹效果。
可选地,获取所述目标区域对应的插槽,包括:
获取位图图像并对所述位图图像进行处理得到第一图像;
对所述第一图像进行处理得到第二图像,所述第二图像作为所述目标区域对应的插槽。
可选地,基于所述噪声数据对所述第一图像进行处理得到第二图像,包括:
获取所述位图图像中的目标点以及所述目标点对应的法线;所述法线是经过所述目标点且与所述位图图像的坐标系中z轴平行的直线;
以所述目标点对应的法线为基准结合噪声数据中的预设角度,获取所述目标点周围像素的变换数据,以及根据所述目标点确定待处理像素;
根据所述变换数据和所述待处理像素确定所述位图图像对应的变换矩阵;
根据所述变换矩阵调整所述位图图像,得到所述第一图像。
可选地,获取所述位图图像中的目标点,包括:
获取映射点和所述位图图像的中心点;所述映射点为位图图像坐标系的坐标原点映射到世界坐标系中对应的起点;
获取所述映射点和所述中心点之间连线的中点,得到第一中点;
当所述第一中点位于所述位图图像之内时,确定所述第一中点作为所述目标点;
当所述第一中点位于所述位图图像之外时,获取所述位图图像的预设点和所述位图图像的中心点之间连线的中点,得到第二中点;
确定所述第二中点作为所述目标点。
可选地,根据所述目标点确定待处理像素,包括:
获取所述位图图像中满足第一筛选条件的候选像素;所述第一筛选条件包括以下至少一种:所述候选像素的像素值中红色像素值小于或等于红色像素阈值,绿色像素值超过绿色像素阈值且蓝色像素值超过第一蓝色像素阈值,蓝色像素值超过第二蓝色像素阈值;所述第二蓝色像素阈值大于所述第一蓝色像素阈值;
根据所述位图图像的尺寸和显示屏显示区域的尺寸确定所述位图图像中相邻两个像素之间的间隔距离;
在确定不满足第二筛选条件时,重复执行以指定点为起点,向不同方向依次移动所述间隔距离直至对应位置的像素是非候选像素或者超过所述位图图像的边界为止的步骤,确定对应位置的候选像素为待处理像素;其中所述第二筛选条件包括移动间隔距离后对应位置的像素位于位图图像之外或者没有像素,并且所述指定点包括目标点或者非候选像素之后的第一个候选像素。
根据本公开实施例的第二方面,提供一种水纹仿真装置,包括:
目标区域获取模块,被配置为执行当检测到初始模型在仿真过程中有获取水纹的需求时,获取水纹对应的目标区域,并将所述目标区域对应的位图图像插入所述目标区域;
目标模型获取模块,被配置为执行将所述插槽贴合到所述初始模型得到目标模型,所述目标模型的目标区域呈现水纹效果。
可选地,所述目标模型获取模块包括:
第一图像获取模块,被配置为执行获取位图图像并对所述位图图像进行处理得到第一图像;
第二图像获取模块,被配置为执行对所述第一图像进行处理得到第二图像。
可选地,所述第二图像获取模块包括:
目标点获取子模块,被配置为执行获取所述位图图像中的目标点以及所述目标点对应的法线;所述法线是经过所述目标点且与所述位图图像的坐标系中z轴平行的直线;
变换数据获取子模块,被配置为执行以所述目标点对应的法线为基准结合噪声数据中的预设角度,获取所述目标点周围像素的变换数据,以及根据所述目标点确定待处理像素;
变换矩阵获取子模块,被配置为执行根据所述变换数据和所述待处理像素确定所述位图图像对应的变换矩阵;
第二图像获取子模块,被配置为执行根据所述变换矩阵调整所述位图图像,得到所述第一图像。
可选地,所述目标点获取子模块包括:
中心点获取单元,被配置为执行获取映射点和所述位图图像的中心点;所述映射点为位图图像坐标系的坐标原点映射到世界坐标系中对应的起点;
第一中点获取单元,被配置为执行获取所述映射点和所述中心点之间连线的中点,得到第一中点;
目标点获取单元,被配置为执行当所述第一中点位于所述位图图像之内时,确定所述第一中点作为所述目标点;
第二中点获取单元,被配置为执行当所述第一中点位于所述位图图像之外时,获取所述位图图像的预设点和所述位图图像的中心点之间连线的中点,得到第二中点;
所述目标点获取单元,被配置为执行确定所述第二中点作为所述目标点。
可选地,所述变换数据获取子模块包括:
候选像素获取单元,被配置为执行获取所述位图图像中满足第一筛选条件的候选像素;所述第一筛选条件包括以下至少一种:所述候选像素的像素值中红色像素值小于或 等于红色像素阈值,绿色像素值超过绿色像素阈值且蓝色像素值超过第一蓝色像素阈值,蓝色像素值超过第二蓝色像素阈值;所述第二蓝色像素阈值大于所述第一蓝色像素阈值;
间隔距离获取单元,被配置为执行根据所述位图图像的尺寸和显示屏显示区域的尺寸确定所述位图图像中相邻两个像素之间的间隔距离;
待处理像素获取单元,被配置为执行在确定不满足第二筛选条件时,重复执行以指定点为起点,向不同方向依次移动所述间隔距离直至对应位置的像素是非候选像素或者超过所述位图图像的边界为止的步骤,确定对应位置的候选像素为待处理像素;其中所述第二筛选条件包括移动间隔距离后对应位置的像素位于位图图像之外或者没有像素,并且所述指定点包括目标点或者非候选像素之后的第一个候选像素。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行的计算机程序的存储器;
其中,所述处理器被配置为执行所述存储器中的计算机程序,以实现如上述的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现上述的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,本公开提供的技术方案中,可以在检测到初始模型在仿真过程中有获取水纹的需求时获取水纹对应的目标区域,并获取所述目标区域对应的插槽;然后,将所述插槽贴合到所述初始模型得到目标模型,所述目标模型的目标区域呈现水纹效果。这样,本实施例中,将带有水纹的插槽贴合到初始模型即可使目标模型携带水纹,仅需要为插槽开辟内存和显存即可而无需额外增加内存和显存,有利于提升仿真效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种水纹仿真方法的流程图。
图2是根据一示例性实施例示出的另一种水纹仿真方法的流程图。
图3是根据一示例性实施例示出的一种获取插槽的流程图。
图4是根据一示例性实施例示出的一种获取第一图像的流程图。
图5是根据一示例性实施例示出的一种获取目标点的流程图。
图6是根据一示例性实施例示出的一种第一中点位于位图图像之外的效果示意图。
图7是根据一示例性实施例示出的一种第二中点位于位图图像之内的效果示意图。
图8是根据一示例性实施例示出的一种数据逻辑原理示意图。
图9是根据一示例性实施例示出的一种获取待处理像素的流程图。
图10是根据一示例性实施例示出的获取间隔距离的效果示意图。
图11是根据一示例性实施例示出的获取待处理像素的效果示意图。
图12是根据一示例性实施例示出的一种第二图像即插槽的效果示意图。
图13是根据一示例性实施例示出的一种数据逻辑原理示意图。
图14是根据一示例性实施例示出的一种水纹仿真装置的框图。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性所描述的实施例并不代表与本公开相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置例子。
为解决上述技术问题,本公开实施例提供了一种水纹仿真方法,可以应用于智能手机、平板电脑、个人计算机、或者服务器等电子设备。图1是根据一示例性实施例示出的一种水纹仿真方法的流程图,图2是根据一示例性实施例示出的一种水纹仿真方法的详细流程图。参见图1和图2,一种水纹仿真方法,包括步骤11~步骤12。
步骤11,当检测到初始模型在仿真过程中有获取水纹的需求时,获取水纹对应的目标区域,并获取所述目标区域对应的插槽。
本实施例中,电子设备可以获取初始模型,例如3D模型。实际应用中,电子设备可以设有交互式图形程序,如OpenSceneGraph(OSG引擎);在运行上述OSG引擎的 过程中,电子设备可以根据使用者的操作建立飞行器、游戏、虚拟现实、建筑模型等3D模型。并且,上述3D模型中的一部分区域会存在水域,如河流、湖泊、海洋、港口、喷泉等。
本实施例中,电子设备可以响应于使用者的仿真请求,对初始模型进行仿真,通过实验可观察模型各参数变化的全过程,以研究不同参数对初始模型的影响。在使用者启动初始模型进行仿真的过程中,电子设备可以从本地存储器读取初始模型,具体来说按照初始模型中节点的顺序依次加载各个节点的节点数据。
本实施例中,在仿真过程中,电子设备可以显示交互界面,该交互界面内可以包括菜单栏,菜单栏内包括多种水纹格式的插槽。使用者可以结合初始模型的实际需求和/或用户需求等,从菜单栏选择其中一个插槽作为目标区域对应的插槽。需要说明的是,初始模型可以包括多个目标区域,并且每个目标区域对应一个插槽。考虑到每个插槽的处理方式相同,后续实施例中以向一个目标区域贴合插槽为例描述各方案,从而方便描述和理解。
本实施例中,电子设备可以响应于获取到检测到有获取水纹的需求,获取水纹对应的目标区域。实际应用中,初始模型会存在“镂空”区域,这些“镂空”区域需要插入一些位图图像以获得预期效果,本实施例中可以将上述“镂空”区域作为水纹对应的目标区域。
本实施例中,电子设备可以设置有本地数据库,该数据库内可以存储位图图像,包括但不限于jpg,png,bitmap等格式的位图,可以是由图像解析而成的像素矩阵。或者,位图图像的相关数据如动态链接库dll文件或者静态链接库lib文件。当电子设备读取到初始模型中包含水域的节点时,可以从本地数据库读取位图图像,此时电子设备可以确定检测到初始模型在仿真过程中有获取水纹的需求。电子设备可以从本地数据库中读取位图图像,并将目标区域对应的位图图像插入其中。
需要说明的是,本实施例中在插入位置图片之前,电子设备可以判断初始模型的指定参数变化是否合法,例如法线角度是否在0~180度之间,正弦值的取值范围是否在0~1或者范围扩展至位图图像边界等,上述指定参数根据具体场景选择,在此不作限定。
本实施例中,电子设备可以设置有本地数据库,该数据库内可以存储位图图像,包括但不限于jpg,png,bitmap等格式的位图,可以是由图像解析而成的像素矩阵。或者,位图图像的相关数据如动态链接库dll文件或者静态链接库lib文件。当电子设备读取到 初始模型中包含水域的节点或者使用者为目标区域选择插槽时,可以从本地数据库读取位图图像,此时电子设备可以确定检测到初始模型在仿真过程中有获取水纹的需求。电子设备可以获取目标区域对应的插槽,参见图3,包括步骤31和步骤32。
在步骤31中,电子设备可以获取位图图像,并对位图图像进行处理得到第一图像,参见图4,包括步骤41~步骤44。
在步骤41中,电子设备可以获取位图图像中的目标点以及目标点对应的法线。上述目标点可以理解为处理位图图像的基准点,参见图5,获取方式包括步骤51~步骤54:在步骤51中,电子设备可以获取映射点和位图图像的中心点;上述映射点为位图图像坐标系的坐标原点映射到世界坐标系中对应的起点。在步骤52中,电子设备可以获取上述映射点和中心点之间连线的中点,得到第一中点。在步骤53中,当第一中点位于位图图像之内时,电子设备可以确定第一中点作为目标点。在步骤54中,当第一中点位于位图图像之外时,如图6所示效果,映射点a和位图图像的中心点b之间连线的中点c即第一中点c,位于位图图像的外部。此时电子设备可以获取位图图像的预设点(如位图图像为矩形时其中一个角点)和位图图像的中心点之间连线的中点,得到第二中点;该第二中点落入位图图像之内,如图7所示效果,预设点d和位图图像的中心点b之间连线的中点e即第二中点e,位于位图图像的内部。此时电子设备可以确定所述第二中点作为所述目标点。本步骤通过获取目标点可以获取处理位图图像的基准点,以保证水纹位于位图图像之内,提升处理效率。
本实施例中,目标点的法线是经过目标点且与位图图像的坐标系中z轴平行的直线。参见图8,底部直线表示背景平面,背景平面上方包含2个正弦波的曲线表示水域表面,正弦波表示水纹,水域表面上方的垂直于背景平面的竖线表示使用者观看水域平面的视线。以目标点位于x0处为例,此处水域表面为平面,水域表面的法线垂直于背景平面,视线L0与x0处法线平行,此时视线可以透过水域表面垂直到背景平面。以目标点位于x处为例,此处水域表面有水纹,此时法线变成L2与背景平面不再垂直即保持一个夹角,此时视线可以透过水纹的折射作用到达x1处。基于上述原理,当水域表面包括多个水纹时通过调整视线的方向,可以使使用者的视线不均匀的分布的背景平面,达到观看到水纹的效果。基于图8示例的效果可知,无论目标点在水域表面的平面处或者水纹处其法线均与位图图像的坐标系中z轴平行。
在步骤42中,电子设备可以以所述目标点对应的法线为基准结合噪声数据中的预设角度,获取所述目标点周围像素的变换数据,以及根据所述目标点确定待处理像素。可 理解的是,变换数据是指调整周围像素的像素值以形成水纹所需的数据,该变换数据与预设角度和方向向量相关联,该方向向量表征待处理像素与目标点之间方向,即从目标向看向待处理像素方向时所形成的单位向量,例如(0,1)、(1,-1)、(0,-1)、(-1,-1)、(-1,0)、(-1,1)、(0,1)和(1,1)。上述预设角度是指插槽即位图图像的坐标系统映射到初始模型的坐标系(即世界坐标系)时两个坐标系形成的夹角,该夹角会随着初始模型的坐标系的变化而变化,即用户旋转模型以调整观看视角时,插槽的插入角度即上述预设角度会同步变化。可理解的是,插槽的坐标系和世界坐标系的映射关系可以从生成模型的应用程序中提取或者预先设置。
本步骤中,电子设备可以根据目标点确定待处理像素,参见图9,包括步骤91~步骤93。
在步骤91中,电子设备可以获取位图图像中满足第一筛选条件的候选像素,效果如图10所示,图10中黑色点表示满足第一筛选条件的候选像素,圆圈表示不满足第一筛选条件的候选像素。其中,第一筛选条件包括以下至少一种:候选像素的像素值中红色像素值小于或等于红色像素阈值,绿色像素值超过绿色像素阈值且蓝色像素值超过第一蓝色像素阈值,蓝色像素值超过第二蓝色像素阈值;所述第二蓝色像素阈值大于所述第一蓝色像素阈值。本步骤中通过设置第一筛选条件可以保证水域的颜色偏向于蓝色或者绿色而不是红色,有利于提升仿真效果。
在步骤92中,电子设备可以根据位图图像的尺寸和显示屏显示区域的尺寸确定位图图像中相邻两个像素之间的间隔距离,效果如图10中距离f。其中,初始模型或者后续的目标模型均需要显示屏显示区域内进行显示,因此显示区域的尺寸同样会影响到位置图片的相邻像素之间的间隔距离。在确定出显示区域的尺寸后,可以同步确定出目标区域的尺寸;由于位图图像的分辨率是已知的,因此可以确定出位图图像中相邻两个像素之间的间隔距离。通过设置间隔距离可以使两条水纹之间保持间隔,与现实生活中的水纹保持相同效果,提升观看体验。
需要说明的是,步骤92中描述是利用位图尺寸和显示屏显示区域的尺寸来确定间隔距离的方案,实际应用中,上述间隔距离还可以根据经验值来设置,例如微风时将间隔距离设置为3-5个像素,大风时将间隔距离设置为10-15个像素,同样可以实现本公开的方案。
在步骤93中,在确定不满足第二筛选条件时,电子设备可以重复执行以指定点为起点,向不同方向依次移动所述间隔距离直至对应位置的像素是非候选像素或者超过所述 位图图像的边界为止的步骤,确定对应位置的候选像素为待处理像素;其中所述第二筛选条件包括移动间隔距离后对应位置的像素位于位图图像之外或者没有像素,并且所述指定点包括目标点或者非候选像素之后的第一个候选像素。
本步骤93可以是一个迭代步骤,即:第一次,以目标点为基准,可理解为石子落入位置,可以参考图8中x0处作为目标点。然后,目标点相邻的候选像素为待处理像素,如右侧的x处像素为待处理像素,处理后可以得到第一条或者第一圈水纹(即波浪的波峰)。之后,移动上述间隔距离后,再将此处对应的候选像素作为待处理像素,处理后可以得到第二条或者第二圈水纹;以此类推,按照“水纹—正常—水纹—正常……”的顺序,直至位图图像的边界为止。
实际应用中,考虑到第一次在向目标点的8个方向扩展水纹时,参见图11,图11中(a)图示出了目标点g,(b)图示出了向满足要求的5个方向扩展水纹,对于每个方向而言均是按照步骤93的方式调整待处理像素以获得水纹,后续扩展也是按照相同方向继续扩展,遇到候选像素则调整像素亮度形成水纹,图11中(c)图示出了向左侧移动3次后形成水纹1和水纹2的效果。当移动间隔距离后对应的像素不是候选像素(如像素A)时停止以目标点g为基准的扩展过程。然后继续延期各方向找到候选像素,并将该候选像素作为指定点继续向8个方向扩展,如图11中(c)图示出了向左找到指定点g1的效果,此时指定点g1变换为与目标点具有相同地位的基准点,后续扩展过程与以目标点向外扩展过程相同,在此不再赘述。基于图11所示原理,继续查找指定点和扩展水纹,直到扩展到边界或者不是候选像素为止。这样,通过上述扩展方式可以使水域布满水纹。
需要说明的是,以指定点为基准向8个方向扩展水纹适用于石子或者雨点落入水域的场景,此时以指定点为圆心形成一圈圈的波纹。考虑到较大面积的水域,例如湖泊、海洋等,水纹是向岸边移动的,此时可以向指定点靠近岸边的4个方向扩展水纹,后续出现的指定点同理,从而形成持续的向岸边移动的水纹,使水纹与仿真场景相匹配。技术人员可以根据具体场景选择合适的方向向量,以保证水纹的流向和朝向。其中流向是指水纹移动的方向,例如海洋内的水纹是从海洋深处流向岸边。朝向是指水纹展示给用户的朝向,即使用者在不同视角观看水纹时看到水纹的角度,例如从水纹正面看到一条水纹,并且当模型旋转90度(可理解为预设角度改变量为90度)后从水纹侧面看到一个呈现中间高且两侧低的山形浪头。
需要说明的是,考虑到位图图像中满足要求的待处理像素的占比接近一半或者少于 一半,即小于或等于50%,例如30%。基于此,对于整个位图图像而言,相邻两个指定点之间的平均距离约为2-3个像素,那么对于每个指定点而言,其形成第一条或者第一圈水纹后将无法继续延伸;从整体上看整个位图图像可以形成多条或者多圈水纹,达到在位图图像上形成水纹的效果。也就是说,本示例中结合间隔距离以及不满足要求的像素对应的间隔两者可以保证相邻两条水纹之间的最终间隔,达到从视觉上看到两条水纹或者两条水纹有较大间隔的最终效果在步骤43中,电子设备可以根据所述变换数据和所述待处理像素确定所述位图图像对应的变换矩阵。
本步骤中,考虑到位图图像中不同水纹的区别仅在于方向向量的改变,或者说,不同的待处理像素在目标点的不同方位。因此,对于不同的水纹,待处理像素的变换数据中相关联的预设角度不变,仅方向向量发生变化。
因此,电子设备可以确定待处理像素的方向向量。结合步骤32所示例的内容,上述方向向量与水域所处场景和预设角度(如指向哪个方向)相关,其中水域所处场景决定水纹向1、4或8个等方向扩展,从而使得指定点有1、4或8个等方向的方向向量,以及决定与该指定点相关联各个方向上的待处理像素使用哪个方向向量;预设角度决定水纹的传播方向,从而决定选择待处理像素使用哪个方向向量,例如预设角度为0度时可以看到水纹正面即一条水纹,此时可以为待处理像素选择指向左或者向右的方向向量;当模型旋转90度即预设角度改变量为90度时,可以从水纹侧面看到山形浪头,此时为待处理像素选择指向或者远离显示屏的方向向量。需要说明的是,为了形象说明,选择方向向量的过程是从使用者看到显示屏的角度来说明的,实际应用中可以根据世界坐标系和位图图像坐标系的映射关系进行转换。
然后,电子设备可以将各个待处理像素的方向向量和预设角度写入变换矩阵,并且待处理像素之外像素的位置处写入常数1(表示无需改变),最终确定第一图像对应的变换矩阵。
在步骤44中,电子设备可以根据所述变换矩阵调整所述位图图像,得到所述第一图像。可理解的是,电子设备按照第一图像中像素及变换矩阵中变换数据的对应关系,获取两者的乘积,即对第一图像中待处理数据的像素值进行更新,从而得到第二图像。
本实施例中,上述变换矩阵可以用于指示调整哪个位置的像素以形成水纹。本步骤中调整像素值实质上调整像素的亮度值,水纹位置像素采用较高亮度,而其他位置像素采用正常亮度。对于位图图像中需要调整的像素值,亮度和对比度调节属于图像的灰度线性变换,参见以下公式:
y=[x-127.5*(1-B)]*k+127.5*(1+B);
式中,x为调节前的像素值,y为调节后的像素值。B取值[-1,1],调节亮度;k调节对比度,arctan(k)取值[1,89],k=tan((45+44*c)/180*pi);其中c取值预设角度,通常用c来设置对比度。
在一示例中,电子设备可以通过以下方式来调整像素的亮度和对比度:
当B=0时,y=(x-127.5)*k+127.5;此时只调节对比度。
当c=0时,k=1,y=x+255*B,此时只调节亮度。
需要说明的是,技术人员可以根据上述调整原理来调整像素的亮度和对比度,在此不再赘述。
在步骤32中,对所述第一图像进行处理得到第二图像。
在一实施例中,电子设备可以对第一图像进行处理以获得第二图像。例如电子设备可以对第一图像进行菲涅尔变换处理,该菲涅尔变换可理解为傅里叶变化,其目的是为了形成任何连续测量的时序或信号,并采用不同频率的正弦波信号的无限叠加。这样,本实施例中通过莫涅尔变换可以找到如步骤93中后续基准点向8个方向扩展时出现反方向的水纹(或者回波),该回波对于之前基准点产生的水纹属于噪声信号,然后去掉上述回波信号对应频率的正弦波信号,可以得到第二图像。本实施例中的方案适于大面积水域且水纹流向同一个方向的场景,如大海中海浪均朝向岸边流动,通过抗干扰处理可以保证水纹的准确性。
在一实施例中,电子设备内设有噪声源,该噪声源可以包括生成蒙特卡洛随机数和生成噪声源参数数据,即该噪声源先生成蒙特卡洛随机数,然后再将上述蒙特卡洛随机数传入噪声源参数,从而生成噪声源参数数据。该噪声源参数数据可以包括噪声源不同位置和入射角度,同图6所示的实施例的方案类似,其中噪声源可以等同于目标点且入射角度等同于预设角度,可以适用于水域中下雨等场景,这些噪声源产生的水纹同样会干扰到目标点所产生的水纹。本实施例中可以通过对第一图像进行正弦变换,从而将目标点和噪声源对应的水纹叠加,得到第二图像,并将该第二图像作为目标区域对应的插槽。本实施例中通过叠加噪声数据可以仿真出不同水纹相叠加的效果,可以保证水纹的准确性。
步骤12,将所述插槽贴合到所述初始模型得到目标模型,所述目标模型的目标区域呈现水纹效果。
本实施例中,电子设备可以将第二图像作为插槽贴合到初始模型,从而得到目标模型,水纹效果如图12所示。
需要说明的是,步骤11~步骤12是在电子设备的内存中完成处理,这样在获取插槽的过程中可以预先为位图图像分配内存区域,对位图图像中像素值更新过程中仅需要在位图图像上更新即可,从而使水纹在空间的z轴方向上不会占用空间,仅需要调整加载的角度即可形成不同水纹;并且无需再分配内存空间,从而可以提升内存利用率。
本实施例中,在获取目标模型后,电子设备可以将内存的目标模型交换到显存内,由显存完成目标模型的渲染等显示工作,在此不再赘述。可理解的是,对于显存而言,第二图像和位图图像并没有增加渲染参数,从而在目标模型需要水域的部位使用上述方法,有利于提升仿真效果。
至此,本公开提供的技术方案中,可以在检测到初始模型在仿真过程中有获取水纹的需求时获取水纹对应的目标区域,并获取所述目标区域对应的插槽;然后,将所述插槽贴合到所述初始模型得到目标模型,所述目标模型的目标区域呈现水纹效果。这样,本实施例中,将带有水纹的插槽贴合到初始模型即可使目标模型携带水纹,仅需要为插槽开辟内存和显存即可而无需额外增加内存和显存,有利于提升仿真效率。
下面结合图13来描述本实施例提供的一种水纹仿真方法的实现过程。
电子设备内存储水纹仿真SDK,在仿真过程中可以调用运行上述SDK。电子设备可以通过动态链接库或者静态链接库接口在本地数据库中检索基本纹理本地数据库和干扰参数数据库。其中基本纹理数据库即是上述的位图图像,干扰参数数据库即是上述的噪声数据。实际应用中,可以将图1所示步骤集成到一个模块中,仅提供接口和静态资源包(如预制的基本纹理图片,或者波浪的高度,深度等参数,可设置)。
使用者可以在交互界面内选择初始模型的目标区域欲使用的插槽,电子设备在检测到使用者所选择的插槽后可以获取到该插槽对应的基本纹理数据和干扰参数数据。然后,电子设备可以通过数据逻辑层调用广度计算模型、折射计算模型和法线偏移计算模型对上述基本纹理数据和干扰参数数据进行处理,数据原理图如图6所示实施例的内容。例如广度计算模型可以获取初始模型中的镂空区域(或者目标区域)的起始点和终点,然后确定出目标区域在显示区域内的范围。折射计算模型可以获取预制的基本纹理图片(即位图图像)置入3D世界的角度,即获得预设角度;以及获取水域场景处光或风传入角度等,以确定水纹的流向和朝向。法线偏移计算模型可以获取基本纹理图片内 满足像素/RGB值要求(即第一筛选条件)的候选像素的坐标,并获取指定点的坐标及其法线。可理解的是,在预设角度未发生变化且光或风传入角度发生变化(即噪声数据变化)时,同样可以引起位图图像中目标点或指定点处法线的变化,进而引进水纹的变化。之后,电子设备对上述基本纹理图像处理后可以获得插槽。之后在将插槽贴合到初始模型之后可以得到目标模型。最后,目标模型可以在外部预览界面上显示,此时。
需要说明的是,上述内容描述从一个角度将插槽插入到OSG引擎的方案。实际应用中,电子设备可以将插槽直接加载到OSG引擎中的任意位置,此时可以调整加载的角度(即在视线不变的情况下,通过调整法线的指向来调整预设角度的大小),即可在目标区域内形成相应的水纹。并且,随之目标模型在空间角度的变换,上述加载的角度也随之改变,那么所显示水纹的流向和朝向也随之改变,达到不同视角观看到不同流向和朝向的水纹的效果。
在本公开实施例提供的一种水纹仿真方法的基础上,本实施例还提供了一种水纹仿真装置,参见图14,包括:
目标区域获取模块141,被配置为执行当检测到初始模型在仿真过程中有获取水纹的需求时,获取水纹对应的目标区域,并获取所述目标区域对应插槽;
目标模型获取模块142,被配置为执行将所述插槽贴合到所述初始模型得到目标模型,所述目标模型的目标区域呈现水纹效果。
在一实施例中,所述目标模型获取模块包括:
第一图像获取模块,被配置为执行获取位图图像并对所述位图图像进行处理得到第一图像;
第二图像获取模块,被配置为执行对所述第一图像进行处理得到第二图像,所述第二图像作为所述目标区域对应的插槽。
在一实施例中,所述第二图像获取模块包括:
目标点获取子模块,被配置为执行获取所述位图图像中的目标点以及所述目标点对应的法线;所述法线是经过所述目标点且与所述位图图像的坐标系中z轴平行的直线;
变换数据获取子模块,被配置为执行以所述目标点对应的法线为基准结合噪声数据中的预设角度,获取所述目标点周围像素的变换数据,以及根据所述目标点确定待 处理像素;
变换矩阵获取子模块,被配置为执行根据所述变换数据和所述待处理像素确定所述位图图像对应的变换矩阵;
第二图像获取子模块,被配置为执行根据所述变换矩阵调整所述位图图像,得到所述第一图像。
在一实施例中,所述目标点获取子模块包括:
中心点获取单元,被配置为执行获取映射点和所述位图图像的中心点;所述映射点为位图图像坐标系的坐标原点映射到世界坐标系中对应的起点;
第一中点获取单元,被配置为执行获取所述映射点和所述中心点之间连线的中点,得到第一中点;
目标点获取单元,被配置为执行当所述第一中点位于所述位图图像之内时,确定所述第一中点作为所述目标点;
第二中点获取单元,被配置为执行当所述第一中点位于所述位图图像之外时,获取所述位图图像的预设点和所述位图图像的中心点之间连线的中点,得到第二中点;
所述目标点获取单元,被配置为执行确定所述第二中点作为所述目标点。
在一实施例中,所述变换数据获取子模块包括:
候选像素获取单元,被配置为执行获取所述位图图像中满足第一筛选条件的候选像素;所述第一筛选条件包括以下至少一种:所述候选像素的像素值中红色像素值小于或等于红色像素阈值,绿色像素值超过绿色像素阈值且蓝色像素值超过第一蓝色像素阈值,蓝色像素值超过第二蓝色像素阈值;所述第二蓝色像素阈值大于所述第一蓝色像素阈值;
间隔距离获取单元,被配置为执行根据所述位图图像的尺寸和显示屏显示区域的尺寸确定所述位图图像中相邻两个像素之间的间隔距离;
待处理像素获取单元,被配置为执行在确定不满足第二筛选条件时,重复执行以指定点为起点,向不同方向依次移动所述间隔距离直至对应位置的像素是非候选像素或者超过所述位图图像的边界为止的步骤,确定对应位置的候选像素为待处理像素;其中所述第二筛选条件包括移动间隔距离后对应位置的像素位于位图图像之外或者没有像素,并且所述指定点包括目标点或者非候选像素之后的第一个候选像素。
需要说明的是,本实施例中示出的装置与方法实施例的内容相匹配,可以参考上述方法实施例的内容,在此不再赘述。
在示例性实施例中,还提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行的计算机程序的存储器;
其中,所述处理器被配置为执行所述存储器中的计算机程序,以实现如图1所述方法的步骤。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述可执行的计算机程序可由处理器执行。其中,可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
Claims (12)
- 一种水纹仿真方法,其特征在于,包括:当检测到初始模型在仿真过程中有获取水纹的需求时,获取水纹对应的目标区域,并获取所述目标区域对应的插槽;将所述插槽贴合到所述初始模型得到目标模型,所述目标模型的目标区域呈现水纹效果。
- 根据权利要求1所述的方法,其特征在于,获取所述目标区域对应的插槽,包括:获取位图图像并对所述位图图像进行处理得到第一图像;对所述第一图像进行处理得到第二图像,所述第二图像作为所述目标区域对应的插槽。
- 根据权利要求2所述的方法,其特征在于,对所述位图图像进行处理得到第一图像,包括:获取所述位图图像中的目标点以及所述目标点对应的法线;所述法线是经过所述目标点且与所述位图图像的坐标系中z轴平行的直线;以所述目标点对应的法线为基准结合噪声数据中的预设角度,获取所述目标点周围像素的变换数据,以及根据所述目标点确定待处理像素;根据所述变换数据和所述待处理像素确定所述位图图像对应的变换矩阵;根据所述变换矩阵调整所述位图图像,得到所述第一图像。
- 根据权利要求3所述的方法,其特征在于,获取所述位图图像中的目标点,包括:获取映射点和所述位图图像的中心点;所述映射点为位图图像坐标系的坐标原点映射到世界坐标系中对应的起点;获取所述映射点和所述中心点之间连线的中点,得到第一中点;当所述第一中点位于所述位图图像之内时,确定所述第一中点作为所述目标点;当所述第一中点位于所述位图图像之外时,获取所述位图图像的预设点和所述位图图像的中心点之间连线的中点,得到第二中点;确定所述第二中点作为所述目标点。
- 根据权利要求3所述的方法,其特征在于,根据所述目标点确定待处理像素,包括:获取所述位图图像中满足第一筛选条件的候选像素;所述第一筛选条件包括以下至 少一种:所述候选像素的像素值中红色像素值小于或等于红色像素阈值,绿色像素值超过绿色像素阈值且蓝色像素值超过第一蓝色像素阈值,蓝色像素值超过第二蓝色像素阈值;所述第二蓝色像素阈值大于所述第一蓝色像素阈值;根据所述位图图像的尺寸和显示屏显示区域的尺寸确定所述位图图像中相邻两个像素之间的间隔距离;在确定不满足第二筛选条件时,重复执行以指定点为起点,向不同方向依次移动所述间隔距离直至对应位置的像素是非候选像素或者超过所述位图图像的边界为止的步骤,确定对应位置的候选像素为待处理像素;其中所述第二筛选条件包括移动间隔距离后对应位置的像素位于位图图像之外或者没有像素,并且所述指定点包括目标点或者非候选像素之后的第一个候选像素。
- 一种水纹仿真装置,其特征在于,包括:目标区域获取模块,被配置为执行当检测到初始模型在仿真过程中有获取水纹的需求时,获取水纹对应的目标区域,并获取所述目标区域对应的插槽;目标模型获取模块,被配置为执行将所述插槽贴合到所述初始模型得到目标模型,所述目标模型的目标区域呈现水纹效果。
- 根据权利要求6所述的装置,其特征在于,所述目标模型获取模块包括:第一图像获取模块,被配置为执行获取位图图像并对所述位图图像进行处理得到第一图像;第二图像获取模块,被配置为执行对所述第一图像进行处理得到第二图像,所述第二图像作为所述目标区域对应的插槽。
- 根据权利要求7所述的装置,其特征在于,所述第二图像获取模块包括:目标点获取子模块,被配置为执行获取所述位图图像中的目标点以及所述目标点对应的法线;所述法线是经过所述目标点且与所述位图图像的坐标系中z轴平行的直线;变换数据获取子模块,被配置为执行以所述目标点对应的法线为基准结合噪声数据中的预设角度,获取所述目标点周围像素的变换数据,以及根据所述目标点确定待处理像素;变换矩阵获取子模块,被配置为执行根据所述变换数据和所述待处理像素确定所述位图图像对应的变换矩阵;第二图像获取子模块,被配置为执行根据所述变换矩阵调整所述位图图像,得到所述第一图像。
- 根据权利要求7所述的装置,其特征在于,所述目标点获取子模块包括:中心点获取单元,被配置为执行获取映射点和所述位图图像的中心点;所述映射点为位图图像坐标系的坐标原点映射到世界坐标系中对应的起点;第一中点获取单元,被配置为执行获取所述映射点和所述中心点之间连线的中点,得到第一中点;目标点获取单元,被配置为执行当所述第一中点位于所述位图图像之内时,确定所述第一中点作为所述目标点;第二中点获取单元,被配置为执行当所述第一中点位于所述位图图像之外时,获取所述位图图像的预设点和所述位图图像的中心点之间连线的中点,得到第二中点;所述目标点获取单元,被配置为执行确定所述第二中点作为所述目标点。
- 根据权利要求7所述的装置,其特征在于,所述变换数据获取子模块包括:候选像素获取单元,被配置为执行获取所述位图图像中满足第一筛选条件的候选像素;所述第一筛选条件包括以下至少一种:所述候选像素的像素值中红色像素值小于或等于红色像素阈值,绿色像素值超过绿色像素阈值且蓝色像素值超过第一蓝色像素阈值,蓝色像素值超过第二蓝色像素阈值;所述第二蓝色像素阈值大于所述第一蓝色像素阈值;间隔距离获取单元,被配置为执行根据所述位图图像的尺寸和显示屏显示区域的尺寸确定所述位图图像中相邻两个像素之间的间隔距离;待处理像素获取单元,被配置为执行在确定不满足第二筛选条件时,重复执行以指定点为起点,向不同方向依次移动所述间隔距离直至对应位置的像素是非候选像素或者超过所述位图图像的边界为止的步骤,确定对应位置的候选像素为待处理像素;其中所述第二筛选条件包括移动间隔距离后对应位置的像素位于位图图像之外或者没有像素,并且所述指定点包括目标点或者非候选像素之后的第一个候选像素。
- 一种电子设备,其特征在于,包括:处理器;用于存储所述处理器可执行的计算机程序的存储器;其中,所述处理器被配置为执行所述存储器中的计算机程序,以实现如权利要求1~5任一项所述的方法。
- 一种计算机可读存储介质,其特征在于,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如权利要求1~5任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/120898 WO2023044896A1 (zh) | 2021-09-27 | 2021-09-27 | 水纹仿真方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116194961A true CN116194961A (zh) | 2023-05-30 |
Family
ID=85719864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180002709.3A Pending CN116194961A (zh) | 2021-09-27 | 2021-09-27 | 水纹仿真方法及装置、电子设备、存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240221272A1 (zh) |
CN (1) | CN116194961A (zh) |
WO (1) | WO2023044896A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663827B (zh) * | 2012-03-02 | 2014-07-09 | 天津大学 | 复杂淹没区域风暴潮洪水演进三维动态全过程仿真方法 |
WO2018176185A1 (zh) * | 2017-03-27 | 2018-10-04 | 中国科学院深圳先进技术研究院 | 一种纹理合成方法及其装置 |
CN112435304B (zh) * | 2020-07-20 | 2023-03-14 | 上海哔哩哔哩科技有限公司 | 水体交互贴图方法及系统 |
-
2021
- 2021-09-27 US US17/914,170 patent/US20240221272A1/en active Pending
- 2021-09-27 WO PCT/CN2021/120898 patent/WO2023044896A1/zh active Application Filing
- 2021-09-27 CN CN202180002709.3A patent/CN116194961A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023044896A1 (zh) | 2023-03-30 |
US20240221272A1 (en) | 2024-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106875444B (zh) | 一种目标物定位方法及装置 | |
US8130244B2 (en) | Image processing system | |
US8264546B2 (en) | Image processing system for estimating camera parameters | |
US10846844B1 (en) | Collaborative disparity decomposition | |
US10378877B2 (en) | Image processing device, image processing method, and program | |
US20100134688A1 (en) | Image processing system | |
CN111080662A (zh) | 车道线的提取方法、装置及计算机设备 | |
CN106875431A (zh) | 具有移动预测的图像追踪方法及扩增实境实现方法 | |
WO2007052191A2 (en) | Filling in depth results | |
US10186051B2 (en) | Method and system for calibrating a velocimetry system | |
KR101854612B1 (ko) | 구면 파노라마 영상을 위한 표본 기반 영상 인페인팅 장치 및 방법 | |
AU2018381378A1 (en) | Feature/Ground Height-Based Colored Image Generating Apparatus and Feature Height-Based Colored Image Generating Program | |
CN113658316B (zh) | 三维模型的渲染方法和装置、存储介质及计算机设备 | |
US10909752B2 (en) | All-around spherical light field rendering method | |
Song et al. | Advanced underwater image restoration in complex illumination conditions | |
CN111773706A (zh) | 一种游戏场景的渲染方法和装置 | |
CN116194961A (zh) | 水纹仿真方法及装置、电子设备、存储介质 | |
CN116801115A (zh) | 一种稀疏阵列相机部署方法 | |
CN116092035A (zh) | 车道线检测方法、装置、计算机设备和存储介质 | |
JP2001091251A (ja) | 3次元地図作成方法 | |
CN112040208B (zh) | 图像处理方法、装置、可读存储介质及计算机设备 | |
CN114494561A (zh) | 一种在WebGL中实现可视域分析的方法 | |
CN112819929A (zh) | 渲染水面方法及装置、电子设备、存储介质 | |
Heimann et al. | Joint Geometry and Attribute Upsampling of Point Clouds Using Frequency-Selective Models with Overlapped Support | |
CN110363235A (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 |