一种基于着色器的2D像素火焰方法及其系统技术方案

技术编号:31225728 阅读:29 留言:0更新日期:2021-12-08 09:30
本发明专利技术提供了一种基于着色器的2D像素火焰方法,所述方法包括如下步骤:步骤S1、从CPU端传入贴图纹理数据、模型初始的顶点、着色器绘制参数到GPU端;步骤S2、根据着色器绘制参数渲染物体到帧缓存;步骤S3、将2D像素火焰效果与贴图中其他物体效果合并后输出到屏幕,从而达到模拟火焰的浮动的效果;本发明专利技术能将2D像素火焰着色器化可以快速开发出效果,方便快捷的调整效果。调整效果。调整效果。

【技术实现步骤摘要】
一种基于着色器的2D像素火焰方法及其系统


[0001]本专利技术涉及动画制作
,特别是一种基于着色器的2D像素火焰方法及其系统。

技术介绍

[0002]2D像素火焰是使用着色渲染模拟火焰的浮动的效果,是游戏中技能和场景表现经常使用的表现方法,现有技术基本是使用贴图动画的方式,按照时间流逝播放贴图动画。其中,现有技术存在如下缺点:1、资源量大,制作贴图的时候需要每帧制作贴图。2、灵活性差,调整火焰的大小等参数都需要重新制作资源。

技术实现思路

[0003]为克服上述问题,本专利技术的目的是提供一种基于着色器的2D像素火焰方法,游戏资源的制作只要靠着色器参数进行调整即可实现,提高了工作效率,且降低了CPU端的压力。
[0004]本专利技术采用以下方案实现:一种基于着色器的2D像素火焰方法,所述方法包括如下步骤:
[0005]步骤S1、从CPU端传入贴图纹理数据、模型初始的顶点、着色器绘制参数到GPU端;
[0006]步骤S2、根据着色器绘制参数渲染物体到帧缓存;
[0007]步骤S3、将2D像素本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于着色器的2D像素火焰方法,其特征在于:所述方法包括如下步骤:步骤S1、从CPU端传入贴图纹理数据、模型初始的顶点、着色器绘制参数到GPU端;步骤S2、根据着色器绘制参数渲染物体到帧缓存;步骤S3、将2D像素火焰效果与贴图中其他物体效果合并后输出到屏幕,从而达到模拟火焰的浮动的效果。2.根据权利要求1所述的一种基于着色器的2D像素火焰方法,其特征在于:所述步骤S2进一步具体为:步骤S21、先让顶点在屏幕空间Y方向位置进行规范化,即让objPosY位于在0到1之间:coordinateY=objPosY+0.5,其中,coordinateY是规范化后顶点在屏幕空间Y方向位置,objPosY是顶点在屏幕空间Y方向位置;步骤S22、获取火焰淡出的位置:glowSlope=1/(glowEnd-glowStart);其中,glowSlope是火焰淡出的位置,glowStart是火焰开始位置,glowEnd是火焰结束位置;步骤S23、获取噪声贴图的采样值,即noiseTexSample=tex2D(noiseTex,glowNoiseuvPixX,glowNoiseuvPixY)其中,noiseTexSample是噪声贴图的采样值,tex2D是采样贴图函数,noiseTex是噪声贴图,glowNoiseuvPixY是像素合并后的噪声贴图采样的Y方向坐标,glowNoiseuvPixX是像素合并后的噪声贴图采样的X方向坐标,其中,glowNoiseuvPixX=floor(glowPixelLevel*glowNoiseuvX)/glowPixelLevel;glowNoiseuvPixY=floor(glowPixelLevel*glowNoiseuvY)/glowPixelLevel

time*glowSpeed;floor函数表示向下求整,glowNoiseuvY是噪声贴图采样的Y方向坐标,glowNoiseuvX是噪声贴图采样的X方向坐标,glowPixelLevel是火焰像素大小,time是每帧时间流逝差值,glowSpeed是火焰速度;步骤S24、根据规范化后顶点在屏幕空间Y方向位置coordinateY、火焰淡出的位置glowSlope、噪声贴图的采样值noiseTexSample,来获得当前火焰是否淡出的标准值,即glowBrightness=noiseTexSample+glowSlope*coordinateY+(
–1–
glowSlope*glowStart);步骤S25、获取模型贴图采样的颜色输出到帧缓存的的百分比glowTexOn,即当glowTexCut>glowBrightness时,glowTexOn=0,glowTexCut<=glowBrightness时,glowTexOn=1;其中,glowTexCut是火焰中火苗数;步骤S26、获取火焰颜色输出到帧缓存的的百分比glowGlowOn,即当glowCut>glowBrightness时,glowGlowOn=0,glowCut<=glowBrightness时,glowGlowOn=1;其中,glowCut是火焰中火苗大小;步骤S27、求得最终输出到帧缓存的颜色值,即帧缓存的颜色值frameBuff=tex2D(mainTex,uv)*glowTexOn+glowGlowOn*(1-glowTexOn)*glowColor;其中,mainTex是模型贴图,uv是贴图纹理坐标,glowColor是火焰颜色。3.一种基于着色器的2D像素火焰系统,其特征在于:所述系统...

【专利技术属性】
技术研发人员:刘德建胡铭陈宏展
申请(专利权)人:福建天晴数码有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1