Stash work

This commit is contained in:
Michal Pikulski
2025-12-08 16:46:50 +01:00
parent 596f3e4fa6
commit 8a65a5d0f6
27 changed files with 2106 additions and 1488 deletions

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,82 @@
Shader "TrashMaze/BackgroundVisibility"
{
Properties
{
_LitTex ("Lit Texture (Color)", 2D) = "white" {}
_UnlitTex ("Unlit Texture (Dark)", 2D) = "white" {}
_TransitionSoftness ("Transition Softness", Range(0, 2)) = 0.5
}
SubShader
{
Tags
{
"Queue"="Background"
"RenderType"="Opaque"
}
LOD 100
Pass
{
HLSLPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
struct Attributes
{
float4 positionOS : POSITION;
float2 uv : TEXCOORD0;
};
struct Varyings
{
float2 uv : TEXCOORD0;
float3 positionWS : TEXCOORD1;
float4 positionCS : SV_POSITION;
};
TEXTURE2D(_LitTex);
SAMPLER(sampler_LitTex);
TEXTURE2D(_UnlitTex);
SAMPLER(sampler_UnlitTex);
float4 _LitTex_ST;
float _TransitionSoftness;
// Global properties set by PulverController
float3 _PlayerWorldPos;
float _VisionRadius;
Varyings vert(Attributes input)
{
Varyings output;
VertexPositionInputs vertexInput = GetVertexPositionInputs(input.positionOS.xyz);
output.positionCS = vertexInput.positionCS;
output.positionWS = vertexInput.positionWS;
output.uv = TRANSFORM_TEX(input.uv, _LitTex);
return output;
}
half4 frag(Varyings input) : SV_Target
{
// Calculate distance from pixel to player
float dist = distance(input.positionWS.xy, _PlayerWorldPos.xy);
// Create smooth transition between lit and unlit
float t = smoothstep(_VisionRadius - _TransitionSoftness, _VisionRadius, dist);
// Sample both textures
half4 litColor = SAMPLE_TEXTURE2D(_LitTex, sampler_LitTex, input.uv);
half4 unlitColor = SAMPLE_TEXTURE2D(_UnlitTex, sampler_UnlitTex, input.uv);
// Blend based on distance
return lerp(litColor, unlitColor, t);
}
ENDHLSL
}
}
FallBack "Diffuse"
}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,91 @@
Shader "TrashMaze/ObjectVisibility"
{
Properties
{
_MainTex ("Normal Texture (Color)", 2D) = "white" {}
_OutlineTex ("Outline Texture (White)", 2D) = "white" {}
[PerRendererData] _IsRevealed ("Is Revealed", Float) = 0
[PerRendererData] _IsInVision ("Is In Vision", Float) = 0
}
SubShader
{
Tags
{
"Queue"="Transparent"
"RenderType"="Transparent"
"IgnoreProjector"="True"
}
Blend SrcAlpha OneMinusSrcAlpha
ZWrite Off
Cull Off
Pass
{
HLSLPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
struct Attributes
{
float4 positionOS : POSITION;
float2 uv : TEXCOORD0;
};
struct Varyings
{
float2 uv : TEXCOORD0;
float4 positionCS : SV_POSITION;
};
TEXTURE2D(_MainTex);
SAMPLER(sampler_MainTex);
TEXTURE2D(_OutlineTex);
SAMPLER(sampler_OutlineTex);
float4 _MainTex_ST;
// Per-instance properties (set by RevealableObject component)
float _IsRevealed;
float _IsInVision;
Varyings vert(Attributes input)
{
Varyings output;
VertexPositionInputs vertexInput = GetVertexPositionInputs(input.positionOS.xyz);
output.positionCS = vertexInput.positionCS;
output.uv = TRANSFORM_TEX(input.uv, _MainTex);
return output;
}
half4 frag(Varyings input) : SV_Target
{
// Three-state logic:
// 1. In vision radius -> show normal texture (color)
// 2. Revealed but outside vision -> show outline texture (white)
// 3. Never revealed -> transparent (hidden)
if (_IsInVision > 0.5)
{
// Inside vision radius - show color
return SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, input.uv);
}
else if (_IsRevealed > 0.5)
{
// Revealed but outside vision - show outline
return SAMPLE_TEXTURE2D(_OutlineTex, sampler_OutlineTex, input.uv);
}
else
{
// Never revealed - transparent (hidden)
return half4(0, 0, 0, 0);
}
}
ENDHLSL
}
}
FallBack "Transparent/Diffuse"
}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant: