Пример #1
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            if (!string.IsNullOrEmpty(uri))
            {
                f.KeyValue(() => uri);
            }
            f.KeyValue(() => byteLength);
            f.EndMap();
            return(f.ToString());
        }
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();

            f.KeyValue(() => input);
            f.KeyValue(() => interpolation);
            f.KeyValue(() => output);

            f.EndMap();
            return(f.ToString());
        }
Пример #3
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            if (!string.IsNullOrEmpty(name))
            {
                f.KeyValue(() => name);
            }
            if (children != null && children.Any())
            {
                f.Key("children"); f.BeginList();
                foreach (var child in children)
                {
                    f.Value(child);
                }
                f.EndList();
            }
            if (matrix != null)
            {
                f.KeyValue(() => matrix);
            }
            if (translation != null)
            {
                f.KeyValue(() => translation);
            }
            if (rotation != null)
            {
                f.KeyValue(() => rotation);
            }
            if (scale != null)
            {
                f.KeyValue(() => scale);
            }

            if (mesh >= 0)
            {
                f.KeyValue(() => mesh);
            }
            if (skin >= 0)
            {
                f.KeyValue(() => skin);
            }
            if (camera >= 0)
            {
                f.KeyValue(() => camera);
            }
            f.EndMap();
            return(f.ToString());
        }
