CN112435304B - 水体交互贴图方法及系统 - Google Patents
水体交互贴图方法及系统 Download PDFInfo
- Publication number
- CN112435304B CN112435304B CN202010700746.9A CN202010700746A CN112435304B CN 112435304 B CN112435304 B CN 112435304B CN 202010700746 A CN202010700746 A CN 202010700746A CN 112435304 B CN112435304 B CN 112435304B
- Authority
- CN
- China
- Prior art keywords
- map
- water body
- bump
- colors
- color
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/55—Radiosity
-
- 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
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/30—Assessment of water resources
Abstract
本申请公开了一种水体交互贴图方法,该方法包括:通过粒子发射器发射粒子,并用正交摄像机进行观察,模拟出两种颜色的波动图;对所述两种颜色的波动图进行转换为Bump贴图的处理;根据所述Bump贴图计算得到对应的法线贴图;根据所得到的法线贴图和光照计算实现水体交互效果。本申请还公开了一种水体交互贴图系统、电子装置和计算机可读存储介质。由此,能够取代传统水体交互的顶点位移计算,不依托于顶点数量,而是主要靠法线贴图计算实现水体交互效果。
Description
技术领域
本申请涉及图形处理技术领域,尤其涉及一种水体交互贴图方法、系统、电子装置及计算机可读存储介质。
背景技术
在计算机图形处理技术,尤其是游戏开发过程中,水体交互是一种常见的效果,主要是渲染水体与物体交互时水面的形态,是能展现游戏细节的重要环节。但是,水体交互也往往是水面制作技术中的难点。传统的水体交互效果一般都是依托于顶点运动,配合波动方程来计算出顶点位移。这种实现方法需要很高的顶点面数,而对于面数较低的情况,则无法通过修改顶点来模拟水体。
需要说明的是,上述内容并不用于限制申请保护范围。
发明内容
本申请的主要目的在于提出一种水体交互贴图方法、系统、电子装置及计算机可读存储介质,旨在解决如何在不依托于顶点数量的情况下实现水体交互效果的问题。
为实现上述目的,本申请实施例提供了一种水体交互贴图方法,所述方法包括:
通过粒子发射器发射粒子,并用正交摄像机进行观察,模拟出两种颜色的波动图;
对所述两种颜色的波动图进行转换为Bump贴图的处理;
根据所述Bump贴图计算得到对应的法线贴图;及
根据所得到的法线贴图和光照计算实现水体交互效果。
可选地,所述方法在根据所得到的法线贴图和光照计算实现水体交互效果之前还包括:
通过对所述Bump贴图的偏移和纹理采样,对所述法线贴图进行降噪处理。
可选地,所述通过粒子发射器发射粒子,并用正交摄像机进行观察,模拟出两种颜色的波动图包括:
创建正交摄像机,并设置所述正交摄像机的视图观察层级为只观察粒子发射器的画面;
创建粒子发射器,通过所述粒子发射器发射粒子,所述粒子为由渐变的两种颜色组成的第一贴图;
通过所述正交摄像机观察所述粒子发射器发射的所述粒子的画面,并将观察到的画面渲染至Render Texture贴图。
可选地,所述通过所述粒子发射器发射粒子包括:
在粒子系统中设置所述第一贴图的顶点的阿尔法通道;
计算所述第一贴图中每个像素到中心点的距离;
根据计算出的距离采样预设色带的颜色;
通过对阿尔法通道值加入衰减函数控制所述第一贴图的范围。
可选地,所述通过所述粒子发射器发射粒子还包括:
设置所述粒子发射器发射的多个所述粒子之间的颜色混合模式为线性减淡模式。
可选地,所述对所述两种颜色的波动图进行转换为Bump贴图的处理包括:
将所述两种颜色中的一种颜色表示高度上升,另一种颜色表示高度下降。
可选地,所述对所述两种颜色的波动图进行转换为Bump贴图的处理还包括:
将所述表示高度上升的颜色部分的高度值从0~1的范围转换到0.5~1的范围;
将所述表示高度下降的颜色部分的高度值从0~1的范围转换到0~0.5的范围。
可选地,所述对所述两种颜色的波动图进行转换为Bump贴图的处理还包括:
将所述表示高度上升的颜色部分每个像素的原高度值除以2再加上0.5;
将所述表示高度下降的颜色部分每个像素的原高度值乘以0.5。
可选地,所述根据所述Bump贴图计算得到对应的法线贴图包括:
分别对单颜色通道的所述Bump贴图进行ddx、ddy计算得到对应的单颜色通道的法线贴图;
根据两个所述单颜色通道的法线贴图混合得到最终的法线贴图。
可选地,所述两种颜色为RGB颜色通道中的任意两种。
可选地,所述通过对所述Bump贴图的偏移和纹理采样,对所述法线贴图进行降噪处理包括:
设置UV坐标的偏移值;
根据所述偏移值分别将单颜色通道的所述Bump图进行两次偏移和纹理采样,得到新Bump图;
将每个单颜色通道的新Bump图与原图相减,得到像素变化率;
根据所述像素变化率对所述法线贴图进行降噪处理。
此外,为实现上述目的,本申请实施例还提出一种水体交互贴图系统,所述系统包括:
模拟模块,用于通过粒子发射器发射粒子,并用正交摄像机进行观察,模拟出两种颜色的波动图;
转换模块,用于对所述两种颜色的波动图进行转换为Bump贴图的处理;计算模块,用于根据所述Bump贴图计算得到对应的法线贴图;及
生成模块,用于根据所得到的法线贴图和光照计算实现水体交互效果。
为实现上述目的,本申请实施例还提出一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的水体交互贴图程序,所述水体交互贴图程序被所述处理器执行时实现如上述的水体交互贴图方法。
为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有水体交互贴图程序,所述水体交互贴图程序被处理器执行时实现如上述的水体交互贴图方法。
本申请实施例提出的水体交互贴图方法、系统、电子装置及计算机可读存储介质,能够通过发射粒子模拟波动图,再采用法线贴图计算实现水体交互效果,取代传统水体交互的顶点位移计算,不依托于顶点数量,而是主要靠法线贴图形成流动效果。
附图说明
图1为实现本申请各个实施例的一种应用环境架构图;
图2为本申请第一实施例提出的一种水体交互贴图方法的流程图;
图3为本申请中所创建的一种正交摄像机和粒子发射器的示意图;
图4为图2中步骤S20的细化流程示意图;
图5为图4中步骤S202的细化流程示意图;
图6为本申请中一种预设色带的示意图;
图7A-7B为本申请中重复系数分别为4和40时的一种粒子贴图的示意图;
图8A-8B为本申请中粒子发射器发射单个粒子和两个粒子时的一种粒子贴图的示意图;
图9为本申请中一种Render Texture贴图的示意图;
图10A-10C为将图9的Render Texture贴图转换为Bump贴图的示意图;
图11为本申请中的ddx、ddy计算过程的示意图;
图12A-12C为将图10的Bump贴图转化为法线贴图的示意图;
图13为根据图12C的法线贴图生成的水体交互效果示意图;
图14为本申请第二实施例提出的一种水体交互贴图方法的流程图;
图15为图14中步骤S36的细化流程示意图;
图16为在图13基础上进行降噪处理后得到的法线贴图的示意图;
图17为根据图16中的法线贴图生成的水体交互效果示意图;
图18为本申请第三实施例提出的一种电子装置的硬件架构示意图;
图19为本申请第四实施例提出的一种水体交互贴图系统的模块示意图;
图20为本申请第五实施例提出的一种水体交互贴图系统的模块示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参阅图1,图1为实现本申请各个实施例的一种应用环境架构图。本申请可应用于包括,但不仅限于粒子发射器2、正交摄像机4、水体交互贴图装置6的应用环境中。
其中,所述粒子发射器2用于发射一个或多个粒子,这些粒子可以具备物理性质。所述正交摄像机4用于观察粒子发射器2发射的粒子的画面。所述正交摄像机4拍摄的效果为正交视图,即不考虑物体的透视效果,只是将物体所在三维空间的点一一对应到二维视图平面上的成像。通过所述粒子发射器2发射粒子,并使用所述正交摄像机4观察所述粒子发射器2发射的粒子的画面,可以模拟出两种颜色的波动图。所述水体交互贴图装置6用于对通过所述粒子发射器2和正交摄像机4模拟的所述两种颜色的波动图进行转换得到法线贴图,从而根据所述法线贴图实现水体交互效果。所述水体交互贴图装置6可以为计算机或服务器等电子装置。所述服务器可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
实施例一
如图2所示,为本申请第一实施例提出的一种水体交互贴图方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。
该方法包括以下步骤:
S20,通过粒子发射器发射粒子,并用正交摄像机进行观察,模拟出两种颜色的波动图。
进一步参阅图3及图4,图3为本实施例创建的正交摄像机和粒子发射器的示意图,图4为上述步骤S20的细化流程示意图。在本实施例中,所述步骤S20具体包括:
S200,创建正交摄像机并设置所述正交摄像机的视图观察层级。
如图3所示,创建正交摄像机30,并设置所述正交摄像机30的位置、视口方向、裁剪平面距离、观察的背景色等参数。在本实施例中,正交摄像机30放置于平面中心,视口方向对着平面的正上方,并设置正交摄像机30的裁剪平面距离。其中,正交摄像机30的视锥体是由六个平面包围而成,这些平面称为裁剪平面,六个裁剪平面中的近裁剪平面及远裁剪平面决定了正交摄像机30可以看到的深度范围。另外,将正交摄像机30观察的背景色设置为黑色。
然后,使用所述正交摄像机30的视图观察,并且设置观察的层级。在本实施例中,将所述正交摄像机30的视图观察层级设置为只观察粒子发射器的画面(不观察水面)。
S202,创建粒子发射器(图3中粒子发射器32),通过所述粒子发射器发射粒子,所述粒子为由渐变的两种颜色组成的贴图。
所述粒子(贴图)的作用是模拟波动图,主要需要用两个颜色通道来表示凹凸,在RGB三个通道中任意选两个即可。本实施例以红色和绿色为例进行说明。然后通过距离函数计算波动的形状,并加入衰减函数来控制范围。
进一步参阅图5,为上述步骤S202的细化流程示意图。在本实施例中,所述步骤S202具体包括:
S2020,在粒子系统中设置贴图的顶点的阿尔法通道(αChannel或AlphaChannel)。
粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其他传统的渲染技术难以实现真实感的物理运动规律。常使用粒子系统模拟的现象有火、爆炸、落叶、流星或发光轨迹等视觉效果。在本实施例中,采用所述粒子系统模拟水面波动。
所述阿尔法通道是指一张图片的透明和半透明度,一般Alpha值的取值范围为0~1之间。例如,对于一张每个像素使用16个比特存储的位图,图形中的每个像素可能以5个比特表示红色,5个比特表示绿色,5个比特表示蓝色,最后一个比特是Alpha值。在这种情况下,所述阿尔法通道只能表示透明或不透明,因为Alpha值只有0或1两种不同表示的可能性。又例如,一个对于一张每个像素使用32个比特存储的位图,可以用每8个比特分别表示红色、绿色、蓝色和Alpha值。在这种情况下,所述阿尔法通道不仅可以表示透明或不透明,还可以表示256级的半透明度,因为Alpha值有8个比特可以有256种不同的数据表示可能性。
S2022,计算贴图中每个像素到中心点的距离。
在本实施例中,根据发射出的贴图的UV坐标来计算出距离函数,根据所述距离函数用当前像素的UV坐标减去中心点的UV坐标(0.5,0.5)来得出每个像素到中心点的距离。三维建模中的纹理坐标通常具有U和V两个坐标轴,也称为UV坐标。其中,U代表横向坐标上的分布、V代表纵向坐标上的分布。UV坐标定义了图像上每个点的位置的信息,这些点与3D模型是相互联系的,以决定表面纹理贴图的位置。UV坐标就是将图像上每一个点精确对应到模型物体的表面。
所述距离函数可以采用任何现有的可行的距离函数,例如Ray Marching(光线追踪)算法的距离函数,在此不做限制。采用的距离函数不同时,可以产生不同的波动形状,本实施例以圆形为例进行说明,另外还可以是方形等,也可以加上扰动噪波。
S2024,根据计算出的距离采样预设色带的颜色。
根据每个像素到中心点的距离,采样预设色带的颜色,形成有变化的颜色的波动图。如图6所示,是一种所述预设色带的示意图。在本实施例中,所述预设色带是包含红色、绿色和黑色并具有渐变效果的色带图。
采样的每个像素的UV信息为一个二维向量,具体为_Period*(distToCenter–Alpha,0.5),其中,_Period为重复系数,distToCenter为该像素到中心点的距离,Alpha为顶点的Alpha值。当Alpha值不变时,可以得到一个没有衰减的波动图。
例如,图7A所示为一种重复系数为4时的贴图,图7B所示为一种重复系数为40时的贴图。
S2026,通过对Alpha值加入衰减函数控制贴图的范围。
在本实施例中,可以使用指数衰减,即对Alpha值进行pow(指数函数)操作,并设置衰减系数e,即为Alpha的e次方的值。随着发射时间的增加,Alpha值减小,最后为0。
S2028,设置粒子之间的颜色混合模式为线性减淡模式。
颜色混合模式(blend)是计算机呈现渲染结果的最后阶段,混合操作作用于所有计算已结束且已决定将当前计算结果输出到帧缓冲中。在本实施例中,当发射多个粒子时,将粒子之间的颜色混合模式设置为线性减淡(Add)模式。所述线性减淡模式的原理是:查看每个通道的颜色信息,并能增加亮度使基色变亮以反映混合色,与黑色混合则不发生变化。线性减淡公式为:基色+混合色=结果色。举例而言,当发射两个颜色为(0.1,0,0)的粒子时,这两个粒子之间的颜色混合后,叠加在一起,显示出的颜色变成(0.2,0,0)。例如,图8A所示是粒子发射器发射单个粒子时的示意图,图8B是粒子发射器发射两个粒子时的示意图。由于粒子之间的颜色混合模式为所述线性减淡模式,因此本实施例可以模拟出水波的叠加干涉的效果。
回到图4,S204,通过所述正交摄像机观察所述粒子发射器发射的粒子的画面,并将观察到的画面渲染至Render Texture贴图。
在本实施例中,所述正交摄像机的视图观察层级为只观察粒子发射器的画面,将观察到的每帧画面渲染到一张Render Texture贴图上。Render Texture是一种特殊的贴图类型,本质上是将一个帧缓冲区对象(Frame Buffer Object,FBO)连接到服务端(server-side)的贴图对象。在渲染过程中,贴图最开始是在CPU的内存中,这个贴图通常被称为客户端(client-side)贴图,它最终要被送到GPU的存储中,GPU才能使用它进行渲染,送到GPU中的贴图就被称为server-side贴图,贴图在CPU和GPU之间的拷贝需要考虑到一定的带宽限制。帧缓冲区(Frame Buffer)为GPU中渲染结果的目的地,绘制的所有结果都最终保存在FrameBuffer中,有一个默认的FBO直接连着显示器窗口区域。
在本实施例中,该Render Texture贴图包含红色和绿色,加上背景的黑色构成红绿黑三色图。如图9所示,为一种所述Render Texture贴图的示意图。
回到图2,S22,对所述两种颜色的波动图进行转换为Bump贴图的处理。其中一种颜色表示高度上升,另一种颜色表示高度下降。
将所述Render Texture贴图转换为Bump贴图,Bump贴图又被称为高度图,本质是一张灰度图,上面的每个像素只存了一个值,即高度值,取值范围为0~1,其中1代表最凸,0代表最凹,0.5表示不凹不凸。在本实施例中,选择红色表示高度上升,绿色表示高度下降。具体可以通过以下方式实现:
(1)红色部分的高度值需要从0~1的范围转换到0.5~1的范围,即红色部分每个像素的原高度值除以2加上0.5;
(2)绿色部分的高度值需要从0~1的范围转换到0~0.5的范围,即绿色部分每个像素的原高度值乘以0.5。
当粒子发射器发射了多个粒子(例如两个粒子)时,由于粒子之间的颜色混合模式为线性减淡模式,所有的叠加都会变亮,所以本实施例反过来利用该特性,模拟波的叠加。也就是说,向上的波(红色波)越叠加越亮从而高度值越大上升越多,从而更凸;向下的波(绿色波)越叠加越亮从而高度值越小下降越多,从而更凹。当红色波遇到绿色波,即上下振幅相遇,则用红色波得出来的0.5~到1的值减去绿色波的0~0.5的值,得到符合要求的灰度图,即高度值0.5表示不凹不凸,高度值0.5以上为凸,高度值0.5以下为凹。
参阅图10A-10C所示,为将图9的Render Texture贴图转换为Bump贴图的示意图。如图10A所示,为根据所述Render Texture贴图得到的红色波图,将高度值转换到0.5~1的范围。如图10B所示,为根据所述Render Texture贴图得到的绿色波图,将高度值转换到0~0.5的范围。如图10C所示,为将图10A和图10B相减得到的最终的高度图(Bump图)。
S24,根据所述Bump贴图计算得到对应的法线贴图。
法线是指模型表面的朝向,在三维建模中,可以只记录顶点的法线,也可以记录各个像素的法线。记录像素法线的贴图称为法线贴图(Normal Map),一般用于次世代游戏。法线贴图用于记录切线空间(Tangent Space)的法线信息,并将其根据UV坐标存在RGB贴图中。切线空间又称为TBN空间,即切线、副法线、法线。在本实施例的法线贴图中,只存了R通道和G通道,对应切线和副法线的信息,通过计算得出法线的大小和方向,即根据切线、法线和副法线的平方和为1得出大小,叉积得出方向。
该步骤的具体过程包括:
首先,对单颜色通道的Bump图(例如图10A和图10B)转化为对应的法线贴图。在本实施例中,可以根据以下公式得到单颜色通道的法线贴图:
R=ddx(bump);
G=ddy(bump)。
然后,根据两个单颜色通道的法线贴图混合得到最终的法线贴图。
所述ddx、ddy为偏导函数,分别对应屏幕空间中x、y轴上像素块(2*2)中各种变量的变化率。参阅图11所示,为ddx、ddy计算过程的示意图。图11中显示的是渲染的屏幕像素,中间区域是一个2*2像素块,p(x,y)表示在屏幕空间坐标系中坐标(x,y)的像素上的某一个变量。从图11可以看出,ddx为右边像素块的值减去左边像素块的值,ddy为下面像素块的值减去上面像素块的值。值得注意的时,所述偏导函数在高阶着色器语言(High LevelShader Language,HLSL)中称为ddx和ddy,在OpenGL着色语言(OpenGL Shading Language,GLSL)中则被称为dFdx和dFdy,原理和计算过程与ddx、ddy相似,在此不再赘述。
参阅图12A-12C所示,为将图10的Bump贴图转化为法线贴图的示意图。如图12A所示,为将图10A对R通道进行上述ddx、ddy计算得出的法线贴图。如图12B所示,为将图10B对G通道进行上述ddx、ddy计算得出的法线贴图。如图12C所示,为将R通道采用图12A,G通道采用图12B,B通道设置为1得出的最终的法线贴图。
S26,根据所得到的法线贴图和光照计算实现水体交互效果。
将所得到的法线贴图贴至模型网格上,使模型产生凹凸,并进行光照计算,即可生成所要的水体交互效果图。所述模型网格是指三维软件里制作的3D模型,包含由顶点和其他信息集合的数据。在本实施例中,可以采用任意现有的可行的光照计算方式,根据所得到的法线贴图进行光照计算,在此不做限制。
如图13所示,为根据图12C的法线贴图生成的水体交互效果示意图。
本实施例提出的水体交互贴图方法,可以通过发射粒子模拟波动图,再采用法线贴图计算实现水体交互效果,取代传统水体交互的顶点位移计算,不依托于顶点数量,而是主要靠法线贴图形成流动效果,并且能实现水波的叠加共振。
实施例二
如图14所示,为本申请第二实施例提出的一种水体交互贴图方法的流程图。在第二实施例中,所述水体交互贴图方法在上述第一实施例的基础上,还包括步骤S36。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。
该方法包括以下步骤:
S30,通过粒子发射器发射粒子,并用正交摄像机进行观察,模拟出两种颜色的波动图。
该步骤的具体过程参阅图4、图5及相关说明,在此不再赘述。
S32,对所述两种颜色的波动图进行转换为Bump贴图的处理。其中一种颜色表示高度上升,另一种颜色表示高度下降。
在本实施例中,选择红色表示高度上升,绿色表示高度下降。具体可以通过以下方式实现:
(1)红色部分的高度值需要从0~1的范围转换到0.5~1的范围,即红色部分每个像素的原高度值除以2加上0.5;
(2)绿色部分的高度值需要从0~1的范围转换到0~0.5的范围,即绿色部分每个像素的原高度值乘以0.5。
S34,根据所述Bump贴图计算得到对应的法线贴图。
首先,对单颜色通道的Bump图转化为对应的法线贴图。在本实施例中,可以根据以下公式得到单颜色通道的法线贴图:
R=ddx(bump);
G=ddy(bump)。
然后,根据两个单颜色通道的法线贴图混合得到最终的法线贴图。
图13为根据该法线贴图生成的水体交互效果图,可见的噪点过多。
S36,通过对所述Bump贴图的偏移和纹理采样,对所述法线贴图进行降噪处理。
在本实施例中,可以对单颜色通道的Bump图进行偏移和纹理采样后,与原图相减得到像素变化率,从而根据该变化率进行降噪处理。
进一步参阅图15,为上述步骤S36的细化流程示意图。在本实施例中,所述步骤S36具体包括:
S360,设置UV坐标的偏移值。
在本实施例中,降噪处理的过程类似上述ddx、ddy计算,但需要对UV坐标的偏移量进行手动赋值。
S362,根据所述偏移值将单颜色通道的Bump图进行两次偏移和纹理采样,得到新Bump图。
将所述单颜色通道的Bump图进行水平偏移后进行纹理采样,再进行竖向偏移,并再次进行纹理采样,得到该颜色通道对应的新Bump图。
S364,将每个单颜色通道的新Bump图与原图相减,得到像素变化率。
将得到的新Bump图的UV坐标与原图进行减法(R通道的新Bump图与R通道的原Bump图相减,G通道的新Bump图与G通道的原Bump图相减)。这个原理和ddx,ddy相似,即当偏移一个很小的UV值时,此时减出来的结果约等于像素变化率(导数)。
S366,根据所述像素变化率对所述法线贴图进行降噪处理。
如图16所示,为在图13基础上进行降噪处理后得到的法线贴图的示意图。
回到图14,S38,根据处理后的法线贴图和光照计算实现水体交互效果。
将所得到的法线贴图贴至模型网格上,使模型产生凹凸,并进行光照计算,即可生成所要的水体交互效果图。在本实施例中,可以采用任意现有的可行的光照计算方式,根据所得到的法线贴图进行光照计算,在此不做限制。
如图17所示,为根据图16中的法线贴图生成的水体交互效果示意图,可见相对于图13噪点有所改善。
本实施例提出的水体交互贴图方法,可以通过对单颜色通道的Bump图进行偏移和纹理采样实现降噪处理,减少最后生成的水体交互效果图中的噪点数量,提升渲染效果。
实施例三
如图18所示,为本申请第三实施例提出一种电子装置20的硬件架构示意图。本实施例中,所述电子装置20可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。需要指出的是,图18仅示出了具有组件21-23的电子装置20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。在本实施例中,所述电子装置20可以是所述水体交互贴图装置6。
所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置20的内部存储单元,例如该电子装置20的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置20的外部存储设备,例如该电子装置20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置20的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置20的操作系统和各类应用软件,例如水体交互贴图系统60的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置20的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述水体交互贴图系统60等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置20与其他电子设备之间建立通信连接。
实施例四
如图19所示,为本申请第四实施例提出一种水体交互贴图系统60的模块示意图。所述水体交互贴图系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
在本实施例中,所述水体交互贴图系统60包括:
模拟模块600,用于通过粒子发射器发射粒子,并用正交摄像机进行观察,模拟出两种颜色的波动图。
该过程的具体说明参阅图4及图5,在此不再赘述。
转换模块602,用于对所述两种颜色的波动图进行转换为Bump贴图的处理。其中一种颜色表示高度上升,另一种颜色表示高度下降。
在本实施例中,选择红色表示高度上升,绿色表示高度下降。具体可以通过以下方式实现:
(1)红色部分的高度值需要从0~1的范围转换到0.5~1的范围,即红色部分每个像素的原高度值除以2加上0.5;
(2)绿色部分的高度值需要从0~1的范围转换到0~0.5的范围,即绿色部分每个像素的原高度值乘以0.5。
计算模块604,用于根据所述Bump贴图计算得到对应的法线贴图。
首先,对单颜色通道的Bump图转化为对应的法线贴图。在本实施例中,可以根据以下公式得到单颜色通道的法线贴图:
R=ddx(bump);
G=ddy(bump)。
然后,根据两个单颜色通道的法线贴图混合得到最终的法线贴图。
生成模块606,用于根据所得到的法线贴图和光照计算实现水体交互效果。
将所得到的法线贴图贴至模型网格上,使模型产生凹凸,并进行光照计算,即可生成所要的水体交互效果图。在本实施例中,可以采用任意现有的可行的光照计算方式,根据所得到的法线贴图进行光照计算,在此不做限制。
本实施例提出的水体交互贴图系统,可以通过发射粒子模拟波动图,再采用法线贴图计算实现水体交互效果,取代传统水体交互的顶点位移计算,不依托于顶点数量,而是主要靠法线贴图形成流动效果,并且能实现水波的叠加共振。
实施例五
如图20所示,为本申请第五实施例提出一种水体交互贴图系统60的模块示意图。在本实施例中,所述水体交互贴图系统60除了包括第四实施例中的所述模拟模块600、转换模块602、计算模块604、生成模块606之外,还包括降噪模块608。
所述降噪模块608,用于通过对所述Bump贴图的偏移和纹理采样,对所述法线贴图进行降噪处理。
在本实施例中,可以对单颜色通道的Bump图进行偏移和纹理采样后,与原图相减得到像素变化率,从而根据该变化率进行降噪处理。该过程的具体的具体说明参阅图15,在此不再赘述。
然后,触发所述生成模块606根据处理后的法线贴图和光照计算实现水体交互效果。
本实施例提出的水体交互贴图系统,可以通过对单颜色通道的Bump图进行偏移和纹理采样实现降噪处理,减少最后生成的水体交互效果图中的噪点数量,提升渲染效果。
实施例六
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有水体交互贴图程序,所述水体交互贴图程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的水体交互贴图方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。
Claims (14)
1.一种水体交互贴图方法,其特征在于,所述方法包括:
通过粒子发射器发射粒子,并用正交摄像机进行观察,模拟出两种颜色的波动图;
对所述两种颜色的波动图进行转换为Bump贴图的处理;
根据所述Bump贴图计算得到对应的法线贴图;及
根据所得到的法线贴图和光照计算实现水体交互效果。
2.根据权利要求1所述的水体交互贴图方法,其特征在于,所述方法在根据所得到的法线贴图和光照计算实现水体交互效果之前还包括:
通过对所述Bump贴图的偏移和纹理采样,对所述法线贴图进行降噪处理。
3.根据权利要求1或2所述的水体交互贴图方法,其特征在于,所述通过粒子发射器发射粒子,并用正交摄像机进行观察,模拟出两种颜色的波动图包括:
创建正交摄像机,并设置所述正交摄像机的视图观察层级为只观察粒子发射器的画面;
创建粒子发射器,通过所述粒子发射器发射粒子,所述粒子为由渐变的两种颜色组成的第一贴图;
通过所述正交摄像机观察所述粒子发射器发射的所述粒子的画面,并将观察到的画面渲染至RenderTexture贴图。
4.根据权利要求3所述的水体交互贴图方法,其特征在于,所述通过所述粒子发射器发射粒子包括:
在粒子系统中设置所述第一贴图的顶点的阿尔法通道;
计算所述第一贴图中每个像素到中心点的距离;
根据计算出的距离采样预设色带的颜色;
通过对阿尔法通道值加入衰减函数控制所述第一贴图的范围。
5.根据权利要求4所述的水体交互贴图方法,其特征在于,所述通过所述粒子发射器发射粒子还包括:
设置所述粒子发射器发射的多个所述粒子之间的颜色混合模式为线性减淡模式。
6.根据权利要求1或2所述的水体交互贴图方法,其特征在于,所述对所述两种颜色的波动图进行转换为Bump贴图的处理包括:
将所述两种颜色中的一种颜色表示高度上升,另一种颜色表示高度下降。
7.根据权利要求6所述的水体交互贴图方法,其特征在于,所述对所述两种颜色的波动图进行转换为Bump贴图的处理还包括:
将所述表示高度上升的颜色部分的高度值从0~1的范围转换到0.5~1的范围;
将所述表示高度下降的颜色部分的高度值从0~1的范围转换到0~0.5的范围。
8.根据权利要求7所述的水体交互贴图方法,其特征在于,所述对所述两种颜色的波动图进行转换为Bump贴图的处理还包括:
将所述表示高度上升的颜色部分每个像素的原高度值除以2再加上0.5;
将所述表示高度下降的颜色部分每个像素的原高度值乘以0.5。
9.根据权利要求1或2所述的水体交互贴图方法,其特征在于,所述根据所述Bump贴图计算得到对应的法线贴图包括:
分别对单颜色通道的所述Bump贴图进行ddx、ddy计算得到对应的单颜色通道的法线贴图,所述ddx、ddy为偏导函数,分别对应屏幕空间中x、y轴上2*2像素块中各种变量的变化率;
根据两个所述单颜色通道的法线贴图混合得到最终的法线贴图。
10.根据权利要求1或2所述的水体交互贴图方法,其特征在于,所述两种颜色为RGB颜色通道中的任意两种。
11.根据权利要求2所述的水体交互贴图方法,其特征在于,所述通过对所述Bump贴图的偏移和纹理采样,对所述法线贴图进行降噪处理包括:
设置UV坐标的偏移值;
根据所述偏移值分别将单颜色通道的所述Bump图进行两次偏移和纹理采样,得到新Bump图;
将每个单颜色通道的新Bump图与原图相减,得到像素变化率;
根据所述像素变化率对所述法线贴图进行降噪处理。
12.一种水体交互贴图系统,其特征在于,所述系统包括:
模拟模块,用于通过粒子发射器发射粒子,并用正交摄像机进行观察,模拟出两种颜色的波动图;
转换模块,用于对所述两种颜色的波动图进行转换为Bump贴图的处理;
计算模块,用于根据所述Bump贴图计算得到对应的法线贴图;及
生成模块,用于根据所得到的法线贴图和光照计算实现水体交互效果。
13.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的水体交互贴图程序,所述水体交互贴图程序被所述处理器执行时实现如权利要求1-11中任一项所述的水体交互贴图方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有水体交互贴图程序,所述水体交互贴图程序被处理器执行时实现如权利要求1-11中任一项所述的水体交互贴图方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010700746.9A CN112435304B (zh) | 2020-07-20 | 2020-07-20 | 水体交互贴图方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010700746.9A CN112435304B (zh) | 2020-07-20 | 2020-07-20 | 水体交互贴图方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112435304A CN112435304A (zh) | 2021-03-02 |
CN112435304B true CN112435304B (zh) | 2023-03-14 |
Family
ID=74690315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010700746.9A Active CN112435304B (zh) | 2020-07-20 | 2020-07-20 | 水体交互贴图方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112435304B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113570696B (zh) * | 2021-09-23 | 2022-01-11 | 深圳易帆互动科技有限公司 | 动态模型的镜像图像处理方法、装置及可读存储介质 |
CN116194961A (zh) * | 2021-09-27 | 2023-05-30 | 京东方科技集团股份有限公司 | 水纹仿真方法及装置、电子设备、存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426691A (zh) * | 2011-10-24 | 2012-04-25 | 克拉玛依红有软件有限责任公司 | 一种基于gpu的实时火焰效果的模拟方法 |
CN105303601A (zh) * | 2015-09-22 | 2016-02-03 | 浙江工商大学 | 一种基于粒子系统的喷泉模拟实现方法 |
CN105913471A (zh) * | 2016-04-06 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 图片处理的方法和装置 |
CN105912234A (zh) * | 2016-04-06 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 虚拟场景的交互方法和装置 |
CN107341853A (zh) * | 2017-07-13 | 2017-11-10 | 河北中科恒运软件科技股份有限公司 | 超大虚拟场景和动态摄屏的虚实融合方法及系统 |
CN109448137A (zh) * | 2018-10-23 | 2019-03-08 | 网易(杭州)网络有限公司 | 交互方法、交互装置、电子设备及存储介质 |
CN109598777A (zh) * | 2018-12-07 | 2019-04-09 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备及存储介质 |
CN110196746A (zh) * | 2019-05-30 | 2019-09-03 | 网易(杭州)网络有限公司 | 交互界面渲染方法及装置、电子设备、存储介质 |
CN110866967A (zh) * | 2019-11-15 | 2020-03-06 | 深圳市瑞立视多媒体科技有限公司 | 水波纹渲染方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7102647B2 (en) * | 2001-06-26 | 2006-09-05 | Microsoft Corporation | Interactive horizon mapping |
-
2020
- 2020-07-20 CN CN202010700746.9A patent/CN112435304B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426691A (zh) * | 2011-10-24 | 2012-04-25 | 克拉玛依红有软件有限责任公司 | 一种基于gpu的实时火焰效果的模拟方法 |
CN105303601A (zh) * | 2015-09-22 | 2016-02-03 | 浙江工商大学 | 一种基于粒子系统的喷泉模拟实现方法 |
CN105913471A (zh) * | 2016-04-06 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 图片处理的方法和装置 |
CN105912234A (zh) * | 2016-04-06 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 虚拟场景的交互方法和装置 |
CN107341853A (zh) * | 2017-07-13 | 2017-11-10 | 河北中科恒运软件科技股份有限公司 | 超大虚拟场景和动态摄屏的虚实融合方法及系统 |
CN109448137A (zh) * | 2018-10-23 | 2019-03-08 | 网易(杭州)网络有限公司 | 交互方法、交互装置、电子设备及存储介质 |
CN109598777A (zh) * | 2018-12-07 | 2019-04-09 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备及存储介质 |
CN110196746A (zh) * | 2019-05-30 | 2019-09-03 | 网易(杭州)网络有限公司 | 交互界面渲染方法及装置、电子设备、存储介质 |
CN110866967A (zh) * | 2019-11-15 | 2020-03-06 | 深圳市瑞立视多媒体科技有限公司 | 水波纹渲染方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
基于GPU粒子系统的可交互水波实时模拟;张艺衡等;《计算机工程与设计》;20140831;全文 * |
基于SPH的水体交互三维虚拟仿真;方贵盛等;《浙江水利水电学院学报》;20161031;全文 * |
虚拟现实中动态喷泉及动态水面效果渲染;黄亚玲;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20130615;第16-52页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112435304A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
JP4643271B2 (ja) | 区間解析を使用するコンピュータ・グラフィックスの際の可視面決定システムおよび方法 | |
CN109448137B (zh) | 交互方法、交互装置、电子设备及存储介质 | |
CN112435304B (zh) | 水体交互贴图方法及系统 | |
CN104854622B (zh) | 形成基于优化的多边形的外壳网格的方法 | |
CN114419240B (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
US10380790B2 (en) | System and methods for generating procedural window lighting effects | |
CN111047506B (zh) | 环境图生成和孔填充 | |
CN106898040A (zh) | 虚拟资源对象渲染方法和装置 | |
Ganovelli et al. | Introduction to computer graphics: A practical learning approach | |
WO2008014384A2 (en) | Real-time scenery and animation | |
EP2677504A2 (en) | Method for estimating the quantity of light received by a participating media, and corresponding device | |
CN114375464A (zh) | 使用边界体积表示对虚拟空间中的动态单元进行光线追踪 | |
US20040257364A1 (en) | Shadow casting within a virtual three-dimensional terrain model | |
CN109658494B (zh) | 一种在三维可视化图形中的阴影渲染方法 | |
Döllner | Geovisualization and real-time 3D computer graphics | |
CN114139250A (zh) | 基于虚幻引擎的自动布光方法、装置、设备及存储介质 | |
US20180005432A1 (en) | Shading Using Multiple Texture Maps | |
Nordahl | Enhancing the hpc-lab snow simulator with more realistic terrains and other interactive features | |
Roettger et al. | Fast volumetric display of natural gaseous phenomena | |
WO2023184139A1 (en) | Methods and systems for rendering three-dimensional scenes | |
CN114004920A (zh) | 一种在画面中添加火焰特效的方法和装置 | |
Kühnert et al. | Fur shading and modification based on cone step mapping | |
CN117671062A (zh) | 图像生成方法、装置、非易失性存储介质和计算机设备 | |
CN115619921A (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 |