CN104463937B - 基于不规则物体的动画生成方法及装置 - Google Patents
基于不规则物体的动画生成方法及装置 Download PDFInfo
- Publication number
- CN104463937B CN104463937B CN201410737522.XA CN201410737522A CN104463937B CN 104463937 B CN104463937 B CN 104463937B CN 201410737522 A CN201410737522 A CN 201410737522A CN 104463937 B CN104463937 B CN 104463937B
- Authority
- CN
- China
- Prior art keywords
- bath ripple
- texture maps
- random
- bath
- ripple
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于不规则物体的动画生成方法及装置,包括:根据CPU随机函数生成一系列随机参数,并将这些参数传入GPU中的柏林函数生成一张随机澡波纹理图;对随机澡波纹理图进行UV采样,生成n幅澡波纹理图A;分别对n幅澡波纹理图A进行平滑滤波处理,生成与澡波纹理图A一一对应的n幅澡波纹理图B;将n幅澡波纹理图B叠加得到最终的一张澡波纹理图C;根据澡波纹理图C生成顶点的高度值,以高度值合成不规则物体的动画。
Description
技术领域
本发明涉及计算机图形学技术领域,尤其涉及一种基于不规则物体的动画生成方法及装置。
背景技术
随着计算机可编程技术的不断发展,3D图像渲染的性能也有了很大的提高,可以使用用户自定义的着色程序语言来替换原来固定流水线中某些功能模块,使得GPU在功能上更加具有灵活性。
目前通常使用法线贴图来模拟水波效果,其实现过程为:首先为水模型网格建立多边形网格模型,并为水模型网格赋予多张法线贴图,其中,法线贴图的方向影响光照的方向,在不考虑风向和风速的变化的情况下,随着时间偏移法线贴图的纹理坐标,可以在不同的时刻看到水面像被风吹的效果,上述方法虽然能提供场景的真实感,但是程序每帧执行的时间较长,不能渲染出实时性的水面,因此渲染实时性较差,尤其是在渲染复杂场景,例如层峦叠嶂的山峰、连绵起伏的丘陵、波光粼粼的水面、沧海桑田的砾石等效果更差。
发明内容
有鉴于此,本发明的目的在于提出一种基于不规则物体的动画生成方法及装置,能够使得在渲染3D动画复杂场景时实时性更高。
为达此目的,本发明采用以下技术方案:
本发明提供一种基于不规则物体的动画生成方法,包括:
根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,所述随机参数为CPU根据随机函数生成的一系列随机数;
对所述随机澡波纹理图进行UV采样,生成n幅澡波纹理图A,所述n为大于等于1的正整数;
分别对所述n幅澡波纹理图A进行平滑滤波处理,生成与所述澡波纹理图A一一对应的n幅澡波纹理图B;
将所述n幅澡波纹理图B的像素进行叠加得到一张澡波纹理图C;
根据所述澡波纹理图C生成顶点高度值,以高度值合成不规则物体的动画。
优选的,所述根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,包括:
生成随机缓存澡波纹理;
将所述随机参数写入所述随机缓存澡波纹理中,得到一张随机澡波纹理图。
优选的,所述对所述随机澡波纹理图进行采样生成n幅澡波纹理图A,包括:
生成n幅缓存澡波纹理;
对所述随机澡波纹理图中的像素值进行UV采样;
将采样得到的像素值写入所述缓存澡波纹理中。
优选的,所述对所述随机澡波纹理图中的像素值进行UV采样,包括:
针对缓存澡波纹理中的像素位置(x,y),采用如下公式计算得到目标位置(X,Y):
其中,P为常量,int(*)为取整;
获取所述随机澡波纹理图中目标位置(X,Y)处的像素值,将所述像素值作为缓存澡波纹理中的像素位置(x,y)处的像素值。
本发明还提供一种基于不规则物体的动画生成装置,包括:
澡波纹理生成模块,用于根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,所述随机参数为CPU根据随机函数生成的一系列随机数,生成n幅澡波纹理图A,生成n幅澡波纹理图B,将澡波纹理B叠加生成澡波纹理C,所述n为大于等于1的正整数;
采样模块,用于对所述随机澡波纹理图进行UV采样;
过滤模块,用于分别对所述n幅澡波纹理图A进行平滑滤波处理;
计算模块,用于根据所述n幅澡波纹理图B叠加生成最终的一张澡波纹理C;
合成模块,用于根据所述澡波纹理C生成顶点高度值,以高度值合成不规则物体的动画。
优选的,所述澡波纹理生成模块,具体用于生成缓存澡波纹理;
所述装置,还包括:
写入模块,用于将所述随机参数写入所述缓存澡波纹理中,得到一张随机澡波纹理图。
优选的,所述澡波纹理生成模块,具体用于生成n幅缓存澡波纹理;
所述采样模块,具体用于对所述随机澡波纹理图中的像素值进行UV采样;
所述写入模块,具体用于将采样得到的像素值写入所述缓存澡波纹理中。
优选的,所述采样模块,具体用于针对缓存澡波纹理中的像素位置(x,y),采用如下公式计算得到目标位置(X,Y):
其中,P为常量,int(*)为取整;
所述装置,还包括:
获取模块,用于获取所述随机澡波纹理图中目标位置(X,Y)处的像素值,将所述像素值作为缓存澡波纹理中的像素位置(x,y)处的像素值。
本发明实施例通过GPU根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,然后对随机澡波纹理图进行UV采样,生成n幅澡波纹理图A,分别对所述n幅澡波纹理图A进行平滑滤波处理,生成n幅澡波纹理图B,n幅澡波纹理叠加得到最终一张澡波纹理C,根据该澡波纹理图C生成顶点高度值,以高度值合成不规则物体的动画。通过上述方法可以描述自然界中各种复杂的不规则物体,且实时性较高,效果逼真,提高了渲染效率。
附图说明
图1是本发明具体实施方式1提供的基于不规则物体的动画生成方法流程示意图;
图2是本发明具体实施方式2提供的基于不规则物体的动画生成方法流程示意图;
图3是本发明具体实施方式2提供的噪声函数仿真示意图;
图4是本发明具体实施方式2提供的插值函数仿真示意图;
图5是本发明具体实施方式2提供的随机噪声纹理图示意图;
图6是本发明具体实施方式2提供的澡波纹理图A示意图;
图7是本发明具体实施方式2提供的合成澡波纹理图C示意图;
图8是本发明具体实施方式3提供的基于不规则物体的动画生成装置结构示意图;
图9是本发明具体实施方式4提供的基于不规则物体的动画生成装置结构示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
图1是本发明具体实施方式1提供的基于不规则物体的动画生成方法流程示意图,如图1所示,包括如下步骤:
S101、根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,所述随机参数为CPU根据随机函数生成的一系列随机数。
本发明实施例的执行主体为GPU,在绘制3D动画时,GPU首先接受随机参数,该随机参数为CPU利用随机函数生成的。具体的,CPU利用随机函数生成随机参数,CPU将这些随机参数传入GPU的柏林函数中,生成一幅随机澡波纹理图。
S102、对随机澡波纹理图进行UV采样,生成n幅澡波纹理图A,n为大于等于1的正整数。
具体的,GPU在生成随机澡波纹理图之后,对该澡波纹理图进行UV采样,得到n幅澡波纹理图A,其中n为大于等于1的正整数,具体值可以由用户根据情况来设定,优选为8。例如,随机澡波纹理图的大小为256*256,那么通过UV采样之后,可以得到8张16*16的澡波纹理图。
S103、分别对n幅澡波纹理图A进行平滑滤波处理,生成与澡波纹理图A一一对应的n幅澡波纹理图B,n幅澡波纹理图B进行叠加得到澡波纹理C,澡波纹理C生成顶点定高度。
具体的,为了消除或减弱澡波纹理图A中的干扰,提高图中曲线的平滑度,需要对澡波纹理图A进行平滑处理,通过采样周围4个(上,下,左,右)像素求平均,分别对n幅澡波纹理图A进行平滑滤波处理,得到与n幅澡波纹理图B。
S104、将n幅澡波纹理图B进行叠加得到一张澡波纹理C。
具体的,在3D场景中,所有的对象和模型均由三角形构成,而三角形由三个顶点构成,每个顶点不仅包括其坐标信息,还包括顶点的颜色、法向量和贴图坐标等信息。因此,在使用3D技术绘制这些不规则物体模型时,这些顶点包含的信息尤为重要。GPU可以采用如下方式生成不规则物体的顶点高度值:将n幅澡波纹理图B合成一张澡波纹理图C,n幅澡波纹理B是有n澡波纹理A的高度值经过平滑处理得到,将n幅澡波纹理B叠加得到澡波纹理C,澡波纹理C表示顶点的高度值,顶点的高度值随着时间的变换而变化,从而得到不规则物体顶点高度随时间变化而形成的动画效果。
S105、根据澡波纹理图C生成的高度值合成不规则物体的动画。
具体的,GPU在得到各个顶点的高度值之后,随着时间的变化而变化,顶点高度的位置也在不断的变化,从而合成了不规则物体的动画,为了更近一步计算,根据每个顶点的高度值可以计算法线,从而计算每个像素的光照值。
本发明实施例通过GPU根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,然后对随机澡波纹理图进行UV采样,生成n幅澡波纹理图A,分别对所述n幅二澡波纹理图A进行平滑滤波处理,生成n幅澡波纹理图B,将n幅澡波纹理叠加得到最终一张澡波纹理C,根据澡波纹理图C生成顶点的高度值,并根据各顶点高度值合成不规则物体的动画。通过上述方法可以描述自然界中各种复杂的不规则物体,且实时性较高,效果逼真,提高了渲染效率。
图2是本发明具体实施方式2提供的基于不规则物体的动画生成方法流程示意图,如图2所示,包括如下步骤:
S201、GPU接收CPU传入的随机参数。
具体的,CPU随机生成一些随机参数,将这些随机参数传入GPU的柏林函数中,相应的输出大量的随机参数。
S202、GPU根据所需创建缓存澡波纹理。
这些新创建的缓存澡波纹理是一个空的纹理,以备后续GPU将柏林函数输出值写入这些缓存澡波纹理中,对于需要写入的澡波纹理,都需要在内存中创建一块内存空间用来存储数据。
S203、GPU根据随机参数传入柏林函数生成一张随机澡波纹理图。
具体的,将随机参数作为柏林函数的输入参数,随之将输出大量的随机值。下面着重介绍一下柏林函数,柏林函数混合了在不同详细级别上进行操作的多个杂点函数,使相邻像素间产生较小的变化。柏林函数分为两部分:噪声函数和插值函数。噪声函数是一个函数式,一个输入参数对应一个输出值,如果输入参数是固定的,那么输出值也是固定的,这些输出值看起来杂乱无序的,如图3所示,其中横坐标表示输入参数,纵坐标表示输出值,纵坐标的输出值一般在(0,1)之间。插值函数是用户自定义的,在自然界中,物体的表面都是相对平滑的,物体表面距离很近的两个点,颜色会比较相似,因此利用这个特性,就可以固定一些关键点,然后根据这些关键点来平滑这些关键点之间的点。通常的做法就是利用插值函数来使其平滑,例如线性插值、余弦插值、立方体插值等平滑算法。如图4所示,经过插值后各个点的平滑示意图。GPU将这些柏林函数输出值写入一张缓存澡波纹理中,得到随机澡波纹理图。
具体的,GPU在采用柏林函数生成一些参数之后,例如,将随机生成的参数输出值可以写入256*256大小的缓存澡波纹理中,则得到如图5所示的随机澡波纹理图。
S204、GPU针对缓存澡波纹理A中的像素位置(x,y),采用如下公式计算得到目标位置(X,Y):
其中,P为常量,int(*)为取整。
S205、GPU获取随机澡波纹理中目标位置(X,Y)处的像素值,将该像素值作为缓存澡波纹理A中的像素位置(x,y)处的像素值。
具体的,根据上述随机澡波纹理图,随机采样纹理中的UV信息,得到n张澡波纹理图A。例如,这里以n=8为例,详细说明一下采样过程。例如准备要写入的缓存澡波纹理A的像素位置为(x,y),根据缓存澡波纹理A中像素位置的y值采样随机澡波纹理图中像素信息,给定一个常量P,通过指数运算Q=Py,其中Q表示指数运算结果。在得到的结果当中,取Q的整数部分,并对整数部分进行累加得到Q+1,Q+2和Q的三个整数部分,以三个整数部分为采样随机澡波纹理图的y坐标,即采样随机澡波纹理图的坐标为(x,Q),(x,Q+1),(x,Q+2),而在随机澡波纹理图中像素值只是一张灰度图,即是由一个通道组成,这里把Q,Q+1,Q+2的通道值叠加,这个叠加的结果用Y表示,那么该缓存澡波纹理中该像素位置(x,y)处的像素值即为澡波纹理B中(x,Y)位置处的像素值,对于结果Q的小数部分进行缩放,以使采样得到像素之间具有平滑效果。
以随机澡波纹理图大小为256*256,生成8张16*16的澡波纹理图A为例,如图6所示为8幅澡波纹理A的高度图,在程序中其实现代码如下:
在程序中,以应用程序开启计时,根据流逝的时间,利用fmod()函数返回两部分数据,一个是整数,一个是小数,对小数部分横向的描述为:小数部分的值作为正弦波的输入得到一系列对应的值,然后对得到的这些值进行指数运算,在乘以一个缩放因子,同时在乘以有整数部分得到的每个澡波纹理的索引,有两者共同作用生成每个像素的高度值。
S206、GPU把采样得到的像素值依次写入缓存澡波纹理A中,生成n幅澡波纹理图A。
将步骤S204采样得到的像素值写入到缓存澡波纹理中。对于n张缓存澡波纹理A中的每个像素都是用上述步骤S205中的方法来生成。
步骤S207、分别对n幅澡波纹理图A进行平滑滤波处理,生成与所述澡波纹理图A一一对应的n幅澡波纹理图B。
具体的,根据上述澡波纹理图A,分别采样纹理的U、V信息,并取某个位置处周围的m个位置处的像素值,例如可以取该位置处上下左右4个位置处的像素,求其平均值,将平均值写入澡波纹理图B对应位置中。
float4ps(float2tex:TEXCOORD0):COLOR
{
int i=floor(tex.x*noisesize.z);
int j=floor(tex.y*noisesize.z);
float index=j*noisesize.z+i,octavepack;
float fraction=modf(index/np_size_sq,octavepack);
float o=octavepack*n_packsize;
floatleastpack=fraction*np_size_sq;
floatv,u=modf(leastpack/np_size,v);
u*=np_size;
index=(o+3)*n_size_sq+(((int)v)%n_size)*n_size+(((int)u)%n_size);
intval=getNoise(noiseTex,index);///对每个澡波纹理图根据周边的像素进行采样求生成平滑的澡波纹理图
val+=mapsample(u,v,3,o);
val+=mapsample(u,v,2,o+1);
val+=mapsample(u,v,1,o+2);
returnval;
}
步骤S208、将n幅澡波纹理图B叠加生成一张澡波纹理图C。
具体的,GPU根据n幅澡波纹理图B生成每幅纹理顶点的高度值,例如,以步骤S207中生成的8幅澡波纹理图B为例,创建一张澡波缓存纹理,分别将8幅澡波纹理图B相同位置上的像素值叠加求平均值,将该平均值作为该澡波缓存纹理中对应位置处的像素值,将该平均值写入澡波缓存纹理,然后在进行叠加得到最终的一张澡波纹理图C,如图7所示为澡波纹理C的高度图,图中黑色表示0,白色部分表示1,灰色部分在(0,1)之间,这些数值的代表了水波的高度值。
步骤S209、GPU根据澡波纹理图C生成顶点高度值,以合成不规则物体的动画。
具体的,GPU根据顶点高度值,随着时间的变化而变化,就形成了不规则物体的动画效果。
在GPU渲染管线中,通过像素着色程序生成顶点的高度,在程序中其实现代码如下:
float4ps(float2tex:TEXCOORD0):COLOR
{
float2ij=floor(tex*sizeimage);
float2xz=ij*duv.zw;
float magnitude=n_dec_magn*p_fScale;
returnget_height_dual(magnitude*xz.x,magnitude*xz.y);///把8张澡波纹理图合并成一张澡波纹理图
}
本发明实施例通过GPU根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,然后对随机澡波纹理图进行UV采样,生成n幅澡波纹理图A,分别对所述n幅澡波纹理图A进行平滑滤波处理,生成n幅澡波纹理图B,将n幅澡波纹理图B进行叠加生成澡波纹理C,根据澡波纹理C生成顶点的高度值,并根据各顶点高度值合成不规则物体的动画。通过上述方法可以描述自然界中各种复杂的不规则物体,且实时性较高,效果逼真,提高了渲染效率。
而且,使用本发明实施例所述的方法可以更好描述水波效果,由于水是一种透明的流体,水面既可以反射周围景物也可以折射水底的景物,根据本发明实施例所述的方法,从上述经过平滑过滤的澡波纹理图并叠加生成澡波纹理C生成顶点高度,可以计算每个顶点的法线信息,随着时间流逝,每帧中的该顶点的法线方向不同,水网格模型每个顶点的高度变化都不一致,这样就形成了视觉上的水波效果。由于本发明实施例使用柏林函数产生随机参数,因此在模拟山峰效果会更加明显,使用频率低的噪声则可以描绘山的大概轮廓,使用频率低的噪声则可以描绘比较复杂的轮廓细节。因此本发明实施例可以很好的模拟高山轮廓,水波等自然现象。
图8是本发明具体实施方式3提供的基于不规则物体的动画生成装置结构示意图,如图8所示,包括:澡波纹理生成模块31、采样模块32、过滤模块33、计算模块34和合成模块35。
澡波纹理生成模块31,用于根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,所述随机参数为CPU根据随机函数生成的一系列随机数,生成n幅澡波纹理图A,生成n幅澡波纹理图B,将n幅澡波纹理图B叠加生成澡波纹理C,其中n为大于等于1的正整数;
采样模块32,用于对上述随机澡波纹理图进行UV采样;
过滤模块33,用于分别对上述n幅澡波纹理图A进行平滑滤波处理得到澡波纹理B;
计算模块34,用于将n幅澡波纹理叠加得到澡波纹理C;
合成模块35,用于根据澡波纹理C生成顶点高度值,以高度合成不规则物体的动画。
本实施例所述的装置用于执行如图1所示的基于不规则物体的动画生成方法,其技术原理和产生的技术效果类似,具体参见如图1所示实施例的相关描述。
图9是本发明具体实施方式4提供的基于不规则物体的动画生成装置结构示意图,如图9所示,包括:澡波纹理生成模块41、采样模块42、过滤模块43、计算模块44和合成模块45。
澡波纹理生成模块41,用于根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,所述随机参数为CPU根据随机函数生成的一系列随机数,生成n幅澡波纹理图A,生成n幅澡波纹理图B,将n幅澡波纹理图B叠加生成澡波纹理C,其中n为大于等于1的正整数;
采样模块42,用于对上述随机澡波纹理图进行UV采样;
过滤模块43,用于分别对上述n幅澡波纹理图A进行平滑滤波处理得到澡波纹理B;
计算模块44,用于将n幅澡波纹理B叠加得到澡波纹理C;
合成模块45,用于根据澡波纹理C生成的高度值,以高度值合成不规则物体的动画。
优选的,上述澡波纹理生成模块31,具体用于生成缓存澡波纹理;
进一步的,上述装置,还包括:
写入模块46,用于将上述随机参数写入缓存澡波纹理中,得到一张随机澡波纹理图。
进一步的,上述澡波纹理生成模块41,具体用于生成n幅缓存澡波纹理;
上述采样模块42,具体用于对上述随机澡波纹理图中的像素值进行UV采样;
上述写入模块46,具体用于将采样得到的像素值写入缓存澡波纹理中。
进一步的,上述采用模块42,具体用于针对缓存澡波纹理中的像素位置(x,y),采用如下公式计算得到目标位置(X,Y):
其中,P为常量,int(*)为取整;
进一步的,上述装置,还包括:
获取模块47,用于获取上述随机澡波纹理图中应目标位置(X,Y)处的像素值,将该像素值作为缓存澡波纹理中的像素位置(x,y)处的像素值。
本实施例所述的装置用于执行如图2所示的基于不规则物体的动画生成方法,其技术原理和产生的技术效果类似,具体参见如图2所示实施例的相关描述。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于不规则物体的动画生成方法,其特征在于,包括:
根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,所述随机参数为CPU根据随机函数生成的一系列随机数;
对所述随机澡波纹理图进行UV采样,生成n幅澡波纹理图A,所述n为大于1的正整数;
分别对所述n幅澡波纹理图A进行平滑滤波处理,生成与所述澡波纹理图A一一对应的n幅澡波纹理图B;
将所述n幅澡波纹理图B叠加生成一张澡波纹理图C;
根据澡波纹理图C生成顶点高度值,以高度值合成不规则物体动画;
其中,所述对所述随机澡波纹理图中的像素值进行UV采样,包括:
针对缓存澡波纹理中的像素位置(x,y),采用如下公式计算得到目标位置(X,Y):
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mi>X</mi>
<mo>=</mo>
<mi>x</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>Y</mi>
<mo>=</mo>
<mi>int</mi>
<mo>(</mo>
<msup>
<mi>P</mi>
<mi>y</mi>
</msup>
<mo>)</mo>
<mo>+</mo>
<mi>int</mi>
<mo>(</mo>
<msup>
<mi>P</mi>
<mi>y</mi>
</msup>
<mo>+</mo>
<mn>1</mn>
<mo>)</mo>
<mo>+</mo>
<mi>int</mi>
<mo>(</mo>
<msup>
<mi>P</mi>
<mi>y</mi>
</msup>
<mo>+</mo>
<mn>2</mn>
<mo>)</mo>
</mtd>
</mtr>
</mtable>
</mfenced>
其中,P为常量,int(*)为取整;
获取所述随机澡波纹理图中目标位置(X,Y)处的像素值,将所述像素值作为缓存澡波纹理中的像素位置(x,y)处的像素值。
2.根据权利要求1所述的方法,其特征在于,所述根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,包括:
生成随机缓存澡波纹理;
将所述随机参数写入所述随机缓存澡波纹理中,得到一张随机澡波纹理图。
3.根据权利要求1所述的方法,其特征在于,所述对所述随机澡波纹理图进行采样生成n幅澡波纹理图A,包括:
生成n幅缓存澡波纹理;
对所述随机澡波纹理图中的像素值进行UV采样;
将采样得到的像素值写入所述缓存澡波纹理中。
4.一种基于不规则物体的动画生成装置,其特征在于,包括:
澡波纹理生成模块,用于根据CPU传入的随机参数采用柏林函数生成一张随机澡波纹理图,所述随机参数为CPU根据随机函数生成的一系列随机数,生成n幅澡波纹理图A,生成n幅澡波纹理图B,生成澡波纹理图C;
采样模块,用于对所述随机澡波纹理图进行UV采样;
过滤模块,用于分别对所述n幅澡波纹理图A进行平滑滤波处理;
计算模块,用于将n幅澡波纹理图B叠加得到一张澡波纹理C;
合成模块,用于根据澡波纹理图C生成顶点高度值,以高度值合成不规则物体的动画;
其中,所述采样模块,具体用于针对缓存澡波纹理中的像素位置(x,y),采用如下公式计算得到目标位置(X,Y):
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>X</mi>
<mo>=</mo>
<mi>x</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>Y</mi>
<mo>=</mo>
<mi>int</mi>
<mrow>
<mo>(</mo>
<msup>
<mi>P</mi>
<mi>y</mi>
</msup>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mi>int</mi>
<mrow>
<mo>(</mo>
<msup>
<mi>P</mi>
<mi>y</mi>
</msup>
<mo>+</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mi>int</mi>
<mrow>
<mo>(</mo>
<msup>
<mi>P</mi>
<mi>y</mi>
</msup>
<mo>+</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
其中,P为常量,int(*)为取整;
所述装置,还包括:
获取模块,用于获取所述随机澡波纹理图中目标位置(X,Y)处的像素值,将所述像素值作为缓存澡波纹理中的像素位置(x,y)处的像素值。
5.根据权利要求4所述的装置,其特征在于,所述澡波纹理生成模块,具体用于生成随机缓存澡波纹理;
所述装置,还包括:
写入模块,用于将所述随机参数写入所述随机缓存澡波纹理中,得到一张随机澡波纹理图。
6.根据权利要求5所述的装置,其特征在于,所述澡波纹理生成模块,具体用于生成n幅缓存澡波纹理;
所述采样模块,具体用于对所述随机澡波纹理图中的像素值进行UV采样;
所述写入模块,具体用于将采样得到的像素值写入所述缓存澡波纹理中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410737522.XA CN104463937B (zh) | 2014-12-05 | 2014-12-05 | 基于不规则物体的动画生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410737522.XA CN104463937B (zh) | 2014-12-05 | 2014-12-05 | 基于不规则物体的动画生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104463937A CN104463937A (zh) | 2015-03-25 |
CN104463937B true CN104463937B (zh) | 2018-04-06 |
Family
ID=52909919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410737522.XA Active CN104463937B (zh) | 2014-12-05 | 2014-12-05 | 基于不规则物体的动画生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104463937B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105204859B (zh) * | 2015-09-24 | 2018-09-25 | 广州视睿电子科技有限公司 | 动画管理方法及其系统 |
CN107423799B (zh) * | 2017-08-13 | 2020-06-05 | 上海平欣电子科技有限公司 | 一种二维码生成系统 |
CN107958480B (zh) * | 2017-11-23 | 2021-04-30 | 腾讯科技(上海)有限公司 | 图像渲染方法、装置及存储介质 |
CN109523619A (zh) * | 2018-11-12 | 2019-03-26 | 厦门启尚科技有限公司 | 一种通过多角度打光的图片生成3d材质贴图的方法 |
CN114298938B (zh) * | 2021-12-30 | 2024-05-14 | 郑州捷安高科股份有限公司 | 三维视景中摩尔纹去除的方法、装置和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104143208A (zh) * | 2013-05-12 | 2014-11-12 | 哈尔滨点石仿真科技有限公司 | 一种大规模真实感雪景实时渲染方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100657946B1 (ko) * | 2005-01-28 | 2006-12-14 | 삼성전자주식회사 | 3차원 그래픽에서 자연 현상에 대한 절차적인 텍스쳐 생성방법과 장치 및 그 기록매체 |
-
2014
- 2014-12-05 CN CN201410737522.XA patent/CN104463937B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104143208A (zh) * | 2013-05-12 | 2014-11-12 | 哈尔滨点石仿真科技有限公司 | 一种大规模真实感雪景实时渲染方法 |
Non-Patent Citations (4)
Title |
---|
"Realistic real-time rain rendering";Pierre Rousseau.et al.;《Computers & Graphics》;20060612;第30卷(第04期);第507-511页 * |
"基于硬件加速的户外景物实时绘制";王炯;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140115;第15-52页 * |
"基于高度图的地形纹理生成方法";李天培;《火力与指挥控制》;20120115;第37卷(第01期);第172-174页 * |
"真实感三维地形的快速生成技术研究";吴文杰;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110715;第10-22页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104463937A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210232733A1 (en) | Systems and methods for computer simulation of detailed waves for large-scale water simulation | |
Mitchell | Real-time synthesis and rendering of ocean water | |
de Leeuw et al. | Enhanced spot noise for vector field visualization | |
CN104463937B (zh) | 基于不规则物体的动画生成方法及装置 | |
CN102915559B (zh) | 一种基于三维点云的实时透明物体gpu并行生成方法 | |
Kryachko | Using vertex texture displacement for realistic water rendering | |
CN103700143B (zh) | 一种基于gpu多遍绘制的三维动态海洋模拟方法 | |
CN105336003A (zh) | 结合gpu技术实时流畅绘制出三维地形模型的方法 | |
CN102831275B (zh) | 一种3d流体的仿真方法及系统 | |
CN103700134A (zh) | 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法 | |
Suarez et al. | Real-time 3D rendering with hatching | |
US20160307294A1 (en) | Systems and Methods for Displaying Patterns of Recurring Graphics on Digital Maps | |
CN110400366B (zh) | 一种基于OpenGL的实时洪水灾害可视化仿真方法 | |
Zhang et al. | Implementation methods and applications of flow visualization in a watershed simulation platform | |
Vyatkin | Method of binary search for image elements of functionally defined objects using graphics processing units | |
Yan et al. | A non-photorealistic rendering method based on Chinese ink and wash painting style for 3D mountain models | |
US8952968B1 (en) | Wave modeling for computer-generated imagery using intersection prevention on water surfaces | |
King et al. | Fast volume rendering and animation of amorphous phenomena | |
Puig-Centelles et al. | View-dependent tessellation and simulation of ocean surfaces | |
King et al. | Fast animation of amorphous and gaseous phenomena | |
Andersen et al. | Height and tilt geometric texture | |
Cornel et al. | Integrated Simulation and Visualization for Flood Management | |
Miandji et al. | Real-time multi-band synthesis of ocean water with new iterative up-sampling technique | |
Klein et al. | Simulation, Modelling and Rendering of Incompressible Fluids in Real Time. | |
Halli et al. | Extrusion and revolution mapping. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |