public Material GetClonedMaterial(GLightingModel light, GTexturingModel texturing, GSplatsModel splats = GSplatsModel.Splats4) { GWizardMaterialTemplate matTemplate; List <GWizardMaterialTemplate> collection = GCommon.CurrentRenderPipeline == GRenderPipelineType.Universal ? UniversalRPMaterials : GCommon.CurrentRenderPipeline == GRenderPipelineType.Lightweight ? LightweightRPMaterials : BuiltinRPMaterials; if (texturing != GTexturingModel.Splat) { matTemplate = collection.Find(m => { return(m.LightingModel == light && m.TexturingModel == texturing); }); } else { matTemplate = collection.Find(m => { return(m.LightingModel == light && m.TexturingModel == texturing && m.SplatsModel == splats); }); } Material mat = null; if (matTemplate.Material != null) { mat = Object.Instantiate(matTemplate.Material); } return(mat); }
private void RecordShadingAnalytics() { GTexturingModel texturing = GGriffinSettings.Instance.WizardSettings.TexturingModel; string url = texturing == GTexturingModel.ColorMap ? GAnalytics.SHADING_COLOR_MAP : texturing == GTexturingModel.GradientLookup ? GAnalytics.SHADING_GRADIENT_LOOKUP : texturing == GTexturingModel.Splat ? GAnalytics.SHADING_SPLAT : texturing == GTexturingModel.VertexColor ? GAnalytics.SHADING_VERTEX_COLOR : string.Empty; GAnalytics.Record(url); }
public static void SetShader(GStylizedTerrain terrain, GLightingModel lighting, GTexturingModel texturing, GSplatsModel splats = GSplatsModel.Splats4) { if (terrain.TerrainData == null) { throw new NullReferenceException("The selected terrain doesn't have terrain data."); } if (terrain.TerrainData.Shading.CustomMaterial == null) { throw new NullReferenceException("The selected terrain doesn't have material. Make sure you've assigned a material for it."); } Material mat = GRuntimeSettings.Instance.terrainRendering.GetClonedMaterial( GCommon.CurrentRenderPipeline, lighting, texturing, splats); if (mat == null) { throw new Exception("Fail to get template material. Try re-install render pipeline extension package."); } terrain.TerrainData.Shading.CustomMaterial.shader = mat.shader; terrain.TerrainData.Shading.UpdateMaterials(); GUtilities.DestroyObject(mat); }
public Material GetClonedMaterial(GRenderPipelineType pipeline, GLightingModel light, GTexturingModel texturing, GSplatsModel splats = GSplatsModel.Splats4) { TerrainMaterialTemplate matTemplate; List <TerrainMaterialTemplate> collection = pipeline == GRenderPipelineType.Universal ? universalRpMaterials : builtinRpMaterials; if (texturing != GTexturingModel.Splat) { matTemplate = collection.Find(m => { return(m.lightingModel == light && m.texturingModel == texturing); }); } else { matTemplate = collection.Find(m => { return(m.lightingModel == light && m.texturingModel == texturing && m.splatsModel == splats); }); } Material mat = null; if (matTemplate.material != null) { mat = UnityEngine.Object.Instantiate(matTemplate.material); } return(mat); }