 		specular_component = (1.0 - diffuse_fraction_in) * microfacet_texture_value *
 			GeometricAttenuationFactor(NdotH, LdotH,  dot(normal, V), dot(normal, L)) / NdotV;
 #else
+#ifdef USE_REFLECTION_VECTOR
+		specular_component = specular_reflection_color_in * pow(RdotV, specular_exponent_in);
+#else
 		specular_component = specular_reflection_color_in * pow(NdotH, specular_exponent_in);
+#endif
 #endif
 		c += light_att * light_color * specular_map_color * specular_component;
 	}

	c += light_is_sun * light_color_in * diffuse_base_color *
		adjusted_atmospheric_illumination;
#endif
	LOWP float NdotL = dot(normal, L);
#ifdef EARTH_SHADER
	// If the sun is below the horizon, avoid diffuse and specular reflection.

#else
		c += light_att * light_color * diffuse_base_color * NdotL;
#endif
#ifdef USE_REFLECTION_VECTOR
		LOWP float RdotV = max(dot(R, V), 0.0);
#else
		LOWP float NdotH = max(dot(normal, H), 0.0);
#endif
		LOWP vec3 specular_map_color;
#ifdef SPECULARITY_MAP_FIXED
		specular_map_color = texture2D(specular_map_in, texcoord_var).rgb;
