private static void ExportTextureTransform(glTFTextureInfo textureInfo, Vector2 unityScale, Vector2 unityOffset) { var scale = unityScale; var offset = new Vector2(unityOffset.x, 1.0f - unityOffset.y - unityScale.y); glTF_KHR_texture_transform.Serialize(textureInfo, (offset.x, offset.y), (scale.x, scale.y)); }
private static void SetTextureOffsetAndScale(Material material, glTFTextureInfo textureInfo, string propertyName) { if (textureInfo.extensions != null && textureInfo.extensions.KHR_texture_transform != null) { glTF_KHR_texture_transform khr_texture_transform = textureInfo.extensions.KHR_texture_transform; Vector2 vector = new Vector2(0f, 0f); Vector2 vector2 = new Vector2(1f, 1f); if (khr_texture_transform.offset != null && khr_texture_transform.offset.Length == 2) { vector = new Vector2(khr_texture_transform.offset[0], khr_texture_transform.offset[1]); } if (khr_texture_transform.scale != null && khr_texture_transform.scale.Length == 2) { vector2 = new Vector2(khr_texture_transform.scale[0], khr_texture_transform.scale[1]); } vector.y = (vector.y + vector2.y - 1f) * -1f; material.SetTextureOffset(propertyName, vector); material.SetTextureScale(propertyName, vector2); } }