// material main surface inputs public override void DrawSurfaceInputs(Material material) { base.DrawSurfaceInputs(material); DrawEmissionProperties(material); DrawReflectionProperties(material); PSXMaterialUtils.DrawTileOffset(materialEditor, mainTexProp); }
// material changed check public override void MaterialChanged(Material material) { if (material == null) { throw new ArgumentNullException("material"); } PSXMaterialUtils.SetMaterialKeywords(material); }
protected virtual void DrawReflectionProperties(Material material) { PSXMaterialUtils.DrawReflectionProperties( material, materialEditor, reflectionProp, reflectionBlendModeProp, reflectionCubemapProp, reflectionTextureProp, reflectionColorProp ); }
public void DrawSurfaceOptions(Material material) { PSXMaterialUtils.DrawRenderQueueCategory(materialEditor, renderQueueCategoryProp); // PSXMaterialUtils.DrawVertexColorMode(materialEditor, vertexColorModeProp); PSXMaterialUtils.DrawLightingMode(material, materialEditor, lightingModeProp, lightingBakedProp, lightingDynamicProp); PSXMaterialUtils.DrawShadingEvaluationMode(materialEditor, shadingEvaluationModeProp); // PSXMaterialUtils.DrawSurfaceTypeAndBlendMode(material, materialEditor, surfaceTypeProp, blendModeProp); PSXMaterialUtils.DrawCullingSettings(material, materialEditor, cullingProp); // PSXMaterialUtils.DrawAlphaClippingSettings(material, alphaClipProp, alphaClippingDitherIsEnabledProp); PSXMaterialUtils.DrawAffineTextureWarpingWeight(affineTextureWarpingWeightProp); PSXMaterialUtils.DrawPrecisionGeometryWeight(precisionGeometryWeightProp); PSXMaterialUtils.DrawFogWeight(fogWeightProp); }
public virtual void DrawSurfaceOptions(Material material) { PSXMaterialUtils.DrawRenderQueueCategory(materialEditor, renderQueueCategoryProp); PSXMaterialUtils.DrawTextureFilterMode(materialEditor, textureFilterModeProp); PSXMaterialUtils.DrawVertexColorMode(materialEditor, vertexColorModeProp); PSXMaterialUtils.DrawLightingMode(material, materialEditor, lightingModeProp, lightingBakedProp, lightingDynamicProp); PSXMaterialUtils.DrawShadingEvaluationMode(materialEditor, shadingEvaluationModeProp); PSXMaterialUtils.DrawSurfaceTypeAndBlendMode(material, materialEditor, surfaceTypeProp, blendModeProp); PSXMaterialUtils.DrawCullingSettings(material, materialEditor, cullingProp, doubleSidedNormalModeProp, doubleSidedConstantsProp); PSXMaterialUtils.DrawAlphaClippingSettings(material, alphaClipProp, alphaClippingDitherIsEnabledProp, alphaClippingScaleBiasMinMaxProp); PSXMaterialUtils.DrawAffineTextureWarpingWeight(affineTextureWarpingWeightProp); PSXMaterialUtils.DrawPrecisionGeometryWeight(precisionGeometryWeightProp); PSXMaterialUtils.DrawFogWeight(fogWeightProp); PSXMaterialUtils.DrawDrawDistanceOverride(drawDrawDistanceOverrideModeProp, drawDrawDistanceOverrideProp); }
// material changed check public void MaterialChanged(Material material) { if (material == null) { throw new ArgumentNullException("material"); } // PSXMaterialUtils.SetMaterialKeywords(material); // Clear all keywords for fresh start PSXMaterialUtils.ClearMaterialKeywords(material); PSXMaterialUtils.SetupMaterialLightingModeNoVertexColorSupported(material); PSXMaterialUtils.SetupMaterialShadingEvaluationMode(material); // PSXMaterialUtils.SetupMaterialBlendMode(material); PSXMaterialUtils.SetupMaterialFogKeyword(material); // PSXMaterialUtils.SetupMaterialReflectionKeyword(material); // PSXMaterialUtils.SetupMaterialEmissionKeyword(material); }
public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader) { if (material == null) { throw new ArgumentNullException("material"); } // _Emission property is lost after assigning Standard shader to the material // thus transfer it before assigning the new shader if (material.HasProperty("_Emission")) { material.SetColor("_EmissionColor", material.GetColor("_Emission")); } base.AssignNewShaderToMaterial(material, oldShader, newShader); if (oldShader == null || !oldShader.name.Contains("Legacy Shaders/")) { PSXMaterialUtils.SetupMaterialBlendMode(material); return; } PSXMaterialUtils.SurfaceType surfaceType = PSXMaterialUtils.SurfaceType.Opaque; PSXMaterialUtils.BlendMode blendMode = PSXMaterialUtils.BlendMode.AlphaPostmultiply; if (oldShader.name.Contains("/Transparent/Cutout/")) { surfaceType = PSXMaterialUtils.SurfaceType.Opaque; material.SetFloat("_AlphaClip", 1); } else if (oldShader.name.Contains("/Transparent/")) { // NOTE: legacy shaders did not provide physically based transparency // therefore Fade mode surfaceType = PSXMaterialUtils.SurfaceType.Transparent; blendMode = PSXMaterialUtils.BlendMode.AlphaPostmultiply; } material.SetFloat("_Surface", (float)surfaceType); material.SetFloat("_Blend", (float)blendMode); MaterialChanged(material); }
// Copied from shaderGUI as it is a protected function in an abstract class, unavailable to others public new static MaterialProperty FindProperty(string propertyName, MaterialProperty[] properties, bool propertyIsMandatory) { return(PSXMaterialUtils.FindProperty(propertyName, properties, propertyIsMandatory)); }
// Copied from shaderGUI as it is a protected function in an abstract class, unavailable to others public new static MaterialProperty FindProperty(string propertyName, MaterialProperty[] properties) { return(PSXMaterialUtils.FindProperty(propertyName, properties)); }
public void DoPopup(GUIContent label, MaterialProperty property, string[] options) { PSXMaterialUtils.DoPopup(label, property, options, materialEditor); }
protected virtual void DrawEmissionProperties(Material material) { PSXMaterialUtils.DrawEmissionProperties(material, materialEditor, emissionTextureProp, emissionColorProp, emissionBakedMultiplierProp); }
public virtual void DrawAdvancedOptions(Material material) { PSXMaterialUtils.DrawAdvancedOptions(material, materialEditor); }
public virtual void DrawSurfaceInputs(Material material) { PSXMaterialUtils.DrawMainProperties(material, materialEditor, mainTexProp, mainColorProp); }