コード例 #1
0
        private void LoadEmissiveMap(glTFLoader.Schema.Material material, Material unityMaterial)
        {
            var emissiveTexture = material.EmissiveTexture;

            if (emissiveTexture != null || material.ShouldSerializeEmissiveFactor())
            {
                // Strength
                var strengthExtension = ExtensionUtil.LoadExtension <glTFLoader.Schema.Khr_materials_emissive_strength>(material.Extensions, "KHR_materials_emissive_strength");
                var strength          = strengthExtension != null ? strengthExtension.EmissiveStrength : 1f;

                // Factor
                var factor = TypeConverter.ConvertColor(material.EmissiveFactor);
                unityMaterial.SetColor("_EmissionColor", factor * strength);

                // Texture
                if (emissiveTexture != null)
                {
                    var texture = textureLoader.LoadTexture(emissiveTexture.Index, false);
                    unityMaterial.SetTexture("_EmissionMap", texture);
                }

                unityMaterial.EnableKeyword("_EMISSION");
            }
        }