From c71bfd7f94ade1cf227a210f068526083ccb4a2b Mon Sep 17 00:00:00 2001 From: ousttrue Date: Mon, 24 May 2021 16:31:25 +0900 Subject: [PATCH] =?UTF-8?q?filter=20=E3=81=AF=20mipmap(disable,=20enable,?= =?UTF-8?q?=20blend)=20x=20(point,=20linear)=20=E3=81=AE=EF=BC=96=E7=A8=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IO/TextureIO/TextureSamplerUtil.cs | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/TextureIO/TextureSamplerUtil.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/TextureIO/TextureSamplerUtil.cs index 255240d5a..528fc12b4 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/TextureIO/TextureSamplerUtil.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/TextureIO/TextureSamplerUtil.cs @@ -24,18 +24,27 @@ namespace UniGLTF } } + /// + /// MIPMAP: disable, enable, blend + /// + /// + /// public static glFilter ExportMinFilter(Texture2D texture) { if (texture.mipmapCount > 1) { switch (texture.filterMode) { + // mipmap: enable case FilterMode.Point: - return glFilter.NEAREST_MIPMAP_LINEAR; + return glFilter.NEAREST_MIPMAP_NEAREST; + // mipmap: enable case FilterMode.Bilinear: return glFilter.LINEAR_MIPMAP_NEAREST; + // mipmap: blend + // glFilter.NEAREST_MIPMAP_LINEAR is not exists case FilterMode.Trilinear: return glFilter.LINEAR_MIPMAP_LINEAR; @@ -45,6 +54,7 @@ namespace UniGLTF } else { + // mipmap: disable switch (texture.filterMode) { case FilterMode.Point: @@ -73,20 +83,30 @@ namespace UniGLTF { switch (filterMode) { + // mipmap: disable case glFilter.NEAREST: return (FilterMode.Point, false); + // mipmap: disable case glFilter.NONE: case glFilter.LINEAR: return (FilterMode.Bilinear, false); + // mipmap: enable case glFilter.NEAREST_MIPMAP_NEAREST: - case glFilter.NEAREST_MIPMAP_LINEAR: return (FilterMode.Point, true); + // mipmap: enable case glFilter.LINEAR_MIPMAP_NEAREST: return (FilterMode.Bilinear, true); + // mipmap: blend + case glFilter.NEAREST_MIPMAP_LINEAR: + // not exists in unity. + // downgrade mipmap: blend => enable + return (FilterMode.Point, true); + + // mipmap: blend case glFilter.LINEAR_MIPMAP_LINEAR: return (FilterMode.Trilinear, true);