Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@
// unpacked.xyz = LinearToGammaSpace(unpacked.xyz);
float4 result = float4(unpacked * 0.5f + 0.5f, 1);
#ifdef UNITY_COLORSPACE_GAMMA
#else
// hack for linear color space, need to figure out
// right way to sample textures.
result.xyz = GammaToLinearSpace(result.xyz);
#else
#endif
return result;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,14 @@ public static UnityEngine.Color ToUnityColorLinear(this GLTF.Math.Color color)
return c;
}

public static GLTF.Math.Color ToNumericsColor(this UnityEngine.Color color)
{
if (QualitySettings.activeColorSpace == ColorSpace.Linear)
return color.ToNumericsColorLinear();
else
return color.ToNumericsColorRaw();
}

public static GLTF.Math.Color ToNumericsColorRaw(this UnityEngine.Color color)
{
var c = color;
Expand Down Expand Up @@ -436,8 +444,10 @@ public static UnityEngine.Vector2[] FlipTexCoordArrayVAndCopy(UnityEngine.Vector

for (var i = 0; i < array.Length; i++)
{
returnArray[i].x = array[i].x;
returnArray[i].y = 1.0f - array[i].y;
var x = array[i].x;
var y = 1.0f - array[i].y;
returnArray[i].x = float.IsNaN(x) ? 0 : x;
returnArray[i].y = float.IsNaN(y) ? 0 : y;
}

return returnArray;
Expand Down Expand Up @@ -470,9 +480,9 @@ public static UnityEngine.Vector3[] ConvertVector3CoordinateSpaceAndCopy(Vector3

for (int i = 0; i < array.Length; i++)
{
returnArray[i].x = array[i].x * coordinateSpaceCoordinateScale.X;
returnArray[i].y = array[i].y * coordinateSpaceCoordinateScale.Y;
returnArray[i].z = array[i].z * coordinateSpaceCoordinateScale.Z;
returnArray[i].x = (float.IsNaN(array[i].x) ? 0 : array[i].x) * coordinateSpaceCoordinateScale.X;
returnArray[i].y = (float.IsNaN(array[i].y) ? 0 : array[i].y) * coordinateSpaceCoordinateScale.Y;
returnArray[i].z = (float.IsNaN(array[i].z) ? 0 : array[i].z) * coordinateSpaceCoordinateScale.Z;
}

return returnArray;
Expand Down Expand Up @@ -506,10 +516,10 @@ public static Vector4[] ConvertVector4CoordinateSpaceAndCopy(Vector4[] array, GL

for (var i = 0; i < array.Length; i++)
{
returnArray[i].x = array[i].x * coordinateSpaceCoordinateScale.X;
returnArray[i].y = array[i].y * coordinateSpaceCoordinateScale.Y;
returnArray[i].z = array[i].z * coordinateSpaceCoordinateScale.Z;
returnArray[i].w = array[i].w * coordinateSpaceCoordinateScale.W;
returnArray[i].x = (float.IsNaN(array[i].x) ? 0 : array[i].x) * coordinateSpaceCoordinateScale.X;
returnArray[i].y = (float.IsNaN(array[i].y) ? 0 : array[i].y) * coordinateSpaceCoordinateScale.Y;
returnArray[i].z = (float.IsNaN(array[i].z) ? 0 : array[i].z) * coordinateSpaceCoordinateScale.Z;
returnArray[i].w = (float.IsNaN(array[i].w) ? 0 : array[i].w) * coordinateSpaceCoordinateScale.W;
}

return returnArray;
Expand Down
Loading