diff --git a/Assets/Shaders/SelectionGlow.shader b/Assets/Shaders/SelectionGlow.shader index f74862c..77fb94b 100644 --- a/Assets/Shaders/SelectionGlow.shader +++ b/Assets/Shaders/SelectionGlow.shader @@ -8,6 +8,7 @@ Shader "ConformalDecals/SelectionGlow" _RimEdgeOpacity("Rim Edge Opacity", Range(0,1)) = 0.2 _RimFalloff("Rim Falloff", Range(0.01,5) ) = 0.1 _RimColor("Rim Color", Color) = (0,0,0,0) + _RimOpacity("Rim Opacity", Range(0,1)) = 0.5 } SubShader { @@ -27,6 +28,7 @@ Shader "ConformalDecals/SelectionGlow" half _RimEdgeOpacity; float _RimFalloff; float4 _RimColor; + half _RimOpacity; #include "UnityCG.cginc" #include "Lighting.cginc" @@ -53,7 +55,7 @@ Shader "ConformalDecals/SelectionGlow" float3 worldViewDir = normalize(UnityWorldSpaceViewDir(i.worldPosition)); half rim = 1.0 - saturate(dot (normalize(worldViewDir), i.worldNormal)); - c.rgb = (_RimColor.rgb * pow(rim, _RimFalloff)) * _RimColor.a; + c.rgb = (_RimColor.rgb * pow(rim, _RimFalloff)) * _RimColor.a * _RimOpacity; half edgeGlow = 0; edgeGlow = max(edgeGlow, pow(1-saturate(i.uv.x / _RimEdgeGlow), _RimEdgePow)); edgeGlow = max(edgeGlow, pow(1-saturate(i.uv.y / _RimEdgeGlow), _RimEdgePow)); diff --git a/Distribution/GameData/ConformalDecals/Assets/decal-blank.mu b/Distribution/GameData/ConformalDecals/Assets/decal-blank.mu index 1e5c8cf..9db198c 100644 Binary files a/Distribution/GameData/ConformalDecals/Assets/decal-blank.mu and b/Distribution/GameData/ConformalDecals/Assets/decal-blank.mu differ diff --git a/Distribution/GameData/ConformalDecals/Parts/Generic/decal-generic.cfg b/Distribution/GameData/ConformalDecals/Parts/Generic/decal-generic.cfg index 2042ada..b991cba 100644 --- a/Distribution/GameData/ConformalDecals/Parts/Generic/decal-generic.cfg +++ b/Distribution/GameData/ConformalDecals/Parts/Generic/decal-generic.cfg @@ -51,10 +51,6 @@ PART { name = ModuleConformalDecal - decalFront = Decal-Front - decalBack = Decal-Back - decalModel = Decal-Model - useBaseNormal = true tile = 0, 2, 128, 112 diff --git a/Distribution/GameData/ConformalDecals/Parts/Semiotic/decal-semiotic.cfg b/Distribution/GameData/ConformalDecals/Parts/Semiotic/decal-semiotic.cfg index 46aee23..4855286 100644 --- a/Distribution/GameData/ConformalDecals/Parts/Semiotic/decal-semiotic.cfg +++ b/Distribution/GameData/ConformalDecals/Parts/Semiotic/decal-semiotic.cfg @@ -51,10 +51,6 @@ PART { name = ModuleConformalDecal - decalFront = Decal-Front - decalBack = Decal-Back - decalModel = Decal-Model - useBaseNormal = true tileSize = 64, 64 diff --git a/Distribution/GameData/ConformalDecals/Parts/decal-flag.cfg b/Distribution/GameData/ConformalDecals/Parts/decal-flag.cfg index be12f72..def09fa 100644 --- a/Distribution/GameData/ConformalDecals/Parts/decal-flag.cfg +++ b/Distribution/GameData/ConformalDecals/Parts/decal-flag.cfg @@ -7,7 +7,6 @@ PART { model = ConformalDecals/Assets/decal-blank scale = 1.0, 1.0, 1.0 - texture = blank, ConformalDecals/Flags/Peel-N-Stik } rescaleFactor = 1 @@ -52,10 +51,6 @@ PART { name = ModuleConformalFlag - decalFront = Decal-Front - decalBack = Decal-Back - decalModel = Decal-Model - useBaseNormal = true defaultDepth = 0.2 diff --git a/Distribution/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/Distribution/GameData/ConformalDecals/Plugins/ConformalDecals.dll index d9f3ac9..7f86499 100644 Binary files a/Distribution/GameData/ConformalDecals/Plugins/ConformalDecals.dll and b/Distribution/GameData/ConformalDecals/Plugins/ConformalDecals.dll differ diff --git a/Distribution/GameData/ConformalDecals/Resources/conformaldecals.shab b/Distribution/GameData/ConformalDecals/Resources/conformaldecals.shab index d698ef0..e5b8f3b 100644 Binary files a/Distribution/GameData/ConformalDecals/Resources/conformaldecals.shab and b/Distribution/GameData/ConformalDecals/Resources/conformaldecals.shab differ diff --git a/Source/ConformalDecals/ModuleConformalDecal.cs b/Source/ConformalDecals/ModuleConformalDecal.cs index 2a05197..47d5d1e 100644 --- a/Source/ConformalDecals/ModuleConformalDecal.cs +++ b/Source/ConformalDecals/ModuleConformalDecal.cs @@ -25,12 +25,12 @@ namespace ConformalDecals { /// /// Decal front transform name. Required /// - [KSPField] public string decalFront = string.Empty; + [KSPField] public string decalFront = "Decal-Front"; /// /// Decal back transform name. Required if is true. /// - [KSPField] public string decalBack = string.Empty; + [KSPField] public string decalBack = "Decal-Back"; /// /// Decal model transform name. Is rescaled to preview the decal scale when unattached. @@ -38,7 +38,7 @@ namespace ConformalDecals { /// /// If unspecified, the decal front transform is used instead. /// - [KSPField] public string decalModel = string.Empty; + [KSPField] public string decalModel = "Decal-Model"; /// /// Decal projector transform name. The decal will project along the +Z axis of this transform. @@ -46,7 +46,7 @@ namespace ConformalDecals { /// /// if unspecified, the part "model" transform will be used instead. /// - [KSPField] public string decalProjector = string.Empty; + [KSPField] public string decalProjector = "Decal-Projector"; // Parameters @@ -389,9 +389,11 @@ namespace ConformalDecals { this.Log($"Decal attached to {part.parent.partName}"); - // hide preview model - decalFrontTransform.gameObject.SetActive(false); - decalBackTransform.gameObject.SetActive(false); + // hide model + decalModelTransform.gameObject.SetActive(false); + + // unhide projector + decalProjectorTransform.gameObject.SetActive(true); // add to preCull delegate Camera.onPreCull += Render; @@ -404,9 +406,11 @@ namespace ConformalDecals { protected void OnDetach() { _isAttached = false; - // unhide preview model - decalFrontTransform.gameObject.SetActive(true); - decalBackTransform.gameObject.SetActive(true); + // unhide model + decalModelTransform.gameObject.SetActive(true); + + // hide projector + decalProjectorTransform.gameObject.SetActive(false); // remove from preCull delegate Camera.onPreCull -= Render; @@ -418,7 +422,7 @@ namespace ConformalDecals { protected void UpdateScale() { var aspectRatio = materialProperties.AspectRatio; Vector2 size; - + switch (scaleMode) { default: case DecalScaleMode.HEIGHT: @@ -452,9 +456,7 @@ namespace ConformalDecals { _orthoMatrix[0, 3] = 0.5f; _orthoMatrix[1, 3] = 0.5f; - _orthoMatrix[0, 0] = 1 / size.x; - _orthoMatrix[1, 1] = 1 / size.y; - _orthoMatrix[2, 2] = 1 / depth; + decalProjectorTransform.localScale = new Vector3(size.x, size.y, depth); // update projection foreach (var target in _targets) {