function transform_from_shading_glsl(n, tan, bitan, v_in, v_out){
	return v_out +
		" = vec3(" + bitan + ".x * " + v_in + ".x + " + tan + ".x * " + v_in + ".y + " +
		n + ".x * " + v_in + ".z, " +
		bitan + ".y * " + v_in + ".x + " + tan + ".y * " + v_in + ".y + " +
		n + ".y * " + v_in + ".z, " +
		bitan + ".z * " + v_in + ".x + " + tan + ".z * " + v_in + ".y + " +
		n + ".z * " + v_in + ".z);";
}
// - v_out: name of GLSL variable containing the output variable
name of GLSL variable containing the output variable
name of GLSL variable containing the output variable
function transform_from_shading_glsl(n, tan, bitan, v_in, v_out){
	return v_out +
		" = vec3(" + bitan + ".x * " + v_in + ".x + " + tan + ".x * " + v_in + ".y + " +
		n + ".x * " + v_in + ".z, " +
		bitan + ".y * " + v_in + ".x + " + tan + ".y * " + v_in + ".y + " +
		n + ".y * " + v_in + ".z, " +
		bitan + ".z * " + v_in + ".x + " + tan + ".z * " + v_in + ".y + " +
		n + ".z * " + v_in + ".z);";
}
function transform_from_shading_glsl ( n , tan , bitan , v_in , v_out ) { return v_out + " = vec3(" + bitan + ".x * " + v_in + ".x + " + tan + ".x * " + v_in + ".y + " + n + ".x * " + v_in + ".z, " + bitan + ".y * " + v_in + ".x + " + tan + ".y * " + v_in + ".y + " + n + ".y * " + v_in + ".z, " + bitan + ".z * " + v_in + ".x + " + tan + ".z * " + v_in + ".y + " + n + ".z * " + v_in + ".z);" ; }
v_out: name of GLSL variable containing the output variable
v_out : name of GLSL variable containing the output variable