예제 #1
0
        void HideParameters(string matName)
        {
            //look for material specific stuff to hide / ignore
            List <string> matIgnores = new List <string>();
            List <string> matHides   = new List <string>();

            string tech = mMatLib.GetMaterialTechnique(matName);

            if (tech == null)
            {
                return;                 //no shaders loaded?
            }

            if (tech == "FullBright" ||
                tech == "VertexLightingCel" ||
                tech == "VertexLighting" ||
                tech == "VertexLightingAlpha" ||
                tech == "VertexLightingAlphaCel")
            {
                matIgnores.Add("mLightMap");
                matIgnores.Add("mEyePos");
                matIgnores.Add("mSkyGradient0");
                matIgnores.Add("mSkyGradient1");
                matHides.Add("mLightMap");
                matHides.Add("mEyePos");
                matHides.Add("mSkyGradient0");
                matHides.Add("mSkyGradient1");
            }
            else if (tech.StartsWith("LightMap"))
            {
                matIgnores.Add("mEyePos");
                matIgnores.Add("mSkyGradient0");
                matIgnores.Add("mSkyGradient1");
                matHides.Add("mSkyGradient0");
                matHides.Add("mSkyGradient1");
                matHides.Add("mEyePos");
                matHides.Add("mLightMap");                      //autohandled
            }
            else if (tech == "Sky")
            {
                matIgnores.Add("mLightMap");
                matHides.Add("mLightMap");
            }

            if (!tech.Contains("Anim"))
            {
                matIgnores.Add("mAniIntensities");
            }

            if (!tech.Contains("Cel"))
            {
                matIgnores.Add("mCelTable");
            }

            //add common stuff
            matHides.AddRange(mCommonHides);
            matIgnores.AddRange(mCommonIgnores);

            mMatLib.IgnoreMaterialVariables(matName, matIgnores, true);
            mMatLib.HideMaterialVariables(matName, matHides, true);
        }