This commit is contained in:
unknown
2026-04-16 18:19:23 +05:00
parent 6c3f72385e
commit 087db550f1
43 changed files with 1676 additions and 58 deletions

View File

@@ -0,0 +1,58 @@
Shader "Blocks/BlockBreak"
{
// Оверлей анимации разрушения блока.
// Рендерится поверх чанкового меша отдельным объектом 1x1x1.
Properties
{
_Progress ("Break Progress", Range(0,1)) = 0
_CrackTex ("Crack Texture", 2D) = "black" {}
_Color ("Tint", Color) = (0,0,0,1)
}
SubShader
{
Tags
{
"Queue" = "Transparent+1"
"RenderType" = "Transparent"
"IgnoreProjector" = "True"
}
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
Offset -1, -1 // рисуем чуть поверх, без z-fighting
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _CrackTex;
float4 _CrackTex_ST;
float _Progress;
fixed4 _Color;
struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; };
struct v2f { float4 pos : SV_POSITION; float2 uv : TEXCOORD0; };
v2f vert(appdata v)
{
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _CrackTex);
return o;
}
fixed4 frag(v2f i) : SV_Target
{
fixed4 crack = tex2D(_CrackTex, i.uv);
// crack.r — интенсивность трещины; накладывается по прогрессу
float alpha = crack.r * _Progress;
return fixed4(_Color.rgb, alpha);
}
ENDCG
}
}
}

View File

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

View File

@@ -0,0 +1,55 @@
Shader "Blocks/VoxelLit"
{
Properties
{
_MainTexArray ("Texture Array", 2DArray) = "" {}
_Glossiness ("Smoothness", Range(0,1)) = 0.0
_Metallic ("Metallic", Range(0,1)) = 0.0
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
// Standard surface shader с кастомным vertex для передачи texIndex
#pragma surface surf Standard fullforwardshadows vertex:vert
#pragma target 3.5
#pragma require 2darray
UNITY_DECLARE_TEX2DARRAY(_MainTexArray);
struct Input
{
float2 uv_MainTexArray; // стандартный UV (0-1 по грани)
float texIndex; // индекс слоя в Texture2DArray
};
half _Glossiness;
half _Metallic;
// Vertex-функция: читаем texIndex из канала UV1 (mesh.uv2)
void vert(inout appdata_full v, out Input o)
{
UNITY_INITIALIZE_OUTPUT(Input, o);
o.uv_MainTexArray = v.texcoord.xy;
o.texIndex = v.texcoord1.x; // UV1.x = индекс текстуры
}
void surf(Input IN, inout SurfaceOutputStandard o)
{
fixed4 c = UNITY_SAMPLE_TEX2DARRAY(
_MainTexArray,
float3(IN.uv_MainTexArray, IN.texIndex)
);
o.Albedo = c.rgb;
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}

View File

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