 	float _spdOfLight = 100; //current speed of light
 	float _wrldTime = 0; //current time in world
 	float _strtTime = 0; //starting time in world
-	float _colorShift = 1; //actually a boolean, should use color effects or not ( doppler + spotlight)
+	float _colorShift = 1; //actually a boolean, should use color effects or not ( doppler + spotlight). 
 
 	float xyr = 1; // xy ratio
 	float xs = 1; // x scale

		//vw + vp/(1+vw*vp/c^2)
	
	
		float vuDot = (_vpc.x*_viw.x + _vpc.y*_viw.y + _vpc.z*_viw.z);
		float4 uparra;
		if ( speed != 0 )
		{
			uparra = (vuDot/(speed*speed)) * _vpc;
		}
		else
		{
			uparra = 0; 
		}
		float4 uperp = _viw - uparra;
		float4 vr =( _vpc - uparra - (sqrt(1-speed*speed))*uperp)/(1+vuDot);
	 

		o.vr = vr;
		vr *= -1;
		float speedr = sqrt( pow((vr.x),2) + pow((vr.y),2) + pow((vr.z),2));
		o.svc = sqrt( 1 - speedr * speedr); // To decrease number of operations in fragment shader 
		
		//You need this otherwise the screen flips and weird stuff happens
		#ifdef SHADER_API_D3D9
		if (_MainTex_TexelSize.y < 0)
			 o.uv1.y = 1.0- o.uv1.y;
		#endif 
	
        float4 riw = o.pos; //Position that will be used in the output
		
        if (speedr != 0) // If speed is zero, rotation fails
        {
			float a;
			float ux;
			float uy;
			float ca;
			float sa;
			if ( speed != 0 )
			{
				a = -acos(-_vpc.z/sqrt(_vpc.x*_vpc.x + _vpc.y*_vpc.y + _vpc.z*_vpc.z));
				if ( _vpc.x != 0 || _vpc.y != 0 )	
				{
					ux = _vpc.y/sqrt(_vpc.x*_vpc.x + _vpc.y*_vpc.y);
					uy = -_vpc.x/sqrt(_vpc.x*_vpc.x + _vpc.y*_vpc.y);
				}
				else
				{
					ux = 0;

			newz = riw.z + newz;
			newz /= (float)sqrt(1 - (speed*speed));
			riw.z = newz;
		  	if (speed != 0)
			{
				float trx = riw.x;
				float trry = riw.y;
	
				riw.x = riw.x * (ca + ux*ux*(1-ca)) + riw.y*(ux*uy*(1-ca)) - riw.z*(uy*sa);
				riw.y = trx * (uy*ux*(1-ca)) + riw.y * ( ca + uy*uy*(1-ca)) + riw.z*(ux*sa);
				riw.z = trx * (uy*sa) - trry * (ux*sa) + riw.z*(ca);
			}
		}
		else
