游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2470|回复: 5

新瓶灌旧酒,Hugo老师的Fire算法的GPU版本

[复制链接]

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-10-31 21:15:00 | 显示全部楼层 |阅读模式
ZT: http://blog.csdn.net/Nhsoft/archive/2006/10/25/1349816.aspx

没有完全把Hugo老师的demo给照搬过来.只照搬了两样东西.那个火焰纹理和Coolmap的资源, 以及核心部分的算法.
算法原始版本见这里http://freespace.virgin.net/hugo.elias/models/m_fire.htm

附件里的图是我把它程序里用的火焰调色板保存成了一个bmp

参数调整的不是很好.比Hugo老师的那个要丑一些.今天晚上懒得弄了.不管了.
以下是用来翻滚火焰的GLSL Shader

//=====FireUp.ps===========
/*
&ltaramater>
  <sampler name="Texture0" stage="0"/>
  <sampler name="coolMap" stage="1"/>
  <uniform name="pixel_dim" semantic="ViewportRes" usage="Vector" type="float" element="1"/>
</Paramater>
*/

uniform sampler2D Texture0;
uniform sampler2D coolMap;
uniform vec4      pixel_dim;


void main(void)
{   
     vec2      texCoord = gl_TexCoord[0].xy;
     texCoord.y = texCoord.y -  pixel_dim.y;//Roll up
     vec4 v3   = texture2D( Texture0, texCoord );
     vec4 v4   = texture2D( coolMap , gl_TexCoord[0].xy );
     
     vec4  aLeft   = texture2D( Texture0, vec2(texCoord.x - pixel_dim.x , texCoord.y                 )  );
     vec4  aRight  = texture2D( Texture0, vec2(texCoord.x + pixel_dim.x , texCoord.y                 )  );
     vec4  aBottom = texture2D( Texture0, vec2(texCoord.x , texCoord.y  -  pixel_dim.y )  );
     vec4  aTop    = texture2D( Texture0, vec2(texCoord.x , texCoord.y  +  pixel_dim.y )  );
     
     if( texCoord.y  -  pixel_dim.y < 0.0 ) aBottom = v3;
     vec4 vFinalColor = aLeft + aBottom + aRight + aTop ;
     vFinalColor = vFinalColor / 4.0;   
     vFinalColor -= 0.09*v4;

     gl_FragColor = vec4( vFinalColor.xxx ,1.0);
}

sf_20061031211525.jpg

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
 楼主| 发表于 2006-10-31 21:17:00 | 显示全部楼层

Re: 新瓶灌旧酒,Hugo老师的Fire算法的GPU版本

抓图
sf_20061031211659.png

8

主题

553

帖子

560

积分

高级会员

Rank: 4

积分
560
发表于 2006-11-1 08:50:00 | 显示全部楼层

Re:新瓶灌旧酒,Hugo老师的Fire算法的GPU版本

还想是个人做出的东西,不过
“野猪同志”。。。
猪,你难道是同志?

248

主题

2674

帖子

2702

积分

金牌会员

Rank: 6Rank: 6

积分
2702
QQ
发表于 2006-11-1 18:16:00 | 显示全部楼层

Re:新瓶灌旧酒,Hugo老师的Fire算法的GPU版本

一点都不像火

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
 楼主| 发表于 2006-11-1 22:06:00 | 显示全部楼层

Re:新瓶灌旧酒,Hugo老师的Fire算法的GPU版本

看来看去,确实不像。。。

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-11-2 09:34:00 | 显示全部楼层

Re:新瓶灌旧酒,Hugo老师的Fire算法的GPU版本

向BL猪致敬~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 18:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表