Material GenerateMaterial_Basemap()
    {
        //Export basemaps (diffuse and normal)
        Texture2D basemapDiffuse = null;
        Texture2D basemapNormal  = null;

        bool sRGB = QualitySettings.activeColorSpace == ColorSpace.Linear;


        TerrainToMeshConverter.ExtractBasemap(sourceTerrain, out basemapDiffuse, out basemapNormal, 1024, 1024, sRGB);


        Material newMaterial = null;

        if (renderPipeline == RENDER_PIPELINE.Lightweight)
        {
            newMaterial = new Material(Shader.Find("LightweightPipeline/Standard (Physically Based)"));
        }
        else
        {
            newMaterial = new Material(Shader.Find(basemapNormal != null ? "Legacy Shaders/Bumped Diffuse" : "Legacy Shaders/Diffuse"));
        }

        newMaterial.mainTexture = basemapDiffuse;
        newMaterial.color       = Color.white;
        if (basemapNormal != null)
        {
            newMaterial.SetTexture("_BumpMap", basemapNormal);
        }

        return(newMaterial);
    }
Example #2
0
    Material GenerateMaterial_Basemap()
    {
        //Export basemaps (diffuse and normal)
        Texture2D basemapDiffuse = null;
        Texture2D basemapNormal  = null;

        bool sRGB = QualitySettings.activeColorSpace == ColorSpace.Linear;


        TerrainToMeshConverter.ExtractBasemap(sourceTerrain, out basemapDiffuse, out basemapNormal, 1024, 1024, sRGB);


        Material newMaterial = null;

        if (UnityEngine.Rendering.GraphicsSettings.renderPipelineAsset == null)
        {
            newMaterial = new Material(Shader.Find(basemapNormal != null ? "Legacy Shaders/Bumped Diffuse" : "Legacy Shaders/Diffuse"));

            newMaterial.SetTexture("_MainTex", basemapDiffuse);
            newMaterial.SetColor("_Color", Color.white);
            if (basemapNormal != null)
            {
                newMaterial.SetTexture("_BumpMap", basemapNormal);
            }
        }
        else
        {
            Shader srpShader = Shader.Find("Lightweight Render Pipeline/Lit");
            if (srpShader == null)
            {
                srpShader = Shader.Find("VacuumShaders/Terrain To Mesh/SRP Default");
            }

            newMaterial = new Material(srpShader);

            if (newMaterial.HasProperty("_MainTex"))
            {
                newMaterial.SetTexture("_MainTex", basemapDiffuse);
            }
            if (newMaterial.HasProperty("_BaseMap"))
            {
                newMaterial.SetTexture("_BaseMap", basemapDiffuse);
            }


            newMaterial.SetColor("_Color", Color.white);
            if (basemapNormal != null)
            {
                newMaterial.SetTexture("_BumpMap", basemapNormal);
            }
        }


        return(newMaterial);
    }