Esempio n. 1
0
        public static TerrainLayer createTerrainLayer(Material mat, float tiling)
        {
            TerrainLayer terrainLayer = new TerrainLayer();
            string       path         = AssetDatabase.GetAssetPath(mat);

            path = path.Replace(".mat", ".terrainlayer");
            AssetDatabase.CreateAsset(terrainLayer, path);
            AssetDatabase.Refresh();
            terrainLayer.diffuseTexture = (Texture2D)mat.mainTexture;

            //attempt to auto-detect a settings file for Lightweight or HD pipelines
            switch (MegascansUtilities.getCurrentPipeline())
            {
            case Pipeline.HDRP:
                terrainLayer.normalMapTexture = (Texture2D)mat.GetTexture("_NormalMap");
                if (mat.GetFloat("_MaterialID") == 4)
                {
                    terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_SpecularColorMap");
                    terrainLayer.metallic       = 1.0f;
                }
                else if (mat.GetFloat("_MaterialID") == 1)
                {
                    terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_MaskMap");
                    terrainLayer.specular       = new Color(1.0f, 1.0f, 1.0f);
                }
                break;

            case Pipeline.LWRP:

                terrainLayer.normalMapTexture = (Texture2D)mat.GetTexture("_BumpMap");
                if (mat.GetFloat("_WorkflowMode") == 1)
                {
                    terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_MetallicGlossMap");
                    terrainLayer.specular       = new Color(1.0f, 1.0f, 1.0f);
                }
                else
                {
                    terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_SpecGlossMap");
                    terrainLayer.metallic       = 1.0f;
                }
                break;

            case Pipeline.Standard:
                terrainLayer.normalMapTexture = (Texture2D)mat.GetTexture("_BumpMap");
                if (mat.shader.ToString() == "Standard (Specular setup)")
                {
                    terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_SpecGlossMap");
                    terrainLayer.metallic       = 1.0f;
                }
                else
                {
                    terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_MetallicGlossMap");
                    terrainLayer.specular       = new Color(1.0f, 1.0f, 1.0f);
                }
                break;
            }

            terrainLayer.tileSize = new Vector2(tiling, tiling);
            return(terrainLayer);
        }
Esempio n. 2
0
        /// <summary>
        /// This function attempts to auto-detect which template the project is using. Defaults to Legacy/Standard if all else fails.
        /// </summary>
        void GetShaderType()
        {
            shaderType = EditorPrefs.GetInt("QuixelDefaultShader");
            if (shaderType == 3)
            {
                //attempt to auto-detect a settings file for Lightweight or HD pipelines
                switch (MegascansUtilities.getCurrentPipeline())
                {
                case Pipeline.HDRP:
                    shaderType = 0;
                    break;

                case Pipeline.LWRP:
                    shaderType = 1;
                    break;

                case Pipeline.Standard:
                    shaderType = 2;
                    break;

                default:
                    shaderType = 2;
                    break;
                }
            }
        }