Exemple #1
0
        public JProperty Serialize()
        {
            JObject ext = new JObject();

            if (ModmapFactor != MODMAP_FACTOR_DEFAULT)
            {
                ext.Add(new JProperty(
                            FB_materials_modmapExtensionFactory.MODMAP_FACTOR,
                            new JArray(ModmapFactor.X, ModmapFactor.Y, ModmapFactor.Z)
                            ));
            }

            if (ModmapTexture != MODMAP_TEXTURE_DEFAULT)
            {
                JObject jObj = new JObject();
                ModmapTexture.Serialize(jObj);
                ext.Add(new JProperty(
                            FB_materials_modmapExtensionFactory.MODMAP_TEXTURE,
                            jObj
                            )
                        );
            }

            return(new JProperty(FB_materials_modmapExtensionFactory.EXTENSION_NAME, ext));
        }
Exemple #2
0
        public override void Serialize(JsonWriter writer)
        {
            writer.WriteStartObject();

            if (PbrMetallicRoughness != null)
            {
                writer.WritePropertyName("pbrMetallicRoughness");
                PbrMetallicRoughness.Serialize(writer);
            }

            if (NormalTexture != null)
            {
                writer.WritePropertyName("normalTexture");
                NormalTexture.Serialize(writer);
            }

            if (OcclusionTexture != null)
            {
                writer.WritePropertyName("occlusionTexture");
                OcclusionTexture.Serialize(writer);
            }

            if (EmissiveTexture != null)
            {
                writer.WritePropertyName("emissiveTexture");
                EmissiveTexture.Serialize(writer);
            }

            if (EmissiveFactor != Color.Black)
            {
                writer.WritePropertyName("emissiveFactor");
                writer.WriteStartArray();
                writer.WriteValue(EmissiveFactor.R);
                writer.WriteValue(EmissiveFactor.G);
                writer.WriteValue(EmissiveFactor.B);
                writer.WriteEndArray();
            }

            if (AlphaMode != AlphaMode.OPAQUE)
            {
                writer.WritePropertyName("alphaMode");
                writer.WriteValue(AlphaMode.ToString());
            }

            if (AlphaCutoff != 0.5)
            {
                writer.WritePropertyName("alphaCutoff");
                writer.WriteValue(AlphaCutoff);
            }

            if (DoubleSided)
            {
                writer.WritePropertyName("doubleSided");
                writer.WriteValue(true);
            }

            base.Serialize(writer);

            writer.WriteEndObject();
        }
        public override void Serialize(JsonWriter writer)
        {
            writer.WriteStartObject();

            if (AmbientFactor != Color.White)
            {
                writer.WritePropertyName("ambientFactor");
                writer.WriteStartArray();
                writer.WriteValue(AmbientFactor.R);
                writer.WriteValue(AmbientFactor.G);
                writer.WriteValue(AmbientFactor.B);
                writer.WriteEndArray();
            }

            if (LightmapTexture != null)
            {
                writer.WritePropertyName("lightmapTexture");
                LightmapTexture.Serialize(writer);
            }

            if (LightmapFactor != Color.White)
            {
                writer.WritePropertyName("lightmapFactor");
                writer.WriteStartArray();
                writer.WriteValue(LightmapFactor.R);
                writer.WriteValue(LightmapFactor.G);
                writer.WriteValue(LightmapFactor.B);
                writer.WriteEndArray();
            }

            base.Serialize(writer);

            writer.WriteEndObject();
        }
