diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/TextureIO/GltfTextureImporter.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/TextureIO/GltfTextureImporter.cs index f69ab93e4..3df38300c 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/TextureIO/GltfTextureImporter.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/TextureIO/GltfTextureImporter.cs @@ -42,6 +42,18 @@ namespace UniGLTF var param = new TextureImportParam(name, gltfImage.GetExt(), gltfImage.uri, offset, scale, sampler, TextureImportTypes.sRGB, default, default, getTextureBytesAsync, default, default, default, default, default); return (key, param); } + + public static (SubAssetKey, TextureImportParam Param) CreateLinear(GltfParser parser, int textureIndex, Vector2 offset, Vector2 scale) + { + var gltfTexture = parser.GLTF.textures[textureIndex]; + var gltfImage = parser.GLTF.images[gltfTexture.source]; + var name = TextureImportName.GetUnityObjectName(TextureImportTypes.Linear, gltfTexture.name, gltfImage.uri); + var sampler = CreateSampler(parser.GLTF, textureIndex); + GetTextureBytesAsync getTextureBytesAsync = () => Task.FromResult(ToArray(parser.GLTF.GetImageBytesFromTextureIndex(parser.Storage, textureIndex))); + var key = new SubAssetKey(typeof(Texture2D), name); + var param = new TextureImportParam(name, gltfImage.GetExt(), gltfImage.uri, offset, scale, sampler, TextureImportTypes.Linear, default, default, getTextureBytesAsync, default, default, default, default, default); + return (key, param); + } public static (SubAssetKey, TextureImportParam Param) CreateNormal(GltfParser parser, int textureIndex, Vector2 offset, Vector2 scale) { diff --git a/Assets/VRMShaders/GLTF/IO/Editor/TextureImporterConfigurator.cs b/Assets/VRMShaders/GLTF/IO/Editor/TextureImporterConfigurator.cs index ab20a575c..b832730ca 100644 --- a/Assets/VRMShaders/GLTF/IO/Editor/TextureImporterConfigurator.cs +++ b/Assets/VRMShaders/GLTF/IO/Editor/TextureImporterConfigurator.cs @@ -95,6 +95,16 @@ namespace VRMShaders } break; + case TextureImportTypes.Linear: + { + if (ExternalMap.TryGetValue(textureInfo.UnityObjectName, out Texture2D external)) + { + ConfigureSize(external); + ConfigureLinear(external); + } + } + break; + default: throw new NotImplementedException(); }