diff --git a/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs b/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs
index 261fb6117..cc03b6cb5 100644
--- a/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs
+++ b/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs
@@ -163,8 +163,7 @@ namespace UniGLTF
var textureType = TextureIO.GetglTFTextureType(gltf, m_textureIndex);
var colorSpace = TextureIO.GetColorSpace(textureType);
var isLinear = colorSpace == RenderTextureReadWrite.Linear;
- yield return m_textureLoader.ProcessOnMainThread(isLinear);
- TextureSamplerUtil.SetSampler(Texture, gltf.GetSamplerFromTextureIndex(m_textureIndex));
+ yield return m_textureLoader.ProcessOnMainThread(isLinear, gltf.GetSamplerFromTextureIndex(m_textureIndex));
}
}
#endregion
diff --git a/Assets/VRM/UniGLTF/Scripts/IO/TextureLoader.cs b/Assets/VRM/UniGLTF/Scripts/IO/TextureLoader.cs
index 06ba513c7..ee4ecf663 100644
--- a/Assets/VRM/UniGLTF/Scripts/IO/TextureLoader.cs
+++ b/Assets/VRM/UniGLTF/Scripts/IO/TextureLoader.cs
@@ -25,8 +25,9 @@ namespace UniGLTF
/// Call from unity main thread
///
///
+ ///
///
- IEnumerator ProcessOnMainThread(bool isLinear);
+ IEnumerator ProcessOnMainThread(bool isLinear, glTFTextureSampler sampler);
}
#if UNITY_EDITOR
@@ -53,7 +54,7 @@ namespace UniGLTF
{
}
- public IEnumerator ProcessOnMainThread(bool isLinear)
+ public IEnumerator ProcessOnMainThread(bool isLinear, glTFTextureSampler sampler)
{
//
// texture from assets
@@ -90,6 +91,12 @@ namespace UniGLTF
importer.SaveAndReimport();
}
+
+ if (sampler != null)
+ {
+ TextureSamplerUtil.SetSampler(Texture, sampler);
+ }
+
yield break;
}
}
@@ -140,7 +147,7 @@ namespace UniGLTF
m_imageBytes = ToArray(segments);
}
- public IEnumerator ProcessOnMainThread(bool isLinear)
+ public IEnumerator ProcessOnMainThread(bool isLinear, glTFTextureSampler sampler)
{
//
// texture from image(png etc) bytes
@@ -151,6 +158,10 @@ namespace UniGLTF
{
Texture.LoadImage(m_imageBytes);
}
+ if (sampler != null)
+ {
+ TextureSamplerUtil.SetSampler(Texture, sampler);
+ }
yield break;
}
}
@@ -274,7 +285,7 @@ namespace UniGLTF
}
}
- public IEnumerator ProcessOnMainThread(bool isLinear)
+ public IEnumerator ProcessOnMainThread(bool isLinear, glTFTextureSampler sampler)
{
// tmp file
var tmp = Path.GetTempFileName();
@@ -328,6 +339,10 @@ namespace UniGLTF
#error Unsupported Unity version
#endif
}
+ if (sampler != null)
+ {
+ TextureSamplerUtil.SetSampler(Texture, sampler);
+ }
}
}
}