Exemple #4
0
        public override void Serialize(JsonWriter writer)
        {
            writer.WriteStartObject();

            if (BaseColorFactor != Color.White)
            {
                writer.WritePropertyName("baseColorFactor");
                writer.WriteStartArray();
                writer.WriteValue(BaseColorFactor.R);
                writer.WriteValue(BaseColorFactor.G);
                writer.WriteValue(BaseColorFactor.B);
                writer.WriteValue(BaseColorFactor.A);
                writer.WriteEndArray();
            }

            if (BaseColorTexture != null)
            {
                writer.WritePropertyName("baseColorTexture");
                BaseColorTexture.Serialize(writer);
            }

            if (MetallicFactor != 1.0f)
            {
                writer.WritePropertyName("metallicFactor");
                writer.WriteValue(MetallicFactor);
            }

            if (RoughnessFactor != 1.0f)
            {
                writer.WritePropertyName("roughnessFactor");
                writer.WriteValue(RoughnessFactor);
            }

            if (MetallicRoughnessTexture != null)
            {
                writer.WritePropertyName("metallicRoughnessTexture");
                MetallicRoughnessTexture.Serialize(writer);
            }

            base.Serialize(writer);

            writer.WriteEndObject();
        }
        public JProperty Serialize()
        {
            if (CommonTechnique.NONE == Technique)
            {
                return(new JProperty("", new JObject()));
            }

            JObject ext = new JObject();

            ext.Add(new JProperty(
                        KHR_materials_commonExtensionFactory.TECHNIQUE,
                        Technique.ToString()
                        ));

            var valuesObj = new JObject();

            ext.Add(new JProperty(
                        KHR_materials_commonExtensionFactory.VALUES,
                        valuesObj)
                    );

            if (Ambient != AMBIENT_DEFAULT)
            {
                valuesObj.Add(new JProperty(
                                  KHR_materials_commonExtensionFactory.AMBIENT,
                                  new JArray(Ambient.R, Ambient.G, Ambient.B)
                                  ));
            }

            if (EmissionTexture != EMISSIONTEXTURE_DEFAULT)
            {
                JObject jObj = new JObject();
                EmissionTexture.Serialize(jObj);
                valuesObj.Add(new JProperty(
                                  KHR_materials_commonExtensionFactory.EMISSION,
                                  jObj
                                  )
                              );
            }
            else
            {
                if (EmissionColor != EMISSIONCOLOR_DEFAULT)
                {
                    valuesObj.Add(new JProperty(
                                      KHR_materials_commonExtensionFactory.EMISSION,
                                      new JArray(EmissionColor.R, EmissionColor.G, EmissionColor.B)
                                      ));
                }
            }

            if (Technique == CommonTechnique.LAMBERT ||
                Technique == CommonTechnique.PHONG ||
                Technique == CommonTechnique.BLINN ||
                Technique == CommonTechnique.CONSTANT)
            {
                if (DiffuseTexture != DIFFUSETEXTURE_DEFAULT)
                {
                    JObject jObj = new JObject();
                    DiffuseTexture.Serialize(jObj);
                    valuesObj.Add(new JProperty(
                                      KHR_materials_commonExtensionFactory.DIFFUSE,
                                      jObj
                                      )
                                  );
                }
                else
                {
                    if (DiffuseColor != DIFFUSECOLOR_DEFAULT)
                    {
                        valuesObj.Add(new JProperty(
                                          KHR_materials_commonExtensionFactory.DIFFUSE,
                                          new JArray(DiffuseColor.R, DiffuseColor.G, DiffuseColor.B)
                                          ));
                    }
                }
            }

            if (Technique == CommonTechnique.PHONG ||
                Technique == CommonTechnique.BLINN)
            {
                if (SpecularTexture != SPECULARTEXTURE_DEFAULT)
                {
                    JObject jObj = new JObject();
                    SpecularTexture.Serialize(jObj);
                    valuesObj.Add(new JProperty(
                                      KHR_materials_commonExtensionFactory.SPECULAR,
                                      jObj
                                      )
                                  );
                }
                else
                {
                    if (SpecularColor != Color.Black)
                    {
                        if (SpecularColor != SPECULARCOLOR_DEFAULT)
                        {
                            valuesObj.Add(new JProperty(
                                              KHR_materials_commonExtensionFactory.SPECULAR,
                                              new JArray(SpecularColor.R, SpecularColor.G, SpecularColor.B)
                                              ));
                        }
                    }
                }

                if (Shininess != SHININESS_DEFAULT)
                {
                    valuesObj.Add(new JProperty(
                                      KHR_materials_commonExtensionFactory.SHININESS,
                                      Shininess
                                      ));
                }
            }

            if (Transparency != TRANSPARENCY_DEFAULT)
            {
                valuesObj.Add(new JProperty(
                                  KHR_materials_commonExtensionFactory.TRANSPARENCY,
                                  Transparency
                                  ));
            }

            if (Transparent != TRANSPARENT_DEFAULT)
            {
                valuesObj.Add(new JProperty(
                                  KHR_materials_commonExtensionFactory.TRANSPARENT,
                                  Transparent
                                  ));
            }

            if (DoubleSided != DOUBLESIDED_DEFAULT)
            {
                valuesObj.Add(new JProperty(
                                  KHR_materials_commonExtensionFactory.DOUBLESIDED,
                                  DoubleSided
                                  ));
            }

            return(new JProperty(KHR_materials_commonExtensionFactory.EXTENSION_NAME, ext));
        }