Procedural Flame Code
•float4 flame(float3 P)
•{
• P = P*flameScale + flameTrans;
•
• // calculate radial distance in XZ plane
• float2 uv;
• uv.x = length(P.xz);
• uv.y = P.y + turbulence4(noiseSampler, noisePos) * noiseStrength;
•
• return tex2D(flameSampler, P.xy);
•}