public static TextureImportParam CreateSRGB(GltfParser parser, int textureIndex, Vector2 offset, Vector2 scale)
        {
            var name    = CreateNameExt(parser.GLTF, textureIndex, TextureImportTypes.sRGB);
            var sampler = CreateSampler(parser.GLTF, textureIndex);
            GetTextureBytesAsync getTextureBytesAsync = () => Task.FromResult(ToArray(parser.GLTF.GetImageBytesFromTextureIndex(parser.Storage, textureIndex)));

            return(new TextureImportParam(name, offset, scale, sampler, TextureImportTypes.sRGB, default, default, getTextureBytesAsync, default, default, default, default, default));
Exemplo n.º 2
0
 public static (SubAssetKey, TextureDescriptor) CreateSRGB(GltfData data, int textureIndex, Vector2 offset, Vector2 scale)
 {
     var gltfTexture = data.GLTF.textures[textureIndex];
     var gltfImage   = data.GLTF.images[gltfTexture.source];
     var name        = TextureImportName.GetUnityObjectName(TextureImportTypes.sRGB, gltfTexture.name, gltfImage.uri);
     var sampler     = TextureSamplerUtil.CreateSampler(data.GLTF, textureIndex);
     GetTextureBytesAsync getTextureBytesAsync = () => Task.FromResult(ToArray(data.GetImageBytesFromTextureIndex(textureIndex)));
     var param = new TextureDescriptor(name, gltfImage.GetExt(), gltfImage.uri, offset, scale, sampler, TextureImportTypes.sRGB, default, default, getTextureBytesAsync, default, default, default, default, default);
Exemplo n.º 3
0
 public static (SubAssetKey, TextureImportParam Param) CreateSRGB(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.sRGB, 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.sRGB, default, default, getTextureBytesAsync, default, default, default, default, default);
Exemplo n.º 4
0
        /// <summary>
        /// VRM-1 の thumbnail テクスチャー。gltf.textures ではなく gltf.images の参照であることに注意(sampler等の設定が無い)
        /// </summary>
        public static bool TryGetMetaThumbnailTextureImportParam(GltfParser parser, UniGLTF.Extensions.VRMC_vrm.VRMC_vrm vrm, out (SubAssetKey, TextureImportParam) value)
        {
            if (vrm?.Meta?.ThumbnailImage == null)
            {
                value = default;
                return(false);
            }

            var imageIndex = vrm.Meta.ThumbnailImage.Value;
            var gltfImage  = parser.GLTF.images[imageIndex];
            var name       = TextureImportName.GetUnityObjectName(TextureImportTypes.sRGB, gltfImage.name, gltfImage.uri);

            GetTextureBytesAsync getThumbnailImageBytesAsync = () =>
            {
                var bytes = parser.GLTF.GetImageBytes(parser.Storage, imageIndex);
                return(Task.FromResult(GltfTextureImporter.ToArray(bytes)));
            };
            var param = new TextureImportParam(name, gltfImage.GetExt(), gltfImage.uri, Vector2.zero, Vector2.one, default, TextureImportTypes.sRGB, default, default,
Exemplo n.º 5
0
        /// <summary>
        /// VRM-1 の thumbnail テクスチャー。gltf.textures ではなく gltf.images の参照であることに注意(sampler等の設定が無い)
        ///
        /// MToonとは無関係だがとりあえずここに
        /// </summary>
        /// <param name="parser"></param>
        /// <param name="vrm"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static bool TryGetMetaThumbnailTextureImportParam(GltfParser parser, UniGLTF.Extensions.VRMC_vrm.VRMC_vrm vrm, out TextureImportParam value)
        {
            if (!vrm.Meta.ThumbnailImage.HasValue)
            {
                value = default;
                return(false);
            }

            // thumbnail
            var imageIndex = vrm.Meta.ThumbnailImage.Value;
            var gltfImage  = parser.GLTF.images[imageIndex];
            var name       = new TextureImportName(TextureImportTypes.sRGB, gltfImage.name, gltfImage.GetExt(), "");

            GetTextureBytesAsync getBytesAsync = () =>
            {
                var bytes = parser.GLTF.GetImageBytes(parser.Storage, imageIndex);
                return(Task.FromResult(GltfTextureImporter.ToArray(bytes)));
            };

            value = new TextureImportParam(name, Vector2.zero, Vector2.one, default, TextureImportTypes.sRGB, default, default,
Exemplo n.º 6
0
 public TextureImportParam(TextureImportName name, SamplerParam sampler, TextureImportTypes textureType, float metallicFactor, float roughnessFactor,
                           GetTextureBytesAsync i0,
                           GetTextureBytesAsync i1,
                           GetTextureBytesAsync i2,
                           GetTextureBytesAsync i3,
                           GetTextureBytesAsync i4,
                           GetTextureBytesAsync i5)
 {
     Name            = name;
     Sampler         = sampler;
     TextureType     = textureType;
     MetallicFactor  = metallicFactor;
     RoughnessFactor = roughnessFactor;
     Index0          = i0;
     Index1          = i1;
     Index2          = i2;
     Index3          = i3;
     Index4          = i4;
     Index5          = i5;
 }
Exemplo n.º 7
0
 public TextureDescriptor(string name, Vector2 offset, Vector2 scale, SamplerParam sampler, TextureImportTypes textureType, float metallicFactor, float roughnessFactor,
                          GetTextureBytesAsync i0,
                          GetTextureBytesAsync i1,
                          GetTextureBytesAsync i2,
                          GetTextureBytesAsync i3,
                          GetTextureBytesAsync i4,
                          GetTextureBytesAsync i5)
 {
     UnityObjectName = name;
     Offset          = offset;
     Scale           = scale;
     Sampler         = sampler;
     TextureType     = textureType;
     MetallicFactor  = metallicFactor;
     RoughnessFactor = roughnessFactor;
     Index0          = i0;
     Index1          = i1;
     Index2          = i2;
     Index3          = i3;
     Index4          = i4;
     Index5          = i5;
 }