Jump to content
  • Advertisement
Sign in to follow this  
david w

asm cloud shader

This topic is 2615 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have this asm cloud shader and if it were hlsl I wouldn't be having such as problem. The shader works as expected, the problem is the output is to dim. Its not bright enough. I was wondering if anyone could have a look at the pixel shader part and see where I am going wrong. I need to output a brighter image.


// Pixel Shader


PixelShader Atmospheric_Effects_CloudsEffect_ASM_Single_Pass_Pixel_Shader_ = asm



def c0, 0.0f, 1.5f, 1.0f, 2.0f
def c1, -0.157f, 0.13f, 0.0f, 0.02f
def c2, 0.525f, 0.421f, 0.712f, 0.698f
def c3, 0.05f, -0.085f, 0.0f, 0.02f
def c4, 0.293f, 0.231f, 0.795f, 0.348f
def c5, 0.871f, 0.532f, 0.0863f, 0.77f

texld r0, t1
texld r1, t1
texcrd r2.rgb, t0
texcrd r3.rgb, t2

mad r0.rgb, c1, r0_bx2, r2 ; perturb base map coords by cloud coords
mad r1.rgb, c3, r1_bx2, r3 ; perturb base map coords by cloud coords

texld r0, r0
texld r1, r1
texld r2, t4

mov_x2 r3.rgb, r2.a ; alpha of horizon (glow map)
+mul_sat r3.a, 1-r0.a, 1-r1.a ; mask edges for cloud glow

mad_sat r0.rgb, 1-r0.a, c2, c2.a ; scale and bias inverted clouds layer 0
+mov_x2_sat r0.a, r0.a ; boost cloud alpha 0

mad_sat r1.rgb, 1-r1.a, c4, c4.a ; scale and bias inverted clouds layer 1
+mov_x2_sat r1.a, r1.a ; boost cloud alpha 1

lrp r0.rgb, r1.a, r1, r0 ; combine cloud layers
+mov r4.a, c5.a ; ...

mul_x2 r3, r3.a, r3 ; multiply glow by edges of clouds
mad_x2 r3, r3, c5, r4.a ; scale and bias glowing sections of clouds

mul r0.rgb, r3, r0 ; multiply glow by combination of cloud layers
+add_d2_sat r0.a, r0.a, r1.a ; add alphas of cloud layers

lrp_sat r0, r0.a, r0, r2 ; lerp between clouds and horizon


Thanks for any help.


Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!