Пример #4
0
        public static void Serialize_gltf_meshes__primitives_ITEM(JsonFormatter f, glTFPrimitives value)
        {
            f.BeginMap();


            if (true)
            {
                f.Key("mode");
                f.Value(value.mode);
            }

            if (value.indices >= 0)
            {
                f.Key("indices");
                f.Value(value.indices);
            }

            if (value.attributes != null)
            {
                f.Key("attributes");
                Serialize_gltf_meshes__primitives__attributes(f, value.attributes);
            }

            if (value.material >= 0)
            {
                f.Key("material");
                f.Value(value.material);
            }

            if (value.targets != null && value.targets.Count >= 1)
            {
                f.Key("targets");
                Serialize_gltf_meshes__primitives__targets(f, value.targets);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            f.EndMap();
        }
Пример #5
0
        public static void Serialize_gltf_samplers_ITEM(JsonFormatter f, glTFTextureSampler value)
        {
            f.BeginMap();


            if (true)
            {
                f.Key("magFilter");
                f.Value((int)value.magFilter);
            }

            if (true)
            {
                f.Key("minFilter");
                f.Value((int)value.minFilter);
            }

            if (true)
            {
                f.Key("wrapS");
                f.Value((int)value.wrapS);
            }

            if (true)
            {
                f.Key("wrapT");
                f.Value((int)value.wrapT);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            f.EndMap();
        }
Пример #6
0
        public static void Serialize_gltf_materials__pbrMetallicRoughness(JsonFormatter f, glTFPbrMetallicRoughness value)
        {
            f.BeginMap();


            if (value.baseColorTexture != null)
            {
                f.Key("baseColorTexture");
                Serialize_gltf_materials__pbrMetallicRoughness_baseColorTexture(f, value.baseColorTexture);
            }

            if (value.baseColorFactor != null && value.baseColorFactor.Length >= 4)
            {
                f.Key("baseColorFactor");
                Serialize_gltf_materials__pbrMetallicRoughness_baseColorFactor(f, value.baseColorFactor);
            }

            if (value.metallicRoughnessTexture != null)
            {
                f.Key("metallicRoughnessTexture");
                Serialize_gltf_materials__pbrMetallicRoughness_metallicRoughnessTexture(f, value.metallicRoughnessTexture);
            }

            if (value.metallicFactor >= 0)
            {
                f.Key("metallicFactor");
                f.Value(value.metallicFactor);
            }

            if (value.roughnessFactor >= 0)
            {
                f.Key("roughnessFactor");
                f.Value(value.roughnessFactor);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #7
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            f.KeyValue(() => mode);
            f.KeyValue(() => indices);
            f.Key("attributes"); f.Value(attributes);
            f.KeyValue(() => material);
            if (targets != null)
            {
                f.Key("targets"); f.Value(targets);
            }
            f.EndMap();
            return(f.ToString());
        }
Пример #8
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            if (!string.IsNullOrEmpty(uri))
            {
                f.KeyValue(() => uri);
            }
            else
            {
                f.KeyValue(() => bufferView);
                f.KeyValue(() => mimeType);
            }
            f.EndMap();
            return(f.ToString());
        }
Пример #9
0
        public static void Serialize_gltf_asset(JsonFormatter f, glTFAssets value)
        {
            f.BeginMap();


            if (!string.IsNullOrEmpty(value.generator))
            {
                f.Key("generator");
                f.Value(value.generator);
            }

            if (!string.IsNullOrEmpty(value.version))
            {
                f.Key("version");
                f.Value(value.version);
            }

            if (!string.IsNullOrEmpty(value.copyright))
            {
                f.Key("copyright");
                f.Value(value.copyright);
            }

            if (!string.IsNullOrEmpty(value.minVersion))
            {
                f.Key("minVersion");
                f.Value(value.minVersion);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #10
0
        public static void Serialize_gltf_skins_ITEM(JsonFormatter f, glTFSkin value)
        {
            f.BeginMap();


            if (value.inverseBindMatrices >= 0)
            {
                f.Key("inverseBindMatrices");
                f.Value(value.inverseBindMatrices);
            }

            if (value.joints != null && value.joints.Length >= 1)
            {
                f.Key("joints");
                Serialize_gltf_skins__joints(f, value.joints);
            }

            if (value.skeleton >= 0)
            {
                f.Key("skeleton");
                f.Value(value.skeleton);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            f.EndMap();
        }
Пример #11
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            f.KeyValue(() => buffer);
            f.KeyValue(() => byteOffset);
            f.KeyValue(() => byteLength);
            if (target != glBufferTarget.NONE)
            {
                f.Key("target"); f.Value((int)target);
            }
            if (target == glBufferTarget.ARRAY_BUFFER)
            {
                f.KeyValue(() => byteStride);
            }
            f.EndMap();
            return(f.ToString());
        }
Пример #12
0
        public static void Serialize_gltf_cameras__orthographic(JsonFormatter f, glTFOrthographic value)
        {
            f.BeginMap();


            if (true)
            {
                f.Key("xmag");
                f.Value(value.xmag);
            }

            if (true)
            {
                f.Key("ymag");
                f.Value(value.ymag);
            }

            if (value.zfar > 0)
            {
                f.Key("zfar");
                f.Value(value.zfar);
            }

            if (value.znear >= 0)
            {
                f.Key("znear");
                f.Value(value.znear);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #13
0
        public static void Serialize_gltf_cameras_ITEM(JsonFormatter f, glTFCamera value)
        {
            f.BeginMap();


            if (value.orthographic != null)
            {
                f.Key("orthographic");
                Serialize_gltf_cameras__orthographic(f, value.orthographic);
            }

            if (value.perspective != null)
            {
                f.Key("perspective");
                Serialize_gltf_cameras__perspective(f, value.perspective);
            }

            if (true)
            {
                f.Key("type");
                f.Value(value.type.ToString().ToLower());
            }

            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #14
0
        public static void Serialize_gltf_images_ITEM(JsonFormatter f, glTFImage value)
        {
            f.BeginMap();


            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            if (!string.IsNullOrEmpty(value.uri))
            {
                f.Key("uri");
                f.Value(value.uri);
            }

            if (value.bufferView >= 0)
            {
                f.Key("bufferView");
                f.Value(value.bufferView);
            }

            if (!string.IsNullOrEmpty(value.mimeType))
            {
                f.Key("mimeType");
                f.Value(value.mimeType);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #15
0
        public static void Serialize_gltf_cameras__perspective(JsonFormatter f, glTFPerspective value)
        {
            f.BeginMap();


            if (value.aspectRatio > 0)
            {
                f.Key("aspectRatio");
                f.Value(value.aspectRatio);
            }

            if (value.yfov > 0)
            {
                f.Key("yfov");
                f.Value(value.yfov);
            }

            if (value.zfar > 0)
            {
                f.Key("zfar");
                f.Value(value.zfar);
            }

            if (value.znear > 0)
            {
                f.Key("znear");
                f.Value(value.znear);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #16
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            f.KeyValue(() => bufferView);
            f.KeyValue(() => byteOffset);
            f.KeyValue(() => type);
            f.Key("componentType"); f.Value((int)componentType);
            f.KeyValue(() => count);
            if (max != null && max.Any())
            {
                f.KeyValue(() => max);
            }
            if (min != null && min.Any())
            {
                f.KeyValue(() => min);
            }
            f.EndMap();
            return(f.ToString());
        }
Пример #17
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            if (baseColorTexture != null)
            {
                f.KeyValue(() => baseColorTexture);
            }
            if (baseColorFactor != null)
            {
                f.KeyValue(() => baseColorFactor);
            }
            if (metallicRoughnessTexture != null)
            {
                f.KeyValue(() => metallicRoughnessTexture);
            }
            f.KeyValue(() => metallicFactor);
            f.KeyValue(() => roughnessFactor);
            f.EndMap();
            return(f.ToString());
        }
Пример #18
0
        public static void Serialize_gltf_animations__samplers_ITEM(JsonFormatter f, glTFAnimationSampler value)
        {
            f.BeginMap();


            if (value.input >= 0)
            {
                f.Key("input");
                f.Value(value.input);
            }

            if (!string.IsNullOrEmpty(value.interpolation))
            {
                f.Key("interpolation");
                f.Value(value.interpolation);
            }

            if (value.output >= 0)
            {
                f.Key("output");
                f.Value(value.output);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #19
0
        public static void Serialize_gltf_accessors__sparse_indices(JsonFormatter f, glTFSparseIndices value)
        {
            f.BeginMap();


            if (value.bufferView >= 0)
            {
                f.Key("bufferView");
                f.Value(value.bufferView);
            }

            if (value.byteOffset >= 0)
            {
                f.Key("byteOffset");
                f.Value(value.byteOffset);
            }

            if (true)
            {
                f.Key("componentType");
                f.Value((int)value.componentType);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #20
0
        public static void Serialize_gltf_accessors__sparse(JsonFormatter f, glTFSparse value)
        {
            f.BeginMap();


            if (value.count >= 1)
            {
                f.Key("count");
                f.Value(value.count);
            }

            if (value.indices != null)
            {
                f.Key("indices");
                Serialize_gltf_accessors__sparse_indices(f, value.indices);
            }

            if (value.values != null)
            {
                f.Key("values");
                Serialize_gltf_accessors__sparse_values(f, value.values);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #21
0
        public static void Serialize_gltf_buffers_ITEM(JsonFormatter f, glTFBuffer value)
        {
            f.BeginMap();


            if (!string.IsNullOrEmpty(value.uri))
            {
                f.Key("uri");
                f.Value(value.uri);
            }

            if (value.byteLength >= 1)
            {
                f.Key("byteLength");
                f.Value(value.byteLength);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            f.EndMap();
        }
Пример #22
0
        public static void Serialize_gltf_meshes_ITEM(JsonFormatter f, glTFMesh value)
        {
            f.BeginMap();


            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            if (value.primitives != null && value.primitives.Count >= 1)
            {
                f.Key("primitives");
                Serialize_gltf_meshes__primitives(f, value.primitives);
            }

            if (value.weights != null && value.weights.Length >= 1)
            {
                f.Key("weights");
                Serialize_gltf_meshes__weights(f, value.weights);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            f.EndMap();
        }
Пример #23
0
        public static void Serialize_gltf_textures_ITEM(JsonFormatter f, glTFTexture value)
        {
            f.BeginMap();


            if (value.sampler >= 0)
            {
                f.Key("sampler");
                f.Value(value.sampler);
            }

            if (value.source >= 0)
            {
                f.Key("source");
                f.Value(value.source);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            f.EndMap();
        }
Пример #24
0
        public static void Serialize_gltf_materials__occlusionTexture(JsonFormatter f, glTFMaterialOcclusionTextureInfo value)
        {
            f.BeginMap();


            if (value.strength >= 0)
            {
                f.Key("strength");
                f.Value(value.strength);
            }

            if (value.index >= 0)
            {
                f.Key("index");
                f.Value(value.index);
            }

            if (value.texCoord >= 0)
            {
                f.Key("texCoord");
                f.Value(value.texCoord);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #25
0
        public static void Serialize_gltf_animations_ITEM(JsonFormatter f, glTFAnimation value)
        {
            f.BeginMap();


            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            if (value.channels != null && value.channels.Count >= 1)
            {
                f.Key("channels");
                Serialize_gltf_animations__channels(f, value.channels);
            }

            if (value.samplers != null && value.samplers.Count >= 1)
            {
                f.Key("samplers");
                Serialize_gltf_animations__samplers(f, value.samplers);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #26
0
        public static void Serialize_gltf_materials__normalTexture(JsonFormatter f, glTFMaterialNormalTextureInfo value)
        {
            f.BeginMap();


            if (true)
            {
                f.Key("scale");
                f.Value(value.scale);
            }

            if (value.index >= 0)
            {
                f.Key("index");
                f.Value(value.index);
            }

            if (value.texCoord >= 0)
            {
                f.Key("texCoord");
                f.Value(value.texCoord);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #27
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            if (POSITION >= 0)
            {
                f.KeyValue(() => POSITION);
            }
            if (NORMAL >= 0)
            {
                f.KeyValue(() => NORMAL);
            }
            if (TANGENT >= 0)
            {
                f.KeyValue(() => TANGENT);
            }
            if (TEXCOORD_0 >= 0)
            {
                f.KeyValue(() => TEXCOORD_0);
            }
            if (JOINTS_0 >= 0)
            {
                f.KeyValue(() => JOINTS_0);
            }
            if (WEIGHTS_0 >= 0)
            {
                f.KeyValue(() => WEIGHTS_0);
            }
            if (COLOR_0 >= 0)
            {
                f.KeyValue(() => COLOR_0);
            }
            f.EndMap();
            return(f.ToString());
        }
Пример #28
0
        public static void Serialize_gltf_accessors_ITEM(JsonFormatter f, glTFAccessor value)
        {
            f.BeginMap();


            if (value.bufferView >= 0)
            {
                f.Key("bufferView");
                f.Value(value.bufferView);
            }

            if (value.byteOffset >= 0)
            {
                f.Key("byteOffset");
                f.Value(value.byteOffset);
            }

            if (!string.IsNullOrEmpty(value.type))
            {
                f.Key("type");
                f.Value(value.type);
            }

            if (true)
            {
                f.Key("componentType");
                f.Value((int)value.componentType);
            }

            if (value.count >= 1)
            {
                f.Key("count");
                f.Value(value.count);
            }

            if (value.max != null && value.max.Length >= 1)
            {
                f.Key("max");
                Serialize_gltf_accessors__max(f, value.max);
            }

            if (value.min != null && value.min.Length >= 1)
            {
                f.Key("min");
                Serialize_gltf_accessors__min(f, value.min);
            }

            if (true)
            {
                f.Key("normalized");
                f.Value(value.normalized);
            }

            if (value.sparse != null)
            {
                f.Key("sparse");
                Serialize_gltf_accessors__sparse(f, value.sparse);
            }

            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #29
0
        public static void Serialize(JsonFormatter f, glTF value)
        {
            f.BeginMap();


            if (value.asset != null)
            {
                f.Key("asset");
                Serialize_gltf_asset(f, value.asset);
            }

            if (value.buffers != null && value.buffers.Count >= 1)
            {
                f.Key("buffers");
                Serialize_gltf_buffers(f, value.buffers);
            }

            if (value.bufferViews != null && value.bufferViews.Count >= 1)
            {
                f.Key("bufferViews");
                Serialize_gltf_bufferViews(f, value.bufferViews);
            }

            if (value.accessors != null && value.accessors.Count >= 1)
            {
                f.Key("accessors");
                Serialize_gltf_accessors(f, value.accessors);
            }

            if (value.textures != null && value.textures.Count >= 1)
            {
                f.Key("textures");
                Serialize_gltf_textures(f, value.textures);
            }

            if (value.samplers != null && value.samplers.Count >= 1)
            {
                f.Key("samplers");
                Serialize_gltf_samplers(f, value.samplers);
            }

            if (value.images != null && value.images.Count >= 1)
            {
                f.Key("images");
                Serialize_gltf_images(f, value.images);
            }

            if (value.materials != null && value.materials.Count >= 1)
            {
                f.Key("materials");
                Serialize_gltf_materials(f, value.materials);
            }

            if (value.meshes != null && value.meshes.Count >= 1)
            {
                f.Key("meshes");
                Serialize_gltf_meshes(f, value.meshes);
            }

            if (value.nodes != null && value.nodes.Count >= 1)
            {
                f.Key("nodes");
                Serialize_gltf_nodes(f, value.nodes);
            }

            if (value.skins != null && value.skins.Count >= 1)
            {
                f.Key("skins");
                Serialize_gltf_skins(f, value.skins);
            }

            if (value.scene >= 0)
            {
                f.Key("scene");
                f.Value(value.scene);
            }

            if (value.scenes != null && value.scenes.Count >= 1)
            {
                f.Key("scenes");
                Serialize_gltf_scenes(f, value.scenes);
            }

            if (value.animations != null && value.animations.Count >= 1)
            {
                f.Key("animations");
                Serialize_gltf_animations(f, value.animations);
            }

            if (value.cameras != null && value.cameras.Count >= 1)
            {
                f.Key("cameras");
                Serialize_gltf_cameras(f, value.cameras);
            }

            if (value.extensionsUsed != null && value.extensionsUsed.Count >= 1)
            {
                f.Key("extensionsUsed");
                Serialize_gltf_extensionsUsed(f, value.extensionsUsed);
            }

            if (value.extensionsRequired != null && value.extensionsRequired.Count >= 1)
            {
                f.Key("extensionsRequired");
                Serialize_gltf_extensionsRequired(f, value.extensionsRequired);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Пример #30
0
        public static void Serialize_gltf_materials_ITEM(JsonFormatter f, glTFMaterial value)
        {
            f.BeginMap();


            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            if (value.pbrMetallicRoughness != null)
            {
                f.Key("pbrMetallicRoughness");
                Serialize_gltf_materials__pbrMetallicRoughness(f, value.pbrMetallicRoughness);
            }

            if (value.normalTexture != null)
            {
                f.Key("normalTexture");
                Serialize_gltf_materials__normalTexture(f, value.normalTexture);
            }

            if (value.occlusionTexture != null)
            {
                f.Key("occlusionTexture");
                Serialize_gltf_materials__occlusionTexture(f, value.occlusionTexture);
            }

            if (value.emissiveTexture != null)
            {
                f.Key("emissiveTexture");
                Serialize_gltf_materials__emissiveTexture(f, value.emissiveTexture);
            }

            if (value.emissiveFactor != null && value.emissiveFactor.Length >= 3)
            {
                f.Key("emissiveFactor");
                Serialize_gltf_materials__emissiveFactor(f, value.emissiveFactor);
            }

            if (!string.IsNullOrEmpty(value.alphaMode))
            {
                f.Key("alphaMode");
                f.Value(value.alphaMode);
            }

            if (value.alphaCutoff >= 0 && value.alphaMode == "MASK")
            {
                f.Key("alphaCutoff");
                f.Value(value.alphaCutoff);
            }

            if (true)
            {
                f.Key("doubleSided");
                f.Value(value.doubleSided);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }