 float HG (vec3 v, vec3 l)
 {
 	float VoL = dot(v, l);
-	float g = 0.5f;
+	float g = 0.25f;
 	float HG = (1.0f - g*g) / (4.0f * Pi * pow(1.0f + g*g - 2.0f * g * VoL, 1.5f));
 
 	return HG;

const float CLOUD_HEIGHT = MAX_CLOUD_ALTITUDE - MIN_CLOUD_ALTITUDE;
const float CLOUD_HEIGHT_INV = 1.0f / CLOUD_HEIGHT;

const int SAMPLE_COUNT = 256;
const float Pi = 3.1415926f;
const vec3 randomV[5] = vec3[5](vec3(-0.010735935, 0.01647018, 0.0062425877),
			                     vec3(-0.06533369, 0.3647007, -0.13746321),

	vec3 farPos = alpha >= 0.0f ? wsCamPos + viewRay * (l1 + l2) : wsCamPos + viewRay * (l2 - l1);

	int sampleCount = SAMPLE_COUNT;
	float stepSizeShort = distance(nearPos, farPos) * 0.5f / sampleCount;
	float stepSizeLong = stepSizeShort * 2.0f;

	vec3 samplePos = IsInCloud(wsCamPos) ? wsCamPos : nearPos;
