# marker MobileSceneRender / MobileSceneRender / MobileBasePass / M_Sky_Panning_Clouds2_SM_SkySphere # shader ```glsl Shader hash f89264c0-4631b6cc-17cd8121-d0ae5870 ps_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[143], immediateIndexed dcl_constantbuffer cb1[6], immediateIndexed dcl_constantbuffer cb2[20], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_resource_texture2d (float,float,float,float) t1 dcl_resource_texture2d (float,float,float,float) t2 dcl_input_ps linear v2.xyzw dcl_input_ps linear v3.xyz dcl_input_ps_siv v4.z, position dcl_output o0.xyzw dcl_temps 4 0: add r0.x, v3.z, -cb0[70].z 1: add r0.x, r0.x, -cb1[5].z 2: mul r0.y, cb1[5].w, l(-0.1000) 3: div_sat r0.x, r0.x, r0.y 4: add r0.x, -r0.x, l(1.0000) 5: mul r0.x, r0.x, cb2[18].z 6: mul r0.y, cb0[142].z, cb2[18].y 7: mul r1.xy, r0.yyyy, l(0.0002, 0.0010, 0.0000, 0.0000) 8: mov r1.z, l(0) 9: add r1.xyzw, r1.xzyz, v2.xyxy 10: sample_indexable(texture2d)(float,float,float,float) r0.y, r1.zwzz, t2.yxzw, s2 11: sample_indexable(texture2d)(float,float,float,float) r0.z, r1.xyxx, t1.yzxw, s1 12: add r0.y, -r0.z, r0.y 13: dp3 r0.w, -v3.xyzx, -v3.xyzx 14: rsq r0.w, r0.w 15: mul r1.xyz, r0.wwww, -v3.xyzx 16: mov_sat r0.w, -r1.z 17: dp3 r1.x, r1.xyzx, cb2[7].xyzx 18: add r1.x, r1.x, l(-1.0000) 19: mad r0.y, r0.w, r0.y, r0.z 20: add r0.z, -r0.w, l(1.0000) 21: mul r0.x, r0.y, r0.x 22: log r0.y, r0.x 23: ge r0.x, l(0), r0.x 24: add r0.w, cb2[18].w, -cb2[19].x 25: mul r2.xyzw, v2.zwxy, l(12.0000, 12.0000, 0.5000, 0.5000) 26: sample_indexable(texture2d)(float,float,float,float) r1.y, r2.zwzz, t2.yxzw, s2 27: sample_indexable(texture2d)(float,float,float,float) r2.xyz, r2.xyxx, t0.xyzw, s0 28: mul r2.xyz, r2.xyzx, cb2[16].xxxx 29: mad r2.xyz, r2.xyzx, cb2[16].yyyy, cb2[2].xyzx 30: mad r0.w, r1.y, r0.w, cb2[19].x 31: mul r0.y, r0.y, r0.w 32: exp r0.y, r0.y 33: movc r0.x, r0.x, l(0), r0.y 34: mul r0.y, r0.x, r0.x 35: mul r0.w, r0.y, l(0.4000) 36: mad r1.y, -abs(r1.x), l(0.7692), l(1.0000) 37: mad_sat r1.x, -abs(r1.x), cb2[17].w, l(1.0000) 38: max r1.y, r1.y, l(0) 39: log r1.z, r1.y 40: ge r1.y, l(0), r1.y 41: mul r1.z, r1.z, l(10.0000) 42: exp r1.z, r1.z 43: mul r3.xyz, r1.zzzz, cb2[9].xyzx 44: movc r1.yzw, r1.yyyy, l(0, 0, 0, 0), r3.xxyz 45: mul r1.yzw, r0.wwww, r1.yyzw 46: mad r1.yzw, cb2[12].xxyz, r0.xxxx, r1.yyzw 47: log r0.x, r0.z 48: ge r0.z, l(0), r0.z 49: mul r0.x, r0.x, cb2[16].z 50: exp r0.x, r0.x 51: min r0.xy, r0.xyxx, l(1.0000, 1.0000, 0.0000, 0.0000) 52: movc r0.x, r0.z, l(0), r0.x 53: add r3.xyz, -r2.xyzx, cb2[4].xyzx 54: mad r0.xzw, r0.xxxx, r3.xxyz, r2.xxyz 55: mad r0.xzw, r1.xxxx, cb2[10].xxyz, r0.xxzw 56: add r1.xyz, -r0.xzwx, r1.yzwy 57: mad r0.xyz, r0.yyyy, r1.xyzx, r0.xzwx 58: mul r0.xyz, r0.xyzx, cb2[14].xyzx 59: mul r1.xyz, r0.xyzx, l(1.5000, 1.5000, 1.5000, 0.0000) 60: mad r0.xyz, -r0.xyzx, l(1.5000, 1.5000, 1.5000, 0.0000), cb2[15].xyzx 61: mad r0.xyz, cb2[19].yyyy, r0.xyzx, r1.xyzx 62: max r0.xyz, r0.xyzx, l(0, 0, 0, 0) 63: mul o0.xyz, r0.xyzx, cb0[135].yyyy 64: mov o0.w, v4.z 65: ret ```