Ejemplo n.º 1
0
        static Material GetSpecularMaterial(SpecularShaderFeatures features)
        {
            bool   doubleSided = (features & SpecularShaderFeatures.DoubleSided) != 0;
            Shader shader      = null;

            if (!specularShaders.TryGetValue(features, out shader))
            {
                bool alphaBlend = (features & SpecularShaderFeatures.AlphaBlend) != 0;
                var  shaderName = string.Format(
                    "{0}{1}{2}",
                    SHADER_SPECULAR,
                    alphaBlend ? "-Blend" : "-Opaque",
                    doubleSided ? "-double" : ""
                    );
                shader = FindShader(shaderName);
                specularShaders[features] = shader;
            }
            if (shader == null)
            {
                return(null);
            }
            var mat = new Material(shader);

#if UNITY_EDITOR
            mat.doubleSidedGI = doubleSided;
#endif
            return(mat);
        }
Ejemplo n.º 2
0
        Material GetSpecularMaterial(SpecularShaderFeatures features)
        {
            Shader shader;

#if UNITY_SHADER_GRAPH_12_OR_NEWER
            if (s_SpecularShader == null)
            {
                s_SpecularShader = FindShader(SHADER_SPECULAR);
            }
            shader = s_SpecularShader;
#else
            if (!specularShaders.TryGetValue(features, out shader))
            {
                var shaderName = GetSpecularShaderName(features);
                shader = FindShader(shaderName);
                specularShaders[features] = shader;
            }
#endif
            if (shader == null)
            {
                return(null);
            }
            var mat = new Material(shader);
#if UNITY_EDITOR
            mat.doubleSidedGI = (features & SpecularShaderFeatures.DoubleSided) != 0;
#endif
            return(mat);
        }
        protected virtual string GetSpecularShaderName(SpecularShaderFeatures features)
        {
            var alphaBlend  = (features & SpecularShaderFeatures.AlphaBlend) != 0;
            var doubleSided = (features & SpecularShaderFeatures.DoubleSided) != 0;
            var shaderName  = $"{SHADER_SPECULAR}{(alphaBlend ? "-Blend" : "-Opaque")}{(doubleSided ? "-double" : "")}";

            return(shaderName);
        }
Ejemplo n.º 4
0
        protected virtual string GetSpecularShaderName(SpecularShaderFeatures features)
        {
            var alphaBlend  = (features & SpecularShaderFeatures.AlphaBlend) != 0;
            var doubleSided = (features & SpecularShaderFeatures.DoubleSided) != 0;
            var shaderName  = string.Format(
                "{0}{1}{2}",
                SHADER_SPECULAR,
                alphaBlend ? "-Blend" : "-Opaque",
                doubleSided ? "-double" : ""
                );

            return(shaderName);
        }
        Material GetSpecularMaterial(SpecularShaderFeatures features)
        {
            var shader = GetSpecularShader(features);

            if (shader == null)
            {
                return(null);
            }
            var mat = new Material(shader);

#if UNITY_EDITOR
            mat.doubleSidedGI = (features & SpecularShaderFeatures.DoubleSided) != 0;
#endif
            return(mat);
        }
        Shader GetSpecularShader(SpecularShaderFeatures features)
        {
            Shader shader;

#if UNITY_SHADER_GRAPH_12_OR_NEWER
            if (s_SpecularShader == null)
            {
                s_SpecularShader = LoadShaderByName(SHADER_SPECULAR);
            }
            shader = s_SpecularShader;
#else
            if (!specularShaders.TryGetValue(features, out shader) || shader == null)
            {
                shader = LoadShaderByName(GetSpecularShaderName(features));
                specularShaders[features] = shader;
            }
#endif
            return(shader);
        }
 protected override string GetSpecularShaderName(SpecularShaderFeatures features)
 {
     return(SHADER_SPECULAR);
 }