unity Shader新增
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 40f860da4dfb4e542a69f0086bb0cb65
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 824ed67c706712b4bb2d81074cd81989
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bfa61a84d8568f342beffae5118b81ae
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,93 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
|
||||
/// <summary>
|
||||
/// Grab Pass 特性:将当前颜色缓冲绑定为 _CameraColorAttachmentA 供热扭曲等效果使用
|
||||
/// </summary>
|
||||
public class GrabPassFeature : ScriptableRendererFeature
|
||||
{
|
||||
[System.Serializable]
|
||||
public class Settings
|
||||
{
|
||||
public RenderPassEvent renderPassEvent = RenderPassEvent.AfterRenderingPostProcessing;
|
||||
public string shaderTagName = "Grab";
|
||||
public LayerMask layerMask = -1;
|
||||
|
||||
[Header("性能设置")]
|
||||
[Tooltip("采样分辨率缩放(1.0 = 全分辨率,0.5 = 半分辨率)")]
|
||||
[Range(0.25f, 1f)]
|
||||
public float resolutionScale = 1f;
|
||||
}
|
||||
|
||||
public Settings settings = new Settings();
|
||||
private GrabPass grabPass;
|
||||
|
||||
public override void Create()
|
||||
{
|
||||
grabPass = new GrabPass(settings);
|
||||
}
|
||||
|
||||
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
|
||||
{
|
||||
renderer.EnqueuePass(grabPass);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
grabPass?.Dispose();
|
||||
}
|
||||
|
||||
class GrabPass : ScriptableRenderPass
|
||||
{
|
||||
private readonly ShaderTagId shaderTagId;
|
||||
private FilteringSettings filteringSettings;
|
||||
private readonly Settings settings;
|
||||
private RTHandle tempColorTarget;
|
||||
|
||||
public GrabPass(Settings settings)
|
||||
{
|
||||
this.settings = settings;
|
||||
renderPassEvent = settings.renderPassEvent;
|
||||
shaderTagId = new ShaderTagId(settings.shaderTagName);
|
||||
filteringSettings = new FilteringSettings(RenderQueueRange.transparent, settings.layerMask);
|
||||
ConfigureInput(ScriptableRenderPassInput.Color);
|
||||
}
|
||||
|
||||
public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData)
|
||||
{
|
||||
var descriptor = renderingData.cameraData.cameraTargetDescriptor;
|
||||
descriptor.width = Mathf.Max(1, Mathf.CeilToInt(descriptor.width * settings.resolutionScale));
|
||||
descriptor.height = Mathf.Max(1, Mathf.CeilToInt(descriptor.height * settings.resolutionScale));
|
||||
descriptor.depthBufferBits = 0;
|
||||
descriptor.msaaSamples = 1;
|
||||
|
||||
RenderingUtils.ReAllocateIfNeeded(ref tempColorTarget, descriptor, FilterMode.Bilinear, TextureWrapMode.Clamp, name: "_GrabPassTemp");
|
||||
}
|
||||
|
||||
public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
|
||||
{
|
||||
if (tempColorTarget == null) return;
|
||||
|
||||
var cmd = CommandBufferPool.Get("Grab Pass");
|
||||
var sourceColorTarget = renderingData.cameraData.renderer.cameraColorTargetHandle;
|
||||
|
||||
cmd.Blit(sourceColorTarget.nameID, tempColorTarget.nameID);
|
||||
cmd.SetGlobalTexture("_CameraColorAttachmentA", tempColorTarget.nameID);
|
||||
cmd.SetRenderTarget(sourceColorTarget, RenderBufferLoadAction.Load, RenderBufferStoreAction.Store);
|
||||
|
||||
context.ExecuteCommandBuffer(cmd);
|
||||
cmd.Clear();
|
||||
|
||||
var drawingSettings = CreateDrawingSettings(shaderTagId, ref renderingData, SortingCriteria.CommonTransparent);
|
||||
context.DrawRenderers(renderingData.cullResults, ref drawingSettings, ref filteringSettings);
|
||||
|
||||
CommandBufferPool.Release(cmd);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
tempColorTarget?.Release();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6651ec9baec2f774fad520f6c551b64d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,167 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
|
||||
public class MobileFogRendererFeature : ScriptableRendererFeature
|
||||
{
|
||||
[System.Serializable]
|
||||
public class Settings
|
||||
{
|
||||
[Header("渲染设置")]
|
||||
public RenderPassEvent renderPassEvent = RenderPassEvent.BeforeRenderingPostProcessing;
|
||||
|
||||
[Header("Shader")]
|
||||
public Shader fogShader;
|
||||
|
||||
[Header("移动端优化")]
|
||||
[Range(0.1f, 1f)]
|
||||
public float renderScale = 1f;
|
||||
|
||||
public bool useHalfResolution = false;
|
||||
}
|
||||
|
||||
public Settings settings = new Settings();
|
||||
private MobileFogRenderPass fogPass;
|
||||
|
||||
public override void Create()
|
||||
{
|
||||
if (settings.fogShader == null)
|
||||
{
|
||||
Debug.LogWarning("MobileFogRendererFeature: Fog shader is missing!");
|
||||
return;
|
||||
}
|
||||
|
||||
fogPass = new MobileFogRenderPass(settings);
|
||||
}
|
||||
|
||||
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
|
||||
{
|
||||
if (fogPass == null) return;
|
||||
|
||||
|
||||
fogPass.Setup();
|
||||
renderer.EnqueuePass(fogPass);
|
||||
}
|
||||
}
|
||||
|
||||
public class MobileFogRenderPass : ScriptableRenderPass
|
||||
{
|
||||
private Material fogMaterial;
|
||||
private MobileFogRendererFeature.Settings settings;
|
||||
private RTHandle tempColorTexture;
|
||||
|
||||
// Shader属性ID缓存
|
||||
private static readonly int FogDensityID = Shader.PropertyToID("_FogDensity");
|
||||
private static readonly int FogStartID = Shader.PropertyToID("_FogStart");
|
||||
private static readonly int FogEndID = Shader.PropertyToID("_FogEnd");
|
||||
private static readonly int HeightFogDensityID = Shader.PropertyToID("_HeightFogDensity");
|
||||
private static readonly int HeightFogBaseID = Shader.PropertyToID("_HeightFogBase");
|
||||
private static readonly int HeightFogRangeID = Shader.PropertyToID("_HeightFogRange");
|
||||
private static readonly int FogColorID = Shader.PropertyToID("_FogColor");
|
||||
private static readonly int FogColorNearID = Shader.PropertyToID("_FogColorNear");
|
||||
private static readonly int FogColorFarID = Shader.PropertyToID("_FogColorFar");
|
||||
private static readonly int GradientDistanceID = Shader.PropertyToID("_GradientDistance");
|
||||
private static readonly int UseGradientColorID = Shader.PropertyToID("_UseGradientColor");
|
||||
private static readonly int IntensityID = Shader.PropertyToID("_Intensity");
|
||||
private static readonly int FastModeID = Shader.PropertyToID("_UseFastMode");
|
||||
private static readonly int NoiseScaleID = Shader.PropertyToID("_NoiseScale");
|
||||
private static readonly int NoiseIntensityID = Shader.PropertyToID("_NoiseIntensity");
|
||||
private static readonly int NoiseSpeedID = Shader.PropertyToID("_NoiseSpeed");
|
||||
|
||||
|
||||
|
||||
|
||||
public MobileFogRenderPass(MobileFogRendererFeature.Settings settings)
|
||||
{
|
||||
this.settings = settings;
|
||||
renderPassEvent = settings.renderPassEvent;
|
||||
|
||||
if (settings.fogShader != null)
|
||||
{
|
||||
fogMaterial = new Material(settings.fogShader);
|
||||
}
|
||||
}
|
||||
|
||||
public void Setup()
|
||||
{
|
||||
// 配置渲染目标
|
||||
ConfigureInput(ScriptableRenderPassInput.Color | ScriptableRenderPassInput.Depth);
|
||||
}
|
||||
|
||||
public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
|
||||
{
|
||||
if (fogMaterial == null) return;
|
||||
|
||||
var stack = VolumeManager.instance.stack;
|
||||
var fogVolume = stack.GetComponent<MobileFog>();
|
||||
|
||||
if (fogVolume == null || !fogVolume.IsActive()) return;
|
||||
|
||||
CommandBuffer cmd = CommandBufferPool.Get("Mobile Fog Effect");
|
||||
|
||||
var cameraData = renderingData.cameraData;
|
||||
var source = cameraData.renderer.cameraColorTargetHandle;
|
||||
|
||||
// 计算渲染分辨率
|
||||
var descriptor = cameraData.cameraTargetDescriptor;
|
||||
if (settings.useHalfResolution)
|
||||
{
|
||||
descriptor.width /= 2;
|
||||
descriptor.height /= 2;
|
||||
}
|
||||
descriptor.width = Mathf.RoundToInt(descriptor.width * settings.renderScale);
|
||||
descriptor.height = Mathf.RoundToInt(descriptor.height * settings.renderScale);
|
||||
descriptor.depthBufferBits = 0;
|
||||
|
||||
descriptor.depthBufferBits = 0;
|
||||
|
||||
// 设置Shader参数
|
||||
SetShaderParameters(fogVolume);
|
||||
|
||||
// 执行雾效渲染
|
||||
RenderingUtils.ReAllocateIfNeeded(ref tempColorTexture, descriptor, FilterMode.Bilinear, TextureWrapMode.Clamp, name: "_TempFogTexture");
|
||||
cmd.Blit(source, tempColorTexture);
|
||||
cmd.Blit(tempColorTexture, source, fogMaterial, 0);
|
||||
|
||||
context.ExecuteCommandBuffer(cmd);
|
||||
}
|
||||
|
||||
private void SetShaderParameters(MobileFog fog)
|
||||
{
|
||||
fogMaterial.SetFloat(FogDensityID, fog.fogDensity.value);
|
||||
fogMaterial.SetFloat(FogStartID, fog.fogStart.value);
|
||||
fogMaterial.SetFloat(FogEndID, fog.fogEnd.value);
|
||||
fogMaterial.SetFloat(HeightFogDensityID, fog.heightFogDensity.value);
|
||||
fogMaterial.SetFloat(HeightFogBaseID, fog.heightFogBase.value);
|
||||
fogMaterial.SetFloat(HeightFogRangeID, fog.heightFogRange.value);
|
||||
|
||||
// 颜色相关参数
|
||||
fogMaterial.SetColor(FogColorID, fog.fogColor.value);
|
||||
fogMaterial.SetColor(FogColorNearID, fog.fogColorNear.value);
|
||||
fogMaterial.SetColor(FogColorFarID, fog.fogColorFar.value);
|
||||
fogMaterial.SetFloat(GradientDistanceID, fog.gradientDistance.value);
|
||||
fogMaterial.SetFloat(UseGradientColorID, fog.useGradientColor.value ? 1f : 0f);
|
||||
|
||||
fogMaterial.SetFloat(IntensityID, fog.intensity.value);
|
||||
fogMaterial.SetFloat(FastModeID, fog.useFastMode.value ? 1f : 0f);
|
||||
fogMaterial.SetFloat(NoiseScaleID, fog.noiseScale.value);
|
||||
fogMaterial.SetFloat(NoiseIntensityID, fog.noiseIntensity.value);
|
||||
fogMaterial.SetFloat(NoiseSpeedID, fog.noiseSpeed.value);
|
||||
|
||||
// 设置shader关键字
|
||||
if (fog.useGradientColor.value)
|
||||
fogMaterial.EnableKeyword("_USE_GRADIENT_COLOR");
|
||||
else
|
||||
fogMaterial.DisableKeyword("_USE_GRADIENT_COLOR");
|
||||
}
|
||||
|
||||
public override void OnCameraCleanup(CommandBuffer cmd)
|
||||
{
|
||||
// RTHandle cleanup is handled automatically
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
tempColorTexture?.Release();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ecd0833bd586c184fafb109818988891
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0034e7bf6f90cc94c9cae3f7d8df2700
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,63 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
|
||||
[System.Serializable, VolumeComponentMenu("Post-processing/Mobile Fog")]
|
||||
public class MobileFog : VolumeComponent, IPostProcessComponent
|
||||
{
|
||||
[Header("深度雾设置")]
|
||||
[Tooltip("深度雾密度")]
|
||||
public ClampedFloatParameter fogDensity = new ClampedFloatParameter(0f, 0f, 1f);
|
||||
|
||||
[Tooltip("深度雾开始距离")]
|
||||
public FloatParameter fogStart = new FloatParameter(0f);
|
||||
|
||||
[Tooltip("深度雾结束距离")]
|
||||
public FloatParameter fogEnd = new FloatParameter(100f);
|
||||
|
||||
[Header("高度雾设置")]
|
||||
[Tooltip("高度雾密度")]
|
||||
public ClampedFloatParameter heightFogDensity = new ClampedFloatParameter(0f, 0f, 1f);
|
||||
|
||||
[Tooltip("高度雾基础高度")]
|
||||
public FloatParameter heightFogBase = new FloatParameter(0f);
|
||||
|
||||
[Tooltip("高度雾影响范围")]
|
||||
public FloatParameter heightFogRange = new FloatParameter(50f);
|
||||
|
||||
[Header("噪波设置")]
|
||||
[Tooltip("噪波缩放")]
|
||||
public FloatParameter noiseScale = new FloatParameter(0.01f);
|
||||
|
||||
[Tooltip("噪波强度")]
|
||||
public ClampedFloatParameter noiseIntensity = new ClampedFloatParameter(5f, 0f, 20f);
|
||||
|
||||
[Tooltip("噪波动画速度")]
|
||||
public FloatParameter noiseSpeed = new FloatParameter(0.1f);
|
||||
|
||||
[Header("雾效外观")]
|
||||
[Tooltip("是否启用渐变色")]
|
||||
public BoolParameter useGradientColor = new BoolParameter(false);
|
||||
|
||||
[Tooltip("雾的固定颜色(不使用渐变时)")]
|
||||
public ColorParameter fogColor = new ColorParameter(Color.gray);
|
||||
|
||||
[Tooltip("近处雾的颜色")]
|
||||
public ColorParameter fogColorNear = new ColorParameter(new Color(0.8f, 0.9f, 1f, 1f)); // 偏蓝的近景色
|
||||
|
||||
[Tooltip("远处雾的颜色")]
|
||||
public ColorParameter fogColorFar = new ColorParameter(new Color(0.6f, 0.7f, 0.9f, 1f)); // 偏紫的远景色
|
||||
|
||||
[Tooltip("渐变过渡距离")]
|
||||
public FloatParameter gradientDistance = new FloatParameter(100f);
|
||||
|
||||
[Tooltip("雾效强度")]
|
||||
public ClampedFloatParameter intensity = new ClampedFloatParameter(1f, 0f, 1f);
|
||||
|
||||
[Header("移动端优化")]
|
||||
[Tooltip("使用快速模式(降低质量提升性能)")]
|
||||
public BoolParameter useFastMode = new BoolParameter(true);
|
||||
|
||||
public bool IsActive() => (fogDensity.value > 0f || heightFogDensity.value > 0f) && intensity.value > 0f;
|
||||
public bool IsTileCompatible() => false;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4076c130dc606994ca6aa673c2652cda
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2f204fd0285f09f448d38b24e8486aa4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,37 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Hidden_MobileFog
|
||||
m_Shader: {fileID: 4800000, guid: a4a75cbf1047a9a4bb1d0b9e6d3bd4ad, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _FogGradient:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats: []
|
||||
m_Colors: []
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 018120cefc700df429bceec4bd557974
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,267 @@
|
||||
Shader "Hidden/MobileFog"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_MainTex ("Main Texture", 2D) = "white" {}
|
||||
_FogGradient ("Fog Gradient", 2D) = "white" {}
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags { "RenderType"="Opaque" "RenderPipeline"="UniversalPipeline" }
|
||||
ZTest Always ZWrite Off Cull Off
|
||||
|
||||
Pass
|
||||
{
|
||||
Name "MobileFog"
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_local _ _USE_FAST_MODE
|
||||
#pragma multi_compile_local _ _USE_GRADIENT_COLOR
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl"
|
||||
|
||||
struct Attributes
|
||||
{
|
||||
float4 positionOS : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct Varyings
|
||||
{
|
||||
float4 positionHCS : SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
float3 viewVector : TEXCOORD1;
|
||||
};
|
||||
|
||||
TEXTURE2D(_MainTex);
|
||||
SAMPLER(sampler_MainTex);
|
||||
TEXTURE2D(_FogGradient);
|
||||
SAMPLER(sampler_FogGradient);
|
||||
|
||||
// 雾效参数
|
||||
float _FogDensity;
|
||||
float _FogStart;
|
||||
float _FogEnd;
|
||||
float _HeightFogDensity;
|
||||
float _HeightFogBase;
|
||||
float _HeightFogRange;
|
||||
float4 _FogColor;
|
||||
float4 _FogColorNear;
|
||||
float4 _FogColorFar;
|
||||
float _GradientDistance;
|
||||
float _UseGradientColor;
|
||||
float _Intensity;
|
||||
float _UseFastMode;
|
||||
|
||||
// 噪波参数
|
||||
float _NoiseScale;
|
||||
float _NoiseIntensity;
|
||||
float _NoiseSpeed;
|
||||
|
||||
Varyings vert(Attributes input)
|
||||
{
|
||||
Varyings output;
|
||||
output.positionHCS = TransformObjectToHClip(input.positionOS.xyz);
|
||||
output.uv = input.uv;
|
||||
|
||||
// 计算视图向量,用于重建世界坐标
|
||||
float4 clipPos = float4(input.uv * 2.0 - 1.0, 1.0, 1.0);
|
||||
float4 viewPos = mul(unity_CameraInvProjection, clipPos);
|
||||
output.viewVector = viewPos.xyz / viewPos.w;
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
// 简单的2D噪波函数
|
||||
float random(float2 st)
|
||||
{
|
||||
return frac(sin(dot(st.xy, float2(12.9898,78.233))) * 43758.5453123);
|
||||
}
|
||||
|
||||
// Perlin噪波近似
|
||||
float noise(float2 st)
|
||||
{
|
||||
float2 i = floor(st);
|
||||
float2 f = frac(st);
|
||||
|
||||
// 四个角的随机值
|
||||
float a = random(i);
|
||||
float b = random(i + float2(1.0, 0.0));
|
||||
float c = random(i + float2(0.0, 1.0));
|
||||
float d = random(i + float2(1.0, 1.0));
|
||||
|
||||
// 平滑插值
|
||||
float2 u = f * f * (3.0 - 2.0 * f);
|
||||
|
||||
return lerp(a, b, u.x) + (c - a) * u.y * (1.0 - u.x) + (d - b) * u.x * u.y;
|
||||
}
|
||||
|
||||
// 分形噪波
|
||||
float fbm(float2 st, int octaves)
|
||||
{
|
||||
float value = 0.0;
|
||||
float amplitude = 0.5;
|
||||
float frequency = 1.0;
|
||||
|
||||
for (int i = 0; i < octaves; i++)
|
||||
{
|
||||
value += amplitude * noise(st * frequency);
|
||||
amplitude *= 0.5;
|
||||
frequency *= 2.0;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
// 根据距离获取雾的颜色
|
||||
float3 GetFogColor(float depth)
|
||||
{
|
||||
if (_UseGradientColor > 0.5)
|
||||
{
|
||||
// 计算距离插值因子 (0=近处, 1=远处)
|
||||
float distanceFactor = saturate((depth - _FogStart) / max(_GradientDistance, 0.001));
|
||||
|
||||
// 在近处和远处颜色之间插值
|
||||
return lerp(_FogColorNear.rgb, _FogColorFar.rgb, distanceFactor);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 使用固定颜色
|
||||
return _FogColor.rgb;
|
||||
}
|
||||
}
|
||||
|
||||
// 从渐变贴图采样颜色(可选的高级功能)
|
||||
float3 GetFogColorFromTexture(float depth)
|
||||
{
|
||||
// 将深度映射到0-1范围
|
||||
float t = saturate((depth - _FogStart) / max(_GradientDistance, 0.001));
|
||||
return SAMPLE_TEXTURE2D_LOD(_FogGradient, sampler_FogGradient, float2(t, 0.5), 0).rgb;
|
||||
}
|
||||
|
||||
// 计算基础深度雾(不受高度影响)
|
||||
float CalculateDepthFog(float depth)
|
||||
{
|
||||
return saturate((depth - _FogStart) / max(_FogEnd - _FogStart, 0.001)) * _FogDensity;
|
||||
}
|
||||
|
||||
// 计算基础深度雾(精确模式)
|
||||
float CalculateDepthFogPrecise(float depth)
|
||||
{
|
||||
return 1.0 - exp(-_FogDensity * max(depth - _FogStart, 0.0));
|
||||
}
|
||||
|
||||
// 计算带噪波的高度因子(0-1,用于调节深度雾密度)
|
||||
float CalculateHeightFactorWithNoise(float height, float3 worldPos)
|
||||
{
|
||||
// 基础高度计算
|
||||
float heightOffset = height - _HeightFogBase;
|
||||
|
||||
// 添加基于世界坐标的噪波扰动
|
||||
float2 noiseCoord = worldPos.xz * _NoiseScale + _Time.y * _NoiseSpeed;
|
||||
|
||||
// 生成多层噪波
|
||||
float heightNoise = fbm(noiseCoord, 3) * 2.0 - 1.0; // -1 到 1
|
||||
float detailNoise = fbm(noiseCoord * 3.0, 2) * 0.5; // 细节噪波
|
||||
|
||||
// 组合噪波
|
||||
float combinedNoise = (heightNoise + detailNoise * 0.3) * _NoiseIntensity;
|
||||
|
||||
// 将噪波应用到高度偏移
|
||||
float noisyHeightOffset = heightOffset + combinedNoise;
|
||||
|
||||
// 计算标准化高度,使用更平滑的过渡
|
||||
float normalizedHeight = noisyHeightOffset / max(_HeightFogRange, 0.001);
|
||||
|
||||
// 使用更自然的衰减曲线 (高度越低值越大,高度越高值越小)
|
||||
float heightFactor = 1.0 / (1.0 + exp(normalizedHeight * 4.0 - 2.0)); // sigmoid函数
|
||||
|
||||
return heightFactor;
|
||||
}
|
||||
|
||||
// 快速雾效计算(移动端优化)
|
||||
float CalculateFogFast(float depth, float height, float3 worldPos)
|
||||
{
|
||||
// 计算独立的深度雾
|
||||
float depthFog = CalculateDepthFog(depth);
|
||||
|
||||
// 计算高度调节因子 (0-1)
|
||||
float heightFactor = CalculateHeightFactorWithNoise(height, worldPos);
|
||||
|
||||
// 计算独立的高度雾
|
||||
float heightFog = _HeightFogDensity * heightFactor;
|
||||
|
||||
// 深度雾受高度影响:高度越低,深度雾越浓
|
||||
float heightInfluencedDepthFog = depthFog * lerp(0.1, 1.0, heightFactor);
|
||||
|
||||
// 组合两种雾效:使用加法混合,但避免过饱和
|
||||
float combinedFog = heightInfluencedDepthFog + heightFog;
|
||||
|
||||
return saturate(combinedFog);
|
||||
}
|
||||
|
||||
// 高质量雾效计算
|
||||
float CalculateFogPrecise(float depth, float height, float3 worldPos)
|
||||
{
|
||||
// 计算独立的指数深度雾
|
||||
float depthFog = CalculateDepthFogPrecise(depth);
|
||||
|
||||
// 计算带噪波的平滑高度调节因子
|
||||
float heightFactor = CalculateHeightFactorWithNoise(height, worldPos);
|
||||
heightFactor = smoothstep(0.0, 1.0, heightFactor);
|
||||
|
||||
// 计算独立的高度雾
|
||||
float heightFog = _HeightFogDensity * heightFactor;
|
||||
|
||||
// 深度雾受高度影响:使用更平滑的过渡
|
||||
float heightInfluencedDepthFog = depthFog * lerp(0.1, 1.0, heightFactor);
|
||||
|
||||
// 使用更自然的组合方式:乘法混合避免过度叠加
|
||||
float combinedFog = 1.0 - (1.0 - heightInfluencedDepthFog) * (1.0 - heightFog);
|
||||
|
||||
return saturate(combinedFog);
|
||||
}
|
||||
|
||||
float4 frag(Varyings input) : SV_Target
|
||||
{
|
||||
float4 color = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, input.uv);
|
||||
|
||||
// 采样深度并转换为线性深度
|
||||
float depth = SampleSceneDepth(input.uv);
|
||||
float linearDepth = LinearEyeDepth(depth, _ZBufferParams);
|
||||
|
||||
// 重建世界坐标以获取高度信息
|
||||
float3 worldPos = _WorldSpaceCameraPos + input.viewVector * linearDepth;
|
||||
float height = worldPos.y;
|
||||
|
||||
// 根据设置选择计算模式
|
||||
float fogFactor;
|
||||
if (_UseFastMode > 0.5)
|
||||
{
|
||||
fogFactor = CalculateFogFast(linearDepth, height, worldPos);
|
||||
}
|
||||
else
|
||||
{
|
||||
fogFactor = CalculateFogPrecise(linearDepth, height, worldPos);
|
||||
}
|
||||
|
||||
// 应用强度控制
|
||||
fogFactor *= _Intensity;
|
||||
|
||||
// 根据距离获取雾的颜色
|
||||
float3 fogColor = GetFogColor(linearDepth);
|
||||
|
||||
// 混合原色和雾色
|
||||
float3 finalColor = lerp(color.rgb, fogColor, fogFactor);
|
||||
|
||||
return float4(finalColor, color.a);
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
|
||||
Fallback Off
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a4a75cbf1047a9a4bb1d0b9e6d3bd4ad
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,159 @@
|
||||
//修改于2025.5.28
|
||||
Shader "Soung/Effect/DotGlow"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
//无用贴图, 避免UI警告用
|
||||
[HideInInspector]_MainTex("贴图", 2D) = "white" {}
|
||||
[KeywordEnum(Dot,Glow)] _dotorglow("光点状/光晕状", Float) = 0
|
||||
[HDR]_EnhancedColor("颜色", Color) = (1,1,1,1)
|
||||
_MaskPow("光点范围", Range( 5 , 50)) = 10
|
||||
_DotPwr("光点亮度", Range( 0 , 5)) = 1
|
||||
_MaskSub("光晕范围", Range( 0.5 , 1)) = 0.5
|
||||
_GlowPwr("光晕亮度", Range( 0 , 20)) = 20
|
||||
[Header(DepthFade)][Toggle(_SOFT_PARTICLES_ON)] _EnableSoftParticles("启用软粒子", Float) = 0
|
||||
_DepthFade("软粒子强度", Range( 0 , 1)) = 0.05
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags
|
||||
{
|
||||
"RenderPipeline"="UniversalPipeline"
|
||||
"RenderType"="Transparent"
|
||||
"Queue"="Transparent"
|
||||
"UniversalMaterialType"="Unlit"
|
||||
}
|
||||
|
||||
Cull Off
|
||||
Blend One One, One OneMinusSrcAlpha
|
||||
ZWrite Off
|
||||
ZTest LEqual
|
||||
Offset 0 , 0
|
||||
ColorMask RGBA
|
||||
|
||||
HLSLINCLUDE
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
|
||||
// 条件包含深度纹理
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
#define REQUIRE_DEPTH_TEXTURE 1
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl"
|
||||
#endif
|
||||
|
||||
CBUFFER_START(UnityPerMaterial)
|
||||
float4 _EnhancedColor;
|
||||
float _MaskPow;
|
||||
float _DotPwr;
|
||||
float _MaskSub;
|
||||
float _GlowPwr;
|
||||
float _DepthFade;
|
||||
CBUFFER_END
|
||||
|
||||
struct a2v
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float4 ase_color : COLOR;
|
||||
float4 ase_texcoord : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 clipPos : SV_POSITION;
|
||||
float4 ase_color : COLOR;
|
||||
float4 ase_texcoord3 : TEXCOORD0;
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
float4 scrPos : TEXCOORD1;
|
||||
#endif
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
ENDHLSL
|
||||
|
||||
Pass
|
||||
{
|
||||
Name "Forward"
|
||||
Tags { "LightMode"="SRPDefaultUnlit" }
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VERT
|
||||
#pragma fragment FRAG
|
||||
#pragma shader_feature_local _DOTORGLOW_DOT _DOTORGLOW_GLOW
|
||||
#pragma shader_feature_local_fragment _SOFT_PARTICLES_ON
|
||||
#pragma multi_compile_instancing
|
||||
|
||||
v2f VERT(a2v v)
|
||||
{
|
||||
v2f o = (v2f)0;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
|
||||
o.ase_color = v.ase_color;
|
||||
o.ase_texcoord3.xy = v.ase_texcoord.xy;
|
||||
|
||||
o.ase_texcoord3.zw = 0;
|
||||
|
||||
float3 positionWS = TransformObjectToWorld(v.vertex.xyz);
|
||||
float4 positionCS = TransformWorldToHClip(positionWS);
|
||||
|
||||
o.clipPos = positionCS;
|
||||
|
||||
// 仅在需要软粒子时计算屏幕位置
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
o.scrPos = ComputeScreenPos(positionCS);
|
||||
#endif
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
half4 FRAG(v2f IN) : SV_TARGET
|
||||
{
|
||||
UNITY_SETUP_INSTANCE_ID(IN);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(IN);
|
||||
|
||||
// 缓存颜色值
|
||||
half4 vertexColor = IN.ase_color;
|
||||
half3 enhancedColorRGB = _EnhancedColor.rgb;
|
||||
half enhancedColorA = _EnhancedColor.a;
|
||||
|
||||
half2 texCoord29 = IN.ase_texcoord3.xy * float2(1,1) + float2(0,0);
|
||||
half temp_output_32_0 = abs((1.0 - distance(texCoord29, half2(0.5,0.5))));
|
||||
|
||||
#if defined(_DOTORGLOW_DOT)
|
||||
half staticSwitch69 = saturate(pow(temp_output_32_0, _MaskPow) * _DotPwr);
|
||||
#elif defined(_DOTORGLOW_GLOW)
|
||||
half staticSwitch69 = saturate((temp_output_32_0 - _MaskSub) * _GlowPwr);
|
||||
#else
|
||||
half staticSwitch69 = saturate(pow(temp_output_32_0, _MaskPow) * _DotPwr);
|
||||
#endif
|
||||
|
||||
// 软粒子计算
|
||||
float softparticle = 1.0;
|
||||
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
if (_DepthFade > 0.001)
|
||||
{
|
||||
float4 screenPos = IN.scrPos / IN.scrPos.w;
|
||||
float2 screenUV = screenPos.xy;
|
||||
screenPos.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? screenPos.z : screenPos.z * 0.5 + 0.5;
|
||||
float sceneDepth = SampleSceneDepth(screenUV);
|
||||
float linearEyeDepth = LinearEyeDepth(sceneDepth, _ZBufferParams);
|
||||
float linearParticleDepth = LinearEyeDepth(screenPos.z, _ZBufferParams);
|
||||
float depthDiff = linearEyeDepth - linearParticleDepth;
|
||||
softparticle = saturate(depthDiff / _DepthFade);
|
||||
}
|
||||
#endif
|
||||
|
||||
// 计算最终颜色和透明度
|
||||
float3 Color = (vertexColor.rgb * staticSwitch69 * enhancedColorRGB * vertexColor.a * softparticle);
|
||||
float Alpha = (vertexColor.a * enhancedColorA * softparticle);
|
||||
|
||||
return float4(Color, Alpha);
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1f57a5b3cdf62c04cbf6260d08ff30d8
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,42 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Soung_Effect_DotGlow
|
||||
m_Shader: {fileID: 4800000, guid: 1f57a5b3cdf62c04cbf6260d08ff30d8, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _DOTORGLOW_DOT
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _DepthFade: 0.05
|
||||
- _DotPwr: 1
|
||||
- _EnableSoftParticles: 0
|
||||
- _GlowPwr: 20
|
||||
- _MaskPow: 10
|
||||
- _MaskSub: 0.5
|
||||
- _dotorglow: 0
|
||||
m_Colors:
|
||||
- _EnhancedColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20db28d651473ee488eec9973edd150d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,164 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Soung_Effect_FullFx
|
||||
m_Shader: {fileID: 4800000, guid: 0ec09da54749b094a99e5c47271f3bc7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _LIUGUANGTEXUVMODE_LOCAL
|
||||
- _PROMASKDIR_UP
|
||||
m_InvalidKeywords:
|
||||
- _SOFT_PARTICLES_ON_OFF
|
||||
- _USELGTEXCOLOR_ON
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _DissolveTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DissolveTexPlus:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _GamTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _LiuguangTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MaskTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MaskTexPlus:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NoiseTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _VertexTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendMode: 1
|
||||
- _CullingMode: 0
|
||||
- _DissolveColorMode: 0
|
||||
- _DissolveEdgeSwitch: 0
|
||||
- _DissolveEdgeWide: 0.1420648
|
||||
- _DissolveMode: 0
|
||||
- _DissolvePower: 0.3787051
|
||||
- _DissolveSmooth: 0
|
||||
- _DissolveTexP: 0
|
||||
- _DissolveTexPlusClamp: 0
|
||||
- _DissolveTexPlusFlowMode: 0
|
||||
- _DissolveTexPlusP: 0
|
||||
- _DissolveTexPlusPower: 1
|
||||
- _DissolveTexPlusRotator: 0
|
||||
- _DissolveTexPlusSwitch: 0
|
||||
- _DissolveTexPlusUsePro: 0
|
||||
- _DissolveTexPlusUspeed: 0
|
||||
- _DissolveTexPlusVspeed: 0
|
||||
- _DissolveTexRotator: 0
|
||||
- _DissolveTexSwitch: 0
|
||||
- _DissolveTexUspeed: 0
|
||||
- _DissolveTexVspeed: 0
|
||||
- _FresnelAlphaMode: 0
|
||||
- _FresnelColorMode: 0
|
||||
- _FresnelMode: 0
|
||||
- _FresnelSwitch: 0
|
||||
- _GamAlphaMode: 0
|
||||
- _GamTexClamp: 0
|
||||
- _GamTexDesaturate: 1
|
||||
- _GamTexFollowMainTex: 0
|
||||
- _GamTexP: 0
|
||||
- _GamTexRotator: 0
|
||||
- _GamTexSwitch: 0
|
||||
- _GamTexUspeed: 0
|
||||
- _GamTexVspeed: 0
|
||||
- _LiuguangSwitch: 0
|
||||
- _LiuguangTexP: 0
|
||||
- _LiuguangTexRotator: 0
|
||||
- _LiuguangTexUVmode: 0
|
||||
- _LiuguangUSpeed: 0
|
||||
- _LiuguangVSpeed: 0
|
||||
- _MainTexClamp: 0
|
||||
- _MainTexFlowMode: 0
|
||||
- _MainTexHue: 0
|
||||
- _MainTexP: 0
|
||||
- _MainTexPolarDistortionPower: 0
|
||||
- _MainTexPolarDistortionUVScale: 1
|
||||
- _MainTexRotator: 0
|
||||
- _MainTexSaturation: 1
|
||||
- _MainTexUVMode: 0
|
||||
- _MainTexUspeed: 0
|
||||
- _MainTexVspeed: 0
|
||||
- _MaskPlusUsePro: 0
|
||||
- _MaskSwitch: 0
|
||||
- _MaskTexClamp: 0
|
||||
- _MaskTexFlowMode: 0
|
||||
- _MaskTexP: 0
|
||||
- _MaskTexPlusClamp: 0
|
||||
- _MaskTexPlusP: 0
|
||||
- _MaskTexPlusRotator: 0
|
||||
- _MaskTexPlusSwitch: 0
|
||||
- _MaskTexPlusUspeed: 0
|
||||
- _MaskTexPlusVspeed: 0
|
||||
- _MaskTexRotator: 0
|
||||
- _MaskTexUspeed: 0
|
||||
- _MaskTexVspeed: 0
|
||||
- _NoisePower: 0
|
||||
- _NoiseSwitch: 0
|
||||
- _NoiseTexP: 0
|
||||
- _NoiseTexUspeed: 0
|
||||
- _NoiseTexVspeed: 0
|
||||
- _OneMinusMask: 0
|
||||
- _ProMaskDir: 0
|
||||
- _ProMaskRange: 1
|
||||
- _ProMaskSwitch: 0
|
||||
- _SOFT_PARTICLES_ON: 1
|
||||
- _SoftParticle: 0
|
||||
- _UseLGTexColor: 1
|
||||
- _VertexMode: 0
|
||||
- _VertexPower: 0
|
||||
- _VertexSwitch: 0
|
||||
- _VertexTexRotator: 0
|
||||
- _VertexTexUspeed: 0
|
||||
- _VertexTexVspeed: 0
|
||||
- _ZTestMode: 4
|
||||
- _Zwrite: 0
|
||||
m_Colors:
|
||||
- _DissolveEdgeColor: {r: 1, g: 0.4109318, b: 0, a: 1}
|
||||
- _FresnelColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _FresnelSet: {r: 0, g: 1, b: 5, a: 0}
|
||||
- _LiuguangColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _LiuguangPolarScale: {r: 0.5, g: 0.5, b: 1, a: 1}
|
||||
- _LiuguangScreenTilingOffset: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _MainColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _MainTexPolarSets: {r: 0.5, g: 0.5, b: 1, a: 1}
|
||||
- _VertexTexDir: {r: 1, g: 1, b: 1, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f4361fd9fc829e940a7ce531f9fc157d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,48 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Soung_Effect_SingleTex
|
||||
m_Shader: {fileID: 4800000, guid: 10ce5935e5e56be489c1e00d790f59de, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendMode: 1
|
||||
- _CullingMode: 0
|
||||
- _DepthFade: 0.1
|
||||
- _EnableCustomBrightness: 0
|
||||
- _EnableHSV: 0
|
||||
- _EnableOutline: 0
|
||||
- _EnableSoftParticles: 0
|
||||
- _HueSwitch: 0
|
||||
- _RotatorVal: 0
|
||||
- _SaturationVa: 1
|
||||
- _SwitchP: 0
|
||||
- _TexScale: 1
|
||||
- _lineWidth: 0
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _lineColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d9425ac1761e6034b85224359a06f3ed
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,314 @@
|
||||
//修改于2025.6.13
|
||||
Shader "Soung/Effect/SingleTex"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[Header(MainTex)]_MainTex("贴图", 2D) = "white" {}
|
||||
[HDR]_BaseColor("颜色", Color) = (1,1,1,1)
|
||||
[Enum(UnityEngine.Rendering.CullMode)]_CullingMode("剔除模式", Float) = 0
|
||||
[Enum(AlphaBlend,10,Additive,1)]_BlendMode("混合模式", Float) = 1
|
||||
[Enum(R,0,A,1)]_SwitchP("贴图通道切换", Float) = 0
|
||||
[IntRange]_RotatorVal("贴图旋转", Range( 0 , 360)) = 0
|
||||
_TexScale("贴图缩放", Range( 0 , 5)) = 1
|
||||
[Toggle(_USE_CUSTOM_BRIGHTNESS)] _EnableCustomBrightness("Custom1.x控制亮度", Float) = 0
|
||||
|
||||
[Header(DepthFade)][Toggle(_SOFT_PARTICLES_ON)] _EnableSoftParticles("启用软粒子", Float) = 0
|
||||
_DepthFade("软粒子强度", Range( 0 , 1)) = 0.1
|
||||
|
||||
[Header(HSV)][Toggle(_USE_HSV_SHIFT)] _EnableHSV("启用HSV调整", Float) = 0
|
||||
_HueSwitch("色相变换", Range( 0 , 1)) = 0
|
||||
_SaturationVa("饱和度", Range( 0 , 1.5)) = 1
|
||||
|
||||
[Header(Outline)]
|
||||
[Toggle(_USE_OUTLINE)] _EnableOutline("启用描边", Float) = 0
|
||||
_lineWidth("描边宽度 (向内描边,仅对透明图生效)",Range(0,0.1)) = 0
|
||||
[HDR]_lineColor("描边颜色",Color) = (1,1,1,1)
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags
|
||||
{
|
||||
"RenderPipeline"="UniversalPipeline"
|
||||
"RenderType"="Transparent"
|
||||
"Queue"="Transparent"
|
||||
"UniversalMaterialType"="Unlit"
|
||||
"LightMode"="SRPDefaultUnlit"
|
||||
//"LightMode"="VFX"
|
||||
}
|
||||
|
||||
Cull [_CullingMode]
|
||||
AlphaToMask Off
|
||||
Blend SrcAlpha [_BlendMode], One OneMinusSrcAlpha
|
||||
ZWrite Off
|
||||
ZTest LEqual
|
||||
Offset 0 , 0
|
||||
ColorMask RGBA
|
||||
|
||||
HLSLINCLUDE
|
||||
#pragma target 3.5
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
|
||||
// 条件包含深度纹理
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl"
|
||||
#endif
|
||||
|
||||
|
||||
CBUFFER_START(UnityPerMaterial)
|
||||
float4 _MainTex_ST;
|
||||
float4 _BaseColor;
|
||||
float _BlendMode;
|
||||
float _CullingMode;
|
||||
float _HueSwitch;
|
||||
float _RotatorVal;
|
||||
float _TexScale;
|
||||
float _SaturationVa;
|
||||
float _SwitchP;
|
||||
float _lineWidth;
|
||||
float4 _lineColor;
|
||||
float _DepthFade;
|
||||
CBUFFER_END
|
||||
|
||||
TEXTURE2D(_MainTex);
|
||||
SAMPLER(sampler_MainTex);
|
||||
|
||||
#if defined(_USE_HSV_SHIFT)
|
||||
float3 HSVToRGB(float3 c)
|
||||
{
|
||||
float4 K = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
||||
float3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www);
|
||||
return c.z * lerp(K.xxx, saturate(p - K.xxx), c.y);
|
||||
}
|
||||
|
||||
float3 RGBToHSV(float3 c)
|
||||
{
|
||||
float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
||||
float4 p = lerp(float4(c.bg, K.wz), float4(c.gb, K.xy), step(c.b, c.g));
|
||||
float4 q = lerp(float4(p.xyw, c.r), float4(c.r, p.yzx), step(p.x, c.r));
|
||||
float d = q.x - min(q.w, q.y);
|
||||
float e = 1.0e-10;
|
||||
return float3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
||||
}
|
||||
#endif
|
||||
|
||||
//数据传入结构体
|
||||
struct a2v
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float4 ase_texcoord : TEXCOORD0;
|
||||
float4 ase_texcoord1 : TEXCOORD1; // 添加TEXCOORD1用于接收自定义数据流
|
||||
float4 ase_color : COLOR;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 clipPos : SV_POSITION;
|
||||
float4 ase_texcoord1 : TEXCOORD0;
|
||||
float4 ase_color : COLOR;
|
||||
float4 ase_texcoord2 : TEXCOORD1; // 传递自定义数据流
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
float4 scrPos : TEXCOORD3;
|
||||
#endif
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
ENDHLSL
|
||||
|
||||
Pass
|
||||
{
|
||||
Name "Forward"
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VERT
|
||||
#pragma fragment FRAG
|
||||
#pragma multi_compile_instancing
|
||||
|
||||
// 添加shader关键字变体
|
||||
#pragma shader_feature_local _SOFT_PARTICLES_ON
|
||||
#pragma shader_feature_local _USE_HSV_SHIFT
|
||||
#pragma shader_feature_local _USE_OUTLINE
|
||||
#pragma shader_feature_local _USE_CUSTOM_BRIGHTNESS
|
||||
|
||||
//顶点计算部分
|
||||
v2f VERT(a2v v)
|
||||
{
|
||||
v2f o = (v2f)0;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
|
||||
o.ase_texcoord1.xy = v.ase_texcoord.xy;
|
||||
o.ase_texcoord2 = v.ase_texcoord1; // 传递自定义顶点数据
|
||||
o.ase_color = v.ase_color;
|
||||
|
||||
//为未使用的数据通道填充值, 避免警告
|
||||
o.ase_texcoord1.zw = 0;
|
||||
|
||||
#ifdef ASE_ABSOLUTE_VERTEX_POS
|
||||
float3 defaultVertexValue = v.vertex.xyz;
|
||||
#else
|
||||
float3 defaultVertexValue = float3(0, 0, 0);
|
||||
#endif
|
||||
|
||||
float3 vertexValue = defaultVertexValue;
|
||||
|
||||
#ifdef ASE_ABSOLUTE_VERTEX_POS
|
||||
v.vertex.xyz = vertexValue;
|
||||
#else
|
||||
v.vertex.xyz += vertexValue;
|
||||
#endif
|
||||
|
||||
float3 positionWS = TransformObjectToWorld(v.vertex.xyz);
|
||||
float4 positionCS = TransformWorldToHClip(positionWS);
|
||||
o.clipPos = positionCS;
|
||||
|
||||
// 仅在启用软粒子时计算屏幕位置
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
o.scrPos = ComputeScreenPos(positionCS);
|
||||
#endif
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
float4 FRAG(v2f IN) : SV_Target
|
||||
{
|
||||
UNITY_SETUP_INSTANCE_ID(IN);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(IN);
|
||||
|
||||
// 缓存材质参数,减少寄存器压力
|
||||
float3 baseColorRGB = _BaseColor.rgb;
|
||||
float baseColorA = _BaseColor.a;
|
||||
float3 vertexColorRGB = IN.ase_color.rgb;
|
||||
float vertexColorA = IN.ase_color.a;
|
||||
|
||||
// 获取Custom1.x亮度控制值
|
||||
float customBrightness = 1.0;
|
||||
#if defined(_USE_CUSTOM_BRIGHTNESS)
|
||||
customBrightness = IN.ase_texcoord2.x;
|
||||
#endif
|
||||
|
||||
float2 uv_MainTex = IN.ase_texcoord1.xy * _MainTex_ST.xy + _MainTex_ST.zw;
|
||||
float2 finalUV;
|
||||
|
||||
// 仅当旋转值非0时才执行旋转计算
|
||||
if (abs(_RotatorVal) > 0.001)
|
||||
{
|
||||
float angle = (0.0 + (_RotatorVal - 0.0) * (6.28 - 0.0) / (360.0 - 0.0));
|
||||
float2x2 rotMatrix;
|
||||
sincos(angle, rotMatrix._21, rotMatrix._11);
|
||||
rotMatrix._12 = -rotMatrix._21;
|
||||
rotMatrix._22 = rotMatrix._11;
|
||||
float2 rotator51 = mul(uv_MainTex - float2(0.5, 0.5), rotMatrix) + float2(0.5, 0.5);
|
||||
finalUV = ((rotator51 * _TexScale) + -(_TexScale * 0.5) + 0.5);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 跳过旋转计算
|
||||
finalUV = ((uv_MainTex * _TexScale) + -(_TexScale * 0.5) + 0.5);
|
||||
}
|
||||
|
||||
float4 tex2DNode1 = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, finalUV);
|
||||
|
||||
// 提前优化 - 丢弃透明像素
|
||||
if (tex2DNode1.a <= 0.0)
|
||||
{
|
||||
discard;
|
||||
}
|
||||
|
||||
// 计算基础alpha
|
||||
float lerpResult5 = lerp(tex2DNode1.r, tex2DNode1.a, _SwitchP);
|
||||
float baseAlpha = lerpResult5 * baseColorA * vertexColorA;
|
||||
|
||||
// 透明度检查提前结束
|
||||
if (baseAlpha <= 0.001)
|
||||
{
|
||||
discard;
|
||||
}
|
||||
|
||||
// 优化描边计算,使用shader变体
|
||||
float outlineAlpha = 0.0;
|
||||
#if defined(_USE_OUTLINE)
|
||||
if (_lineWidth > 0.001)
|
||||
{
|
||||
float2 offset = _lineWidth;
|
||||
|
||||
// 四方向采样
|
||||
float4 up = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, finalUV + float2(0, offset.y));
|
||||
float4 down = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, finalUV - float2(0, offset.y));
|
||||
float4 left = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, finalUV - float2(offset.x, 0));
|
||||
float4 right = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, finalUV + float2(offset.x, 0));
|
||||
|
||||
// 优化描边计算
|
||||
outlineAlpha = max(max(max(
|
||||
saturate(tex2DNode1.a - up.a),
|
||||
saturate(tex2DNode1.a - down.a)),
|
||||
saturate(tex2DNode1.a - left.a)),
|
||||
saturate(tex2DNode1.a - right.a));
|
||||
}
|
||||
#endif
|
||||
|
||||
// 条件HSV转换
|
||||
float3 finalColor;
|
||||
#if defined(_USE_HSV_SHIFT)
|
||||
float3 hsvTorgb14 = RGBToHSV(tex2DNode1.rgb);
|
||||
finalColor = HSVToRGB(float3((_HueSwitch + hsvTorgb14.x), (hsvTorgb14.y * _SaturationVa), hsvTorgb14.z));
|
||||
#else
|
||||
finalColor = tex2DNode1.rgb;
|
||||
#endif
|
||||
|
||||
// 计算最终颜色
|
||||
float3 allColor = finalColor * baseColorRGB * vertexColorRGB;
|
||||
|
||||
// 应用亮度控制
|
||||
#if defined(_USE_CUSTOM_BRIGHTNESS)
|
||||
allColor *= customBrightness;
|
||||
#endif
|
||||
|
||||
float3 Color;
|
||||
|
||||
#if defined(_USE_OUTLINE)
|
||||
Color = lerp(allColor, _lineColor.rgb, outlineAlpha);
|
||||
#else
|
||||
Color = allColor;
|
||||
#endif
|
||||
|
||||
// 优化软粒子处理
|
||||
float softparticle = 1.0;
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
if (_DepthFade > 0.001)
|
||||
{
|
||||
float4 screenPos = IN.scrPos / IN.scrPos.w;
|
||||
float2 screenUV = screenPos.xy;
|
||||
screenPos.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? screenPos.z : screenPos.z * 0.5 + 0.5;
|
||||
float sceneDepth = SampleSceneDepth(screenUV);
|
||||
float linearEyeDepth = LinearEyeDepth(sceneDepth, _ZBufferParams);
|
||||
float linearParticleDepth = LinearEyeDepth(screenPos.z, _ZBufferParams);
|
||||
float depthDiff = linearEyeDepth - linearParticleDepth;
|
||||
softparticle = saturate(depthDiff / _DepthFade);
|
||||
}
|
||||
#endif
|
||||
|
||||
// 简化Alpha计算
|
||||
float outlineWeight = 1.0;
|
||||
#if defined(_USE_OUTLINE)
|
||||
outlineWeight = 1.0 - outlineAlpha + lerpResult5 * outlineAlpha;
|
||||
#endif
|
||||
|
||||
float Alpha = min(lerpResult5, outlineWeight) * baseColorA * vertexColorA * softparticle;
|
||||
|
||||
// 返回最终颜色和alpha(修复:不再将softparticle应用于颜色)
|
||||
float3 FinalColor = Color;
|
||||
return float4(FinalColor, saturate(Alpha));
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 10ce5935e5e56be489c1e00d790f59de
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,819 @@
|
||||
//2025.9.28 optimized by Soung
|
||||
Shader "Soung/Effect/FullFx"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[Header(Setting)][Enum(UnityEngine.Rendering.CullMode)]_CullingMode("剔除模式", Float) = 0
|
||||
[Enum(ON,1,OFF,0)]_Zwrite("深度写入", Float) = 0
|
||||
[Enum(Less or Equal,4,Always,8)]_ZTestMode("深度测试", Float) = 4
|
||||
[Enum(Additive,1,AlphaBlend,10)]_BlendMode("混合模式", Float) = 1
|
||||
|
||||
[Header(DepthFade)][KeywordEnum(ON,OFF)]_SOFT_PARTICLES_ON("软粒子开关", Float) = 1
|
||||
_SoftParticle("软粒子值", Range( 0 , 20)) = 0
|
||||
|
||||
[Header(MainTex)]_MainTex("主贴图", 2D) = "white" {}
|
||||
[Enum(R,0,A,1)]_MainTexP("主帖图通道", Float) = 0
|
||||
[HDR]_MainColor("主帖图颜色", Color) = (1,1,1,1)
|
||||
[IntRange]_MainTexRotator("主帖图旋转", Range( 0 , 360)) = 0
|
||||
_MainTexHue("主帖图色相变换", Range( 0 , 1)) = 0
|
||||
_MainTexSaturation("主帖图饱和度", Range( 0 , 1.5)) = 1
|
||||
[Enum(Material,0,Custom1xy,1)]_MainTexFlowMode("主帖图流动模式", Float) = 0
|
||||
[Enum(Repeat,0,Clamp,1)]_MainTexClamp("主帖图重铺模式", Float) = 0
|
||||
[Enum(Local,0,Polar,1,PolarDistortion,2)]_MainTexUVMode("主帖图UV模式", Float) = 0
|
||||
_MainTexPolarSets("主帖图Polar中心与缩放", Vector) = (0.5,0.5,1,1)
|
||||
_MainTexPolarDistortionPower("主帖图Polar扭曲强度", Float) = 0
|
||||
_MainTexPolarDistortionUVScale("主帖图Polar扭曲段数", Float) = 1
|
||||
_MainTexUspeed("主帖图U速率", Float) = 0
|
||||
_MainTexVspeed("主帖图V速率", Float) = 0
|
||||
|
||||
|
||||
[Header(NoiseTex)][Enum(OFF,0,ON,1)]_NoiseSwitch("扭曲开关", Float) = 0
|
||||
_NoiseTex("扭曲贴图", 2D) = "white" {}
|
||||
[Enum(R,0,A,1)]_NoiseTexP("扭曲贴图通道", Float) = 0
|
||||
_NoisePower("扭曲强度", Range( 0 , 1)) = 0
|
||||
_NoiseTexUspeed("扭曲U速率", Float) = 0
|
||||
_NoiseTexVspeed("扭曲V速率", Float) = 0
|
||||
|
||||
[Header(GamTex)][Enum(OFF,0,ON,1)]_GamTexSwitch("颜色叠加开关", Float) = 0
|
||||
_GamTex("颜色叠加贴图", 2D) = "white" {}
|
||||
[Enum(R,0,A,1)]_GamTexP("颜色叠加通道", Float) = 0
|
||||
[IntRange]_GamTexRotator("颜色叠加旋转", Range( 0 , 360)) = 0
|
||||
_GamTexDesaturate("颜色叠加去色", Range( 0 , 1)) = 1
|
||||
[Enum(Repeat,0,Clmap,1)]_GamTexClamp("颜色叠加重铺模式", Float) = 0
|
||||
[Enum(OFF,0,ON,1)]_GamTexFollowMainTex("颜色叠加跟随主贴图流动", Float) = 0
|
||||
_GamTexUspeed("颜色叠加U速率", Float) = 0
|
||||
_GamTexVspeed("颜色叠加V速率", Float) = 0
|
||||
[Enum(Notuse,0,Use,1)]_GamAlphaMode("颜色叠加Alpha模式", Float) = 0
|
||||
|
||||
[Header(ProgramMask)][Enum(ON,0,OFF,1)]_ProMaskSwitch("程序遮罩开关", Float) = 0
|
||||
[KeywordEnum(UP,DOWN,LEFT,RIGHT)] _ProMaskDir("程序遮罩方向", Float) = 0
|
||||
_ProMaskRange("程序遮罩范围", Range( 1 , 8)) = 1
|
||||
[Header(MaskTex)][Enum(OFF,0,ON,1)]_MaskSwitch("遮罩开关", Float) = 0
|
||||
|
||||
_MaskTex("遮罩贴图", 2D) = "white" {}
|
||||
[Enum(R,0,A,1)]_MaskTexP("遮罩贴图通道", Float) = 0
|
||||
[IntRange]_MaskTexRotator("遮罩贴图旋转", Range( 0 , 360)) = 0
|
||||
[Enum(OFF,0,ON,1)]_OneMinusMask("反相遮罩", Float) = 0
|
||||
[Enum(Repeat,0,Clamp,1)]_MaskTexClamp("遮罩贴图重铺模式", Float) = 0
|
||||
[Enum(Material,0,Custom2xy,1)]_MaskTexFlowMode("遮罩帖图流动模式", Float) = 0
|
||||
_MaskTexUspeed("遮罩U速度", Float) = 0
|
||||
_MaskTexVspeed("遮罩V速度", Float) = 0
|
||||
|
||||
[Header(MaskTexPlus)][Enum(OFF,0,ON,1)]_MaskTexPlusSwitch("额外遮罩开关", Float) = 0
|
||||
[Toggle]_MaskPlusUsePro("额外遮罩使用程序", Float) = 0
|
||||
_MaskTexPlus("额外遮罩", 2D) = "white" {}
|
||||
[Enum(R,0,A,1)]_MaskTexPlusP("额外遮罩通道", Float) = 0
|
||||
[IntRange]_MaskTexPlusRotator("额外遮罩旋转", Range( 0 , 360)) = 0
|
||||
[Enum(Repeat,0,Clamp,1)]_MaskTexPlusClamp("额外遮罩重铺模式", Float) = 0
|
||||
_MaskTexPlusUspeed("额外遮罩U速度", Float) = 0
|
||||
_MaskTexPlusVspeed("额外遮罩V速度", Float) = 0
|
||||
|
||||
[Header(Liuguang)][Enum(OFF,0,ON,1)]_LiuguangSwitch("流光开关", Float) = 0
|
||||
_LiuguangTex("流光贴图", 2D) = "black" {}
|
||||
[Enum(R,0,A,1)]_LiuguangTexP("流光纹理通道", Float) = 0
|
||||
[IntRange]_LiuguangTexRotator("流光纹理旋转", Range( 0 , 360)) = 0
|
||||
[Toggle]_UseLGTexColor("是否禁用流光自身颜色", Float) = 1
|
||||
[HDR]_LiuguangColor("流光颜色", Color) = (0,0,0,1)
|
||||
[KeywordEnum(Local,Polar,Screen)] _LiuguangTexUVmode("流光UV模式", Float) = 0
|
||||
_LiuguangPolarScale("流光Polar中心与缩放", Vector) = (0.5,0.5,1,1)
|
||||
_LiuguangScreenTilingOffset("流光Screen重铺与偏移", Vector) = (1,1,0,0)
|
||||
_LiuguangUSpeed("流光U速率", Float) = 0
|
||||
_LiuguangVSpeed("流光V速率", Float) = 0
|
||||
|
||||
[Header(DissolveTex)][Enum(OFF,0,ON,1)]_DissolveTexSwitch("溶解开关", Float) = 0
|
||||
_DissolveTex("溶解贴图", 2D) = "white" {}
|
||||
[Enum(R,0,A,1)]_DissolveTexP("溶解贴图通道", Float) = 0
|
||||
[IntRange]_DissolveTexRotator("溶解贴图旋转", Range( 0 , 360)) = 0
|
||||
_DissolveSmooth("溶解平滑度", Range( 0 , 1)) = 0
|
||||
_DissolvePower("溶解进度", Range( 0 , 2)) = 0.3787051
|
||||
[Enum(Material,0,Custom1z,1)]_DissolveMode("溶解控制模式", Float) = 0
|
||||
[Enum(Soft,0,Edge,1)]_DissolveEdgeSwitch("溶解边缘模式", Float) = 0
|
||||
[HDR]_DissolveEdgeColor("溶解边缘颜色", Color) = (1,0.4109318,0,1)
|
||||
[Enum(Mult,0,Add,1)]_DissolveColorMode("溶解颜色混合模式", Float) = 0
|
||||
_DissolveEdgeWide("溶解边缘宽度", Range( 0 , 1)) = 0.1420648
|
||||
_DissolveTexUspeed("溶解U速度", Float) = 0
|
||||
_DissolveTexVspeed("溶解V速度", Float) = 0
|
||||
|
||||
[Header(DissloveTexPath)][Enum(OFF,0,ON,1)]_DissolveTexPlusSwitch("定向溶解开关", Float) = 0
|
||||
[Toggle]_DissolveTexPlusUsePro("定向溶解使用程序遮罩", Float) = 0
|
||||
_DissolveTexPlus("定向溶解贴图", 2D) = "white" {}
|
||||
[Enum(R,0,A,1)]_DissolveTexPlusP("定向溶解通道", Float) = 0
|
||||
[IntRange]_DissolveTexPlusRotator("定向溶解旋转", Range( 0 , 360)) = 0
|
||||
_DissolveTexPlusPower("定向溶解强度", Range( 1 , 7)) = 1
|
||||
[Enum(Material,0,Custome2xy,1)]_DissolveTexPlusFlowMode("定向溶解流动模式", Float) = 0
|
||||
[Enum(Repeat,0,Clmap,1)]_DissolveTexPlusClamp("定向溶解重铺模式", Float) = 0
|
||||
_DissolveTexPlusUspeed("定向溶解U速度", Float) = 0
|
||||
_DissolveTexPlusVspeed("定向溶解V速度", Float) = 0
|
||||
|
||||
[Header(VertexTex)][Enum(OFF,0,ON,1)]_VertexSwitch("顶点偏移开关", Float) = 0
|
||||
_VertexTex("顶点偏移贴图", 2D) = "white" {}
|
||||
[IntRange]_VertexTexRotator("顶点偏移旋转", Range( 0 , 360)) = 0
|
||||
[Enum(Material,0,Custom1w,1)]_VertexMode("顶点偏移模式", Float) = 0
|
||||
_VertexPower("顶点偏移强度", Float) = 0
|
||||
_VertexTexDir("顶点偏移轴向", Vector) = (1,1,1,0)
|
||||
_VertexTexUspeed("顶点偏移U速率", Float) = 0
|
||||
_VertexTexVspeed("顶点偏移V速率", Float) = 0
|
||||
|
||||
[Header(Fresnel)][Enum(OFF,0,ON,1)]_FresnelSwitch("菲涅尔开关", Float) = 0
|
||||
[HDR]_FresnelColor("菲涅尔颜色", Color) = (1,1,1,1)
|
||||
[Enum(Fresnel,0,Bokeh,1)]_FresnelMode("菲涅尔模式", Float) = 0
|
||||
[Enum(Mult,0,Add,1)]_FresnelColorMode("菲涅尔颜色模式", Float) = 0
|
||||
[Enum(Notuse,0,Use,1)]_FresnelAlphaMode("菲涅尔Alpha模式", Float) = 0
|
||||
_FresnelSet("菲涅尔强度/边缘/范围", Vector) = (0,1,5,0)
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
LOD 0
|
||||
|
||||
Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" "UniversalMaterialType"="Unlit" }
|
||||
|
||||
Cull [_CullingMode]
|
||||
AlphaToMask Off
|
||||
|
||||
HLSLINCLUDE
|
||||
#pragma target 4.5
|
||||
#pragma prefer_hlslcc gles
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
|
||||
ENDHLSL
|
||||
|
||||
Pass
|
||||
{
|
||||
|
||||
Name "Forward"
|
||||
Tags { "LightMode"="SRPDefaultUnlit" }
|
||||
|
||||
Blend SrcAlpha [_BlendMode], One OneMinusSrcAlpha
|
||||
ZWrite [_Zwrite]
|
||||
ZTest [_ZTestMode]
|
||||
Offset 0 , 0
|
||||
ColorMask RGBA
|
||||
|
||||
HLSLPROGRAM
|
||||
|
||||
#pragma multi_compile_instancing
|
||||
#pragma instancing_options renderinglayer
|
||||
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
|
||||
//#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
|
||||
//#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
|
||||
|
||||
//#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
|
||||
|
||||
#define ASE_NEEDS_VERT_NORMAL
|
||||
#define ASE_NEEDS_FRAG_WORLD_VIEW_DIR
|
||||
#define ASE_NEEDS_FRAG_COLOR
|
||||
#define ASE_NEEDS_FRAG_SCREEN_POSITION
|
||||
#pragma shader_feature_local _PROMASKDIR_UP _PROMASKDIR_DOWN _PROMASKDIR_LEFT _PROMASKDIR_RIGHT
|
||||
#pragma shader_feature_local _LIUGUANGTEXUVMODE_LOCAL _LIUGUANGTEXUVMODE_POLAR _LIUGUANGTEXUVMODE_SCREEN
|
||||
|
||||
#pragma shader_feature_local _SOFT_PARTICLES_ON _SOFT_PARTICLES_OFF
|
||||
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl"
|
||||
#endif
|
||||
|
||||
struct Attributes
|
||||
{
|
||||
float4 positionOS : POSITION; //顶点位置
|
||||
float3 normalOS : NORMAL; //顶点法向
|
||||
float4 texcoord : TEXCOORD0; //UV0
|
||||
float4 texcoord1 : TEXCOORD1; //UV1 (Custom1.xyzw)
|
||||
float4 texcoord2 : TEXCOORD2; //UV2 (Custom2.xy)
|
||||
float4 ase_color : COLOR; //顶点颜色
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID //GPU Instance ID
|
||||
};
|
||||
|
||||
struct PackedVaryings
|
||||
{
|
||||
float4 positionCS : SV_POSITION; // 裁剪空间位置
|
||||
float4 clipPosV : TEXCOORD0; // 裁剪位置
|
||||
float3 positionWS : TEXCOORD1; // 世界空间位置
|
||||
float4 ase_texcoord6 : TEXCOORD2; // 自定义数据
|
||||
float4 ase_texcoord7 : TEXCOORD3; // 自定义数据 (传递Custom1.xyzw)
|
||||
float4 ase_color : COLOR; // 顶点颜色
|
||||
float4 ase_texcoord8 : TEXCOORD4; // 自定义数据 (传递Custom2.xy)
|
||||
float4 ase_texcoord9 : TEXCOORD5; // 自定义数据
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID // 实例ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO // 立体渲染信息
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
float4 scrPos : TEXCOORD6;
|
||||
#endif
|
||||
};
|
||||
|
||||
CBUFFER_START(UnityPerMaterial)
|
||||
// === 所有float4属性(已经是16字节对齐)===
|
||||
float4 _MainTex_ST;
|
||||
float4 _MainColor;
|
||||
float4 _MainTexPolarSets;
|
||||
float4 _NoiseTex_ST;
|
||||
float4 _GamTex_ST;
|
||||
float4 _MaskTex_ST;
|
||||
float4 _MaskTexPlus_ST;
|
||||
float4 _LiuguangTex_ST;
|
||||
float4 _LiuguangColor;
|
||||
float4 _LiuguangPolarScale;
|
||||
float4 _LiuguangScreenTilingOffset;
|
||||
float4 _DissolveTex_ST;
|
||||
float4 _DissolveEdgeColor;
|
||||
float4 _DissolveTexPlus_ST;
|
||||
float4 _VertexTex_ST;
|
||||
float4 _VertexTexDir;
|
||||
float4 _FresnelColor;
|
||||
float4 _FresnelSet;
|
||||
|
||||
// === 所有float属性重新按4个一组排列 ===
|
||||
// 组1: 基础设置
|
||||
float _CullingMode;
|
||||
float _Zwrite;
|
||||
float _ZTestMode;
|
||||
float _BlendMode;
|
||||
|
||||
// 组2: 主纹理
|
||||
float _MainTexP;
|
||||
float _MainTexRotator;
|
||||
float _MainTexHue;
|
||||
float _MainTexSaturation;
|
||||
|
||||
// 组3: 主纹理控制
|
||||
float _MainTexFlowMode;
|
||||
float _MainTexClamp;
|
||||
float _MainTexUVMode;
|
||||
float _MainTexUspeed;
|
||||
|
||||
// 组4: 主纹理速度和扭曲
|
||||
float _MainTexVspeed;
|
||||
float _MainTexPolarDistortionPower;
|
||||
float _MainTexPolarDistortionUVScale;
|
||||
float _SoftParticle;
|
||||
|
||||
// 组5: 噪声
|
||||
float _NoiseSwitch;
|
||||
float _NoisePower;
|
||||
float _NoiseTexP;
|
||||
float _NoiseTexUspeed;
|
||||
|
||||
// 组6: 噪声和颜色叠加
|
||||
float _NoiseTexVspeed;
|
||||
float _GamTexSwitch;
|
||||
float _GamTexP;
|
||||
float _GamTexRotator;
|
||||
|
||||
// 组7: 颜色叠加
|
||||
float _GamTexDesaturate;
|
||||
float _GamTexClamp;
|
||||
float _GamTexFollowMainTex;
|
||||
float _GamTexUspeed;
|
||||
|
||||
// 组8: 颜色叠加和遮罩
|
||||
float _GamTexVspeed;
|
||||
float _GamAlphaMode;
|
||||
float _MaskSwitch;
|
||||
float _MaskTexP;
|
||||
|
||||
// 组9: 遮罩
|
||||
float _MaskTexRotator;
|
||||
float _OneMinusMask;
|
||||
float _MaskTexClamp;
|
||||
float _MaskTexFlowMode;
|
||||
|
||||
// 组10: 遮罩速度
|
||||
float _MaskTexUspeed;
|
||||
float _MaskTexVspeed;
|
||||
float _MaskTexPlusSwitch;
|
||||
float _MaskPlusUsePro;
|
||||
|
||||
// 组11: 额外遮罩
|
||||
float _MaskTexPlusP;
|
||||
float _MaskTexPlusClamp;
|
||||
float _MaskTexPlusRotator;
|
||||
float _MaskTexPlusUspeed;
|
||||
|
||||
// 组12: 额外遮罩和程序遮罩
|
||||
float _MaskTexPlusVspeed;
|
||||
float _ProMaskSwitch;
|
||||
float _ProMaskRange;
|
||||
float _LiuguangSwitch;
|
||||
|
||||
// 组13: 流光
|
||||
float _LiuguangTexP;
|
||||
float _LiuguangTexRotator;
|
||||
float _UseLGTexColor;
|
||||
float _LiuguangUSpeed;
|
||||
|
||||
// 组14: 流光速度
|
||||
float _LiuguangVSpeed;
|
||||
float _DissolveTexSwitch;
|
||||
float _DissolveTexP;
|
||||
float _DissolveTexRotator;
|
||||
|
||||
// 组15: 溶解
|
||||
float _DissolveSmooth;
|
||||
float _DissolveMode;
|
||||
float _DissolvePower;
|
||||
float _DissolveEdgeSwitch;
|
||||
|
||||
// 组16: 溶解边缘
|
||||
float _DissolveEdgeWide;
|
||||
float _DissolveTexUspeed;
|
||||
float _DissolveTexVspeed;
|
||||
float _DissolveColorMode;
|
||||
|
||||
// 组17: 定向溶解
|
||||
float _DissolveTexPlusSwitch;
|
||||
float _DissolveTexPlusUsePro;
|
||||
float _DissolveTexPlusP;
|
||||
float _DissolveTexPlusRotator;
|
||||
|
||||
// 组18: 定向溶解控制
|
||||
float _DissolveTexPlusPower;
|
||||
float _DissolveTexPlusFlowMode;
|
||||
float _DissolveTexPlusClamp;
|
||||
float _DissolveTexPlusUspeed;
|
||||
|
||||
// 组19: 顶点偏移
|
||||
float _DissolveTexPlusVspeed;
|
||||
float _VertexSwitch;
|
||||
float _VertexTexRotator;
|
||||
float _VertexMode;
|
||||
|
||||
// 组20: 顶点偏移速度
|
||||
float _VertexPower;
|
||||
float _VertexTexUspeed;
|
||||
float _VertexTexVspeed;
|
||||
float _FresnelSwitch;
|
||||
|
||||
// 组21: 菲涅尔(最后一组,正好4个)
|
||||
float _FresnelColorMode;
|
||||
float _FresnelAlphaMode;
|
||||
float _FresnelMode;
|
||||
float _padding1; // 如果需要,添加padding确保对齐
|
||||
CBUFFER_END
|
||||
|
||||
sampler2D _VertexTex;
|
||||
sampler2D _MainTex;
|
||||
sampler2D _NoiseTex;
|
||||
sampler2D _GamTex;
|
||||
sampler2D _DissolveTex;
|
||||
sampler2D _DissolveTexPlus;
|
||||
sampler2D _LiuguangTex;
|
||||
sampler2D _MaskTex;
|
||||
sampler2D _MaskTexPlus;
|
||||
|
||||
|
||||
float3 HSVToRGB( float3 c )
|
||||
{
|
||||
float4 K = float4( 1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0 );
|
||||
float3 p = abs( frac( c.xxx + K.xyz ) * 6.0 - K.www );
|
||||
return c.z * lerp( K.xxx, saturate( p - K.xxx ), c.y );
|
||||
}
|
||||
|
||||
float3 RGBToHSV(float3 c)
|
||||
{
|
||||
float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
||||
float4 p = lerp( float4( c.bg, K.wz ), float4( c.gb, K.xy ), step( c.b, c.g ) );
|
||||
float4 q = lerp( float4( p.xyw, c.r ), float4( c.r, p.yzx ), step( p.x, c.r ) );
|
||||
float d = q.x - min( q.w, q.y );
|
||||
float e = 1.0e-10;
|
||||
return float3( abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
||||
}
|
||||
inline float4 ASE_ComputeGrabScreenPos( float4 pos )
|
||||
{
|
||||
#if UNITY_UV_STARTS_AT_TOP
|
||||
float scale = -1.0;
|
||||
#else
|
||||
float scale = 1.0;
|
||||
#endif
|
||||
float4 o = pos;
|
||||
o.y = pos.w * 0.5f;
|
||||
o.y = ( pos.y - o.y ) * _ProjectionParams.x * scale + o.y;
|
||||
return o;
|
||||
}
|
||||
|
||||
|
||||
PackedVaryings VertexFunction( Attributes input )
|
||||
{
|
||||
PackedVaryings output = (PackedVaryings)0;
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||
|
||||
float ValueZero = 0.0;
|
||||
float4 temp_cast_0 = (ValueZero).xxxx;
|
||||
float4 texCoord8 = input.texcoord1;
|
||||
texCoord8.xy = input.texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
|
||||
float custom1w12 = texCoord8.w;
|
||||
float lerpResult139 = lerp( _VertexPower , custom1w12 , _VertexMode);
|
||||
float2 appendResult135 = (float2(_VertexTexUspeed , _VertexTexVspeed));
|
||||
float2 uv_VertexTex = input.texcoord.xy * _VertexTex_ST.xy + _VertexTex_ST.zw;
|
||||
float2 panner137 = ( 1.0 * _Time.y * appendResult135 + uv_VertexTex);
|
||||
float ValueHalfCircle = 180.0;
|
||||
float cos394 = cos( ( ( _VertexTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float sin394 = sin( ( ( _VertexTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float2 rotator394 = mul( panner137 - float2( 0.5,0.5 ) , float2x2( cos394 , -sin394 , sin394 , cos394 )) + float2( 0.5,0.5 );
|
||||
float4 lerpResult154 = lerp( temp_cast_0 , ( lerpResult139 * float4( input.normalOS , 0.0 ) * tex2Dlod( _VertexTex, float4( rotator394, 0, 0.0) ).r * _VertexTexDir ) , _VertexSwitch);
|
||||
float4 VertexTexOffset157 = lerpResult154;
|
||||
|
||||
float3 ase_normalWS = TransformObjectToWorldNormal( input.normalOS );
|
||||
output.ase_texcoord9.xyz = ase_normalWS;
|
||||
|
||||
output.ase_texcoord6.xy = input.texcoord.xy;
|
||||
output.ase_texcoord7 = input.texcoord1;
|
||||
output.ase_color = input.ase_color;
|
||||
output.ase_texcoord8 = input.texcoord2;
|
||||
|
||||
output.ase_texcoord6.zw = 0;
|
||||
output.ase_texcoord9.w = 0;
|
||||
|
||||
#ifdef ASE_ABSOLUTE_VERTEX_POS
|
||||
float3 defaultVertexValue = input.positionOS.xyz;
|
||||
#else
|
||||
float3 defaultVertexValue = float3(0, 0, 0);
|
||||
#endif
|
||||
|
||||
float3 vertexValue = VertexTexOffset157.xyz;
|
||||
|
||||
#ifdef ASE_ABSOLUTE_VERTEX_POS
|
||||
input.positionOS.xyz = vertexValue;
|
||||
#else
|
||||
input.positionOS.xyz += vertexValue;
|
||||
#endif
|
||||
|
||||
input.normalOS = input.normalOS;
|
||||
|
||||
VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
|
||||
|
||||
output.positionCS = vertexInput.positionCS;
|
||||
output.clipPosV = vertexInput.positionCS;
|
||||
output.positionWS = vertexInput.positionWS;
|
||||
|
||||
// 仅在启用软粒子时计算屏幕位置
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
output.scrPos = ComputeScreenPos(vertexInput.positionCS);
|
||||
#endif
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
PackedVaryings vert( Attributes input )
|
||||
{
|
||||
return VertexFunction( input );
|
||||
}
|
||||
|
||||
half4 frag ( PackedVaryings input
|
||||
#ifdef ASE_DEPTH_WRITE_ON
|
||||
,out float outputDepth : ASE_SV_DEPTH
|
||||
#endif
|
||||
) : SV_Target
|
||||
{
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
|
||||
|
||||
float3 WorldPosition = input.positionWS;
|
||||
float3 WorldViewDirection = GetWorldSpaceNormalizeViewDir( WorldPosition );
|
||||
float4 ShadowCoords = float4( 0, 0, 0, 0 );
|
||||
float4 ClipPos = input.clipPosV;
|
||||
float4 ScreenPos = ComputeScreenPos( input.clipPosV );
|
||||
|
||||
float2 NormalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.positionCS);
|
||||
|
||||
|
||||
float ValueZero = 0.0;
|
||||
float2 appendResult54 = (float2(_NoiseTexUspeed , _NoiseTexVspeed));
|
||||
float2 uv_NoiseTex = input.ase_texcoord6.xy * _NoiseTex_ST.xy + _NoiseTex_ST.zw;
|
||||
float2 panner50 = ( 1.0 * _Time.y * appendResult54 + uv_NoiseTex);
|
||||
float4 tex2DNode17 = tex2D( _NoiseTex, panner50 );
|
||||
float lerpResult63 = lerp( tex2DNode17.r , tex2DNode17.a , _NoiseTexP);
|
||||
float lerpResult60 = lerp( ValueZero , ( (-0.5 + (lerpResult63 - 0.0) * (0.5 - -0.5) / (1.0 - 0.0)) * _NoisePower ) , _NoiseSwitch);
|
||||
float2 appendResult34 = (float2(_MainTexUspeed , _MainTexVspeed));
|
||||
float2 uv_MainTex = input.ase_texcoord6.xy * _MainTex_ST.xy + _MainTex_ST.zw;
|
||||
|
||||
// 极坐标UV实现(标准模式)
|
||||
float2 appendResult24 = (float2(_MainTexPolarSets.x , _MainTexPolarSets.y));
|
||||
float2 temp_output_34_0_g3 = ( uv_MainTex - appendResult24 );
|
||||
float2 break39_g3 = temp_output_34_0_g3;
|
||||
float2 appendResult50_g3 = (float2(( _MainTexPolarSets.z * ( length( temp_output_34_0_g3 ) * 2.0 ) ) , ( ( atan2( break39_g3.x , break39_g3.y ) * ( 1.0 / TWO_PI ) ) * _MainTexPolarSets.w )));
|
||||
|
||||
// 极坐标扭曲模式实现
|
||||
// 1. 首先重映射UV坐标到[-1,1]并计算距离
|
||||
float2 remappedUV = uv_MainTex * 2.0 - 1.0;
|
||||
float remappedDist = length(remappedUV);
|
||||
|
||||
// 2. 计算基于距离的旋转角度
|
||||
float rotAngle = ((1.0 - remappedDist) * 2.0 * _MainTexPolarDistortionPower) * PI;
|
||||
|
||||
// 3. 应用旋转变换
|
||||
float cosRot = cos(rotAngle);
|
||||
float sinRot = sin(rotAngle);
|
||||
float2 rotatedUV = mul(uv_MainTex - float2(0.5, 0.5), float2x2(cosRot, -sinRot, sinRot, cosRot)) + float2(0.5, 0.5);
|
||||
|
||||
// 4. 重映射到[-1,1]为极坐标计算做准备
|
||||
float2 polarDistortionUV = rotatedUV * 2.0 - 1.0;
|
||||
|
||||
// 5. 计算距离和角度
|
||||
float polarR = pow(length(polarDistortionUV), _MainTexPolarDistortionUVScale);
|
||||
float polarTheta = (atan2(polarDistortionUV.y, polarDistortionUV.x) / (2.0 * PI)) + 0.5;
|
||||
|
||||
// 6. 组装成最终的极坐标UV
|
||||
float2 polarDistortionResult = float2(polarR, polarTheta);
|
||||
|
||||
// 根据模式选择UV变换方式
|
||||
float2 finalUV = uv_MainTex; // 默认使用原始UV
|
||||
if (_MainTexUVMode < 0.5) {
|
||||
finalUV = uv_MainTex; // Local模式
|
||||
}
|
||||
else if (_MainTexUVMode < 1.5) {
|
||||
finalUV = appendResult50_g3; // 标准Polar模式
|
||||
}
|
||||
else {
|
||||
finalUV = polarDistortionResult; // PolarDistortion模式
|
||||
}
|
||||
|
||||
float2 lerpResult27 = finalUV;
|
||||
|
||||
float2 panner35 = ( 1.0 * _Time.y * appendResult34 + lerpResult27);
|
||||
float4 texCoord8 = input.ase_texcoord7;
|
||||
texCoord8.xy = input.ase_texcoord7.xy * float2( 1,1 ) + float2( 0,0 );
|
||||
float custom1x9 = texCoord8.x;
|
||||
float custom1y10 = texCoord8.y;
|
||||
float2 appendResult31 = (float2(custom1x9 , custom1y10));
|
||||
float2 lerpResult443 = lerp( panner35 , ( lerpResult27 + appendResult31 ) , _MainTexFlowMode);
|
||||
float ValueHalfCircle = 180.0;
|
||||
float cos42 = cos( ( ( _MainTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float sin42 = sin( ( ( _MainTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float2 rotator42 = mul( ( lerpResult60 + lerpResult443 ) - float2( 0.5,0.5 ) , float2x2( cos42 , -sin42 , sin42 , cos42 )) + float2( 0.5,0.5 );
|
||||
float2 lerpResult40 = lerp( rotator42 , saturate( rotator42 ) , _MainTexClamp);
|
||||
float4 tex2DNode15 = tex2D( _MainTex, lerpResult40 );
|
||||
float3 hsvTorgb107 = RGBToHSV( tex2DNode15.rgb );
|
||||
float3 hsvTorgb106 = HSVToRGB( float3(( _MainTexHue + hsvTorgb107.x ),( hsvTorgb107.y * _MainTexSaturation ),hsvTorgb107.z) );
|
||||
float4 MainTexColor113 = ( _MainColor * float4( hsvTorgb106 , 0.0 ) );
|
||||
float Toggle168 = 1.0;
|
||||
float3 temp_cast_2 = (Toggle168).xxx;
|
||||
float2 appendResult82 = (float2(_GamTexUspeed , _GamTexVspeed));
|
||||
float2 uv_GamTex = input.ase_texcoord6.xy * _GamTex_ST.xy + _GamTex_ST.zw;
|
||||
float2 panner85 = ( 1.0 * _Time.y * appendResult82 + uv_GamTex);
|
||||
float2 temp_cast_3 = (ValueZero).xx;
|
||||
float2 MainTexUV120 = lerpResult443;
|
||||
float2 lerpResult78 = lerp( temp_cast_3 , MainTexUV120 , _GamTexFollowMainTex);
|
||||
float cos102 = cos( ( ( _GamTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float sin102 = sin( ( ( _GamTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float2 rotator102 = mul( ( panner85 + lerpResult78 ) - float2( 0.5,0.5 ) , float2x2( cos102 , -sin102 , sin102 , cos102 )) + float2( 0.5,0.5 );
|
||||
float2 lerpResult89 = lerp( rotator102 , saturate( rotator102 ) , _GamTexClamp);
|
||||
|
||||
//优化颜色叠加采样条件, 避免不必要的采样
|
||||
float4 tex2DNode101 = float4(0,0,0,0);
|
||||
if (_GamTexSwitch > 0.01)
|
||||
{
|
||||
tex2DNode101 = tex2D( _GamTex, ( lerpResult60 + lerpResult89 ) );
|
||||
}
|
||||
|
||||
float3 desaturateInitialColor91 = tex2DNode101.rgb;
|
||||
float desaturateDot91 = dot( desaturateInitialColor91, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar91 = lerp( desaturateInitialColor91, desaturateDot91.xxx, _GamTexDesaturate );
|
||||
float3 appendResult92 = (float3(desaturateVar91));
|
||||
float3 lerpResult352 = lerp( temp_cast_2 , appendResult92 , _GamTexSwitch);
|
||||
float3 GamColor103 = lerpResult352;
|
||||
float3 temp_cast_6 = (Toggle168).xxx;
|
||||
float custom1z11 = texCoord8.z;
|
||||
float lerpResult330 = lerp( _DissolvePower , custom1z11 , _DissolveMode);
|
||||
float DissolveValue334 = lerpResult330;
|
||||
float2 appendResult323 = (float2(_DissolveTexUspeed , _DissolveTexVspeed));
|
||||
float2 uv_DissolveTex = input.ase_texcoord6.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;
|
||||
float2 panner317 = ( 1.0 * _Time.y * appendResult323 + uv_DissolveTex);
|
||||
float cos328 = cos( ( ( _DissolveTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float sin328 = sin( ( ( _DissolveTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float2 rotator328 = mul( panner317 - float2( 0.5,0.5 ) , float2x2( cos328 , -sin328 , sin328 , cos328 )) + float2( 0.5,0.5 );
|
||||
|
||||
//优化溶解采样条件, 避免不必要的采样
|
||||
float4 tex2DNode302 = float4(0,0,0,0);
|
||||
if (_DissolveTexSwitch > 0.01)
|
||||
{
|
||||
tex2DNode302 = tex2D( _DissolveTex, rotator328 );
|
||||
}
|
||||
|
||||
float lerpResult276 = lerp( tex2DNode302.r , tex2DNode302.a , _DissolveTexP);
|
||||
float2 appendResult263 = (float2(_DissolveTexPlusUspeed , _DissolveTexPlusVspeed));
|
||||
float4 texCoord384 = input.ase_texcoord8;
|
||||
texCoord384.xy = input.ase_texcoord8.xy * float2( 1,1 ) + float2( 0,0 );
|
||||
float custom2x385 = texCoord384.x;
|
||||
float custom2y386 = texCoord384.y;
|
||||
float2 appendResult264 = (float2(custom2x385 , custom2y386));
|
||||
float2 lerpResult265 = lerp( appendResult263 , ( appendResult263 + appendResult264 ) , _DissolveTexPlusFlowMode);
|
||||
float2 uv_DissolveTexPlus = input.ase_texcoord6.xy * _DissolveTexPlus_ST.xy + _DissolveTexPlus_ST.zw;
|
||||
float2 panner267 = ( 1.0 * _Time.y * lerpResult265 + uv_DissolveTexPlus);
|
||||
float cos316 = cos( ( ( _DissolveTexPlusRotator * PI ) / ValueHalfCircle ) );
|
||||
float sin316 = sin( ( ( _DissolveTexPlusRotator * PI ) / ValueHalfCircle ) );
|
||||
float2 rotator316 = mul( panner267 - float2( 0.5,0.5 ) , float2x2( cos316 , -sin316 , sin316 , cos316 )) + float2( 0.5,0.5 );
|
||||
float2 lerpResult272 = lerp( rotator316 , saturate( rotator316 ) , _DissolveTexPlusClamp);
|
||||
|
||||
|
||||
//优化定向溶解采样条件, 避免不必要的采样
|
||||
float4 tex2DNode303 = float4(0,0,0,0);
|
||||
if (_DissolveTexPlusSwitch > 0.01)
|
||||
{
|
||||
tex2DNode303 = tex2D( _DissolveTexPlus, lerpResult272 );
|
||||
}
|
||||
|
||||
float lerpResult275 = lerp( tex2DNode303.r , tex2DNode303.a , _DissolveTexPlusP);
|
||||
float2 texCoord406 = input.ase_texcoord6.xy * float2( 1,1 ) + float2( 0,0 );
|
||||
#if defined( _PROMASKDIR_UP )
|
||||
float staticSwitch425 = ( 1.0 - texCoord406.y );
|
||||
#elif defined( _PROMASKDIR_DOWN )
|
||||
float staticSwitch425 = texCoord406.y;
|
||||
#elif defined( _PROMASKDIR_LEFT )
|
||||
float staticSwitch425 = texCoord406.x;
|
||||
#elif defined( _PROMASKDIR_RIGHT )
|
||||
float staticSwitch425 = ( 1.0 - texCoord406.x );
|
||||
#else
|
||||
float staticSwitch425 = ( 1.0 - texCoord406.y );
|
||||
#endif
|
||||
float smoothstepResult409 = smoothstep( 0.0 , _ProMaskRange , staticSwitch425);
|
||||
float lerpResult438 = lerp( saturate( ( smoothstepResult409 * ( _ProMaskRange / 0.4 ) ) ) , ValueZero , _ProMaskSwitch);
|
||||
float ProMask431 = lerpResult438;
|
||||
float lerpResult432 = lerp( lerpResult275 , ProMask431 , _DissolveTexPlusUsePro);
|
||||
float lerpResult278 = lerp( lerpResult276 , lerpResult432 , _DissolveTexPlusSwitch);
|
||||
float temp_output_283_0 = saturate( ( ( lerpResult278 + ( lerpResult276 / _DissolveTexPlusPower ) ) / 2.0 ) );
|
||||
float smoothstepResult286 = smoothstep( ( DissolveValue334 - _DissolveSmooth ) , DissolveValue334 , temp_output_283_0);
|
||||
float4 temp_cast_7 = (smoothstepResult286).xxxx;
|
||||
|
||||
float4 dissolvealphaEDGE = ( _DissolveEdgeColor * ( step( ( DissolveValue334 - _DissolveEdgeWide ) , temp_output_283_0 ) - step( DissolveValue334 , temp_output_283_0 ) ) );
|
||||
float4 lerpResult299 = lerp( temp_cast_7 , ( smoothstepResult286 + dissolvealphaEDGE), _DissolveEdgeSwitch);
|
||||
|
||||
float3 appendResult301 = (float3(lerpResult299.rgb));
|
||||
float3 lerpResult356 = lerp( temp_cast_6 , appendResult301 , _DissolveTexSwitch);
|
||||
float3 DissolveColor304 = lerpResult356;
|
||||
|
||||
//float4 temp_output_338_0 = ( MainTexColor113 * float4( GamColor103 , 0.0 ) * input.ase_color * float4( DissolveColor304 , 0.0 ) );
|
||||
|
||||
float4 temp_cast_10 = (Toggle168).xxxx;
|
||||
float3 ase_normalWS = input.ase_texcoord9.xyz;
|
||||
float fresnelNdotV124 = dot( ase_normalWS, WorldViewDirection );
|
||||
float fresnelNode124 = ( _FresnelSet.x + _FresnelSet.y * pow( abs(1.0 - fresnelNdotV124), _FresnelSet.z ) );
|
||||
float temp_output_126_0 = saturate( fresnelNode124 );
|
||||
float lerpResult127 = lerp( temp_output_126_0 , ( 1.0 - temp_output_126_0 ) , _FresnelMode);
|
||||
float4 lerpResult245 = lerp( temp_cast_10 , ( _FresnelColor * lerpResult127 ) , _FresnelSwitch);
|
||||
float4 FresnelColor132 = lerpResult245;
|
||||
|
||||
float4 baseColor = ( MainTexColor113 * float4( GamColor103 , 0.0 ) * input.ase_color );
|
||||
float4 dissolveBlendedColor = lerp(
|
||||
( baseColor * float4( DissolveColor304 , 0.0 ) ), // 乘法混合
|
||||
( baseColor + dissolvealphaEDGE), // 加法混合
|
||||
_DissolveColorMode
|
||||
);
|
||||
float4 temp_output_338_0 = dissolveBlendedColor;
|
||||
|
||||
float4 lerpResult347 = lerp( ( temp_output_338_0 * FresnelColor132 ) , ( temp_output_338_0 + FresnelColor132 ) , _FresnelColorMode);
|
||||
float4 temp_cast_13 = (ValueZero).xxxx;
|
||||
float2 appendResult210 = (float2(_LiuguangUSpeed , _LiuguangVSpeed));
|
||||
float2 uv_LiuguangTex = input.ase_texcoord6.xy * _LiuguangTex_ST.xy + _LiuguangTex_ST.zw;
|
||||
float cos240 = cos( ( ( _LiuguangTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float sin240 = sin( ( ( _LiuguangTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float2 rotator240 = mul( uv_LiuguangTex - float2( 0.5,0.5 ) , float2x2( cos240 , -sin240 , sin240 , cos240 )) + float2( 0.5,0.5 );
|
||||
float2 appendResult227 = (float2(_LiuguangPolarScale.x , _LiuguangPolarScale.y));
|
||||
float2 temp_output_34_0_g4 = ( uv_LiuguangTex - appendResult227 );
|
||||
float2 break39_g4 = temp_output_34_0_g4;
|
||||
float2 appendResult50_g4 = (float2(( _LiuguangPolarScale.z * ( length( temp_output_34_0_g4 ) * 2.0 ) ) , ( ( atan2( break39_g4.x , break39_g4.y ) * ( 1.0 / TWO_PI ) ) * _LiuguangPolarScale.w )));
|
||||
float4 ase_grabScreenPos = ASE_ComputeGrabScreenPos( ScreenPos );
|
||||
float4 ase_grabScreenPosNorm = ase_grabScreenPos / ase_grabScreenPos.w;
|
||||
float2 appendResult225 = (float2(ase_grabScreenPosNorm.r , ase_grabScreenPosNorm.g));
|
||||
float2 appendResult226 = (float2(_LiuguangScreenTilingOffset.x , _LiuguangScreenTilingOffset.y));
|
||||
float2 appendResult228 = (float2(_LiuguangScreenTilingOffset.z , _LiuguangScreenTilingOffset.w));
|
||||
#if defined( _LIUGUANGTEXUVMODE_LOCAL )
|
||||
float2 staticSwitch239 = rotator240;
|
||||
#elif defined( _LIUGUANGTEXUVMODE_POLAR )
|
||||
float2 staticSwitch239 = appendResult50_g4;
|
||||
#elif defined( _LIUGUANGTEXUVMODE_SCREEN )
|
||||
float2 staticSwitch239 = (appendResult225*appendResult226 + appendResult228);
|
||||
#else
|
||||
float2 staticSwitch239 = rotator240;
|
||||
#endif
|
||||
float2 panner215 = ( 1.0 * _Time.y * appendResult210 + staticSwitch239);
|
||||
|
||||
//优化流光纹理采样条件, 避免不必要的采样
|
||||
float4 tex2DNode196 = float4(0,0,0,0);
|
||||
if (_LiuguangSwitch > 0.01)
|
||||
{
|
||||
tex2DNode196 = tex2D( _LiuguangTex, panner215 );
|
||||
}
|
||||
|
||||
float3 appendResult200 = (float3(tex2DNode196.r , tex2DNode196.g , tex2DNode196.b));
|
||||
float lerpResult197 = lerp( tex2DNode196.r , tex2DNode196.a , _LiuguangTexP);
|
||||
|
||||
float4 colorTerm = lerpResult197 * _LiuguangColor;
|
||||
float4 lerpResult204 = lerp( float4(appendResult200 * lerpResult197, 0.0) * _LiuguangColor, colorTerm, _UseLGTexColor);
|
||||
float4 lerpResult220 = lerp( temp_cast_13 , lerpResult204 , _LiuguangSwitch);
|
||||
float4 LiuguangColor223 = lerpResult220;
|
||||
|
||||
float lerpResult104 = lerp( tex2DNode15.r , tex2DNode15.a , _MainTexP);
|
||||
float MainTexAlpha114 = ( _MainColor.a * lerpResult104 );
|
||||
float lerpResult357 = lerp( Toggle168 , (lerpResult299).a , _DissolveTexSwitch);
|
||||
float DissolveAlpha305 = lerpResult357;
|
||||
float2 appendResult162 = (float2(_MaskTexUspeed , _MaskTexVspeed));
|
||||
float2 uv_MaskTex = input.ase_texcoord6.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;
|
||||
float2 panner160 = ( 1.0 * _Time.y * appendResult162 + uv_MaskTex);
|
||||
float2 appendResult457 = (float2(custom2x385 , custom2y386));
|
||||
float2 lerpResult459 = lerp( panner160 , ( uv_MaskTex + appendResult457 ) , _MaskTexFlowMode);
|
||||
float cos161 = cos( ( ( _MaskTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float sin161 = sin( ( ( _MaskTexRotator * PI ) / ValueHalfCircle ) );
|
||||
float2 rotator161 = mul( lerpResult459 - float2( 0.5,0.5 ) , float2x2( cos161 , -sin161 , sin161 , cos161 )) + float2( 0.5,0.5 );
|
||||
float2 lerpResult172 = lerp( rotator161 , saturate( rotator161 ) , _MaskTexClamp);
|
||||
|
||||
//优化遮罩纹理采样条件, 避免不必要的采样
|
||||
float4 tex2DNode158 = float4(0,0,0,0);
|
||||
if (_MaskSwitch > 0.01)
|
||||
{
|
||||
tex2DNode158 = tex2D( _MaskTex, lerpResult172 );
|
||||
}
|
||||
|
||||
float lerpResult171 = lerp( tex2DNode158.r , tex2DNode158.a , _MaskTexP);
|
||||
float smoothstepResult383 = smoothstep( 1.0 , -1.0 , lerpResult171);
|
||||
float lerpResult380 = lerp( lerpResult171 , smoothstepResult383 , _OneMinusMask);
|
||||
float lerpResult247 = lerp( Toggle168 , lerpResult380 , _MaskSwitch);
|
||||
float MaskTexAlpha193 = lerpResult247;
|
||||
float2 appendResult180 = (float2(_MaskTexPlusUspeed , _MaskTexPlusVspeed));
|
||||
float2 uv_MaskTexPlus = input.ase_texcoord6.xy * _MaskTexPlus_ST.xy + _MaskTexPlus_ST.zw;
|
||||
float2 panner181 = ( 1.0 * _Time.y * appendResult180 + uv_MaskTexPlus);
|
||||
float cos186 = cos( ( ( _MaskTexPlusRotator * PI ) / ValueHalfCircle ) );
|
||||
float sin186 = sin( ( ( _MaskTexPlusRotator * PI ) / ValueHalfCircle ) );
|
||||
float2 rotator186 = mul( panner181 - float2( 0.5,0.5 ) , float2x2( cos186 , -sin186 , sin186 , cos186 )) + float2( 0.5,0.5 );
|
||||
float2 lerpResult190 = lerp( rotator186 , saturate( rotator186 ) , _MaskTexPlusClamp);
|
||||
|
||||
//优化额外遮罩纹理采样条件, 避免不必要的采样
|
||||
float4 tex2DNode187 = float4(0,0,0,0);
|
||||
if (_MaskTexPlusSwitch > 0.01)
|
||||
{
|
||||
tex2DNode187 = tex2D( _MaskTexPlus, lerpResult190 );
|
||||
}
|
||||
|
||||
float lerpResult188 = lerp( tex2DNode187.r , tex2DNode187.a , _MaskTexPlusP);
|
||||
float lerpResult435 = lerp( lerpResult188 , ProMask431 , _MaskPlusUsePro);
|
||||
float lerpResult241 = lerp( Toggle168 , lerpResult435 , _MaskTexPlusSwitch);
|
||||
float MaskTexPlusAlpha194 = lerpResult241;
|
||||
float4 ase_positionSSNorm = ScreenPos / ScreenPos.w;
|
||||
ase_positionSSNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_positionSSNorm.z : ase_positionSSNorm.z * 0.5 + 0.5;
|
||||
|
||||
//优化软粒子 深度纹理采样
|
||||
float SoftParticleAlpha402 = 1.0;
|
||||
#if defined(_SOFT_PARTICLES_ON)
|
||||
if (_SoftParticle > 0.001)
|
||||
{
|
||||
float4 screenPos = input.scrPos / input.scrPos.w;
|
||||
screenPos.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? screenPos.z : screenPos.z * 0.5 + 0.5;
|
||||
//float2 screenUV = screenPos.xy;
|
||||
float screenDepth399 = LinearEyeDepth(SampleSceneDepth( screenPos.xy ),_ZBufferParams);
|
||||
float distanceDepth399 = abs( ( screenDepth399 - LinearEyeDepth(screenPos.z,_ZBufferParams ) ) / ( _SoftParticle ) );
|
||||
SoftParticleAlpha402 = saturate( distanceDepth399 );
|
||||
// float sceneDepth = SampleSceneDepth(screenUV);
|
||||
// float linearEyeDepth = LinearEyeDepth(sceneDepth, _ZBufferParams);
|
||||
// float linearParticleDepth = LinearEyeDepth(screenPos.z, _ZBufferParams);
|
||||
// float depthDiff = linearEyeDepth - linearParticleDepth;
|
||||
// SoftParticleAlpha402 = saturate(depthDiff / _SoftParticle);
|
||||
}
|
||||
#endif
|
||||
|
||||
float temp_output_365_0 = ( MainTexAlpha114 * input.ase_color.a * DissolveAlpha305 * MaskTexAlpha193 * MaskTexPlusAlpha194 * SoftParticleAlpha402 );
|
||||
float lerpResult93 = lerp( tex2DNode101.r , tex2DNode101.a , _GamTexP);
|
||||
float lerpResult355 = lerp( Toggle168 , lerpResult93 , _GamTexSwitch);
|
||||
float GamAlpha123 = lerpResult355;
|
||||
float lerpResult371 = lerp( temp_output_365_0 , ( temp_output_365_0 * GamAlpha123 ) , _GamAlphaMode);
|
||||
float FresnelAlpha389 = ( _FresnelColor.a * lerpResult127 );
|
||||
float lerpResult392 = lerp( lerpResult371 , ( lerpResult371 * FresnelAlpha389 ) , _FresnelAlphaMode);
|
||||
|
||||
float3 BakedAlbedo = 0;
|
||||
float3 BakedEmission = 0;
|
||||
float3 Color = (( lerpResult347 + LiuguangColor223 )).rgb;
|
||||
float Alpha = saturate( lerpResult392 );
|
||||
|
||||
#ifdef ASE_DEPTH_WRITE_ON
|
||||
float DepthValue = input.positionCS.z;
|
||||
#endif
|
||||
|
||||
|
||||
InputData inputData = (InputData)0;
|
||||
inputData.positionWS = WorldPosition;
|
||||
inputData.viewDirectionWS = WorldViewDirection;
|
||||
|
||||
inputData.normalizedScreenSpaceUV = NormalizedScreenSpaceUV;
|
||||
|
||||
|
||||
#ifdef ASE_DEPTH_WRITE_ON
|
||||
outputDepth = DepthValue;
|
||||
#endif
|
||||
|
||||
return half4( Color, Alpha );
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
CustomEditor "ShaderGUI_AllEffect"
|
||||
FallBack "Hidden/Shader Graph/FallbackError"
|
||||
Fallback Off
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0ec09da54749b094a99e5c47271f3bc7
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,780 @@
|
||||
// Made with Amplify Shader Editor v1.9.9.4
|
||||
// Available at the Unity Asset Store - http://u3d.as/y3X
|
||||
Shader "Soung/Post/ScreenFX_Radius"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
|
||||
[HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
|
||||
[Header(Setting)][Enum(UnityEngine.Rendering.CullMode)] _CullingMode( "剔除模式", Float ) = 0
|
||||
[Enum(Blur,0,BlurChroma,1)] _BlurOrChroma( "特效模式", Float ) = 0
|
||||
[Header(Blur)] _BlurPower( "径向模糊强度", Range( -1, 2 ) ) = 1
|
||||
_BlurCenter( "径向模糊原点", Vector ) = ( 0.5, 0.5, 0, 0 )
|
||||
[Enum(Material,0,Custom2x,1)] _BlurPowerMode( "径向模糊强度模式", Float ) = 0
|
||||
[KeywordEnum( 4Blur,8Blur,12Blur )] _BlurDivission( "径向模糊细分", Float ) = 0
|
||||
[Header(Chroma)] _ChromaPower( "色散强度", Range( 0, 10 ) ) = 1
|
||||
[Enum(Material,0,Custom1w,1)] _ChromaPowerMode( "色散强度模式", Float ) = 0
|
||||
|
||||
|
||||
//_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5
|
||||
//_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16
|
||||
//_TessMin( "Tess Min Distance", Float ) = 10
|
||||
//_TessMax( "Tess Max Distance", Float ) = 25
|
||||
//_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16
|
||||
//_TessMaxDisp( "Tess Max Displacement", Float ) = 25
|
||||
|
||||
[HideInInspector] _QueueOffset("_QueueOffset", Float) = 0
|
||||
[HideInInspector] _QueueControl("_QueueControl", Float) = -1
|
||||
|
||||
[HideInInspector][NoScaleOffset] unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
|
||||
[HideInInspector][NoScaleOffset] unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
|
||||
[HideInInspector][NoScaleOffset] unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
|
||||
|
||||
[HideInInspector][ToggleOff] _ReceiveShadows("Receive Shadows", Float) = 0
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
LOD 0
|
||||
|
||||
|
||||
|
||||
Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" "UniversalMaterialType"="Unlit" }
|
||||
|
||||
Cull [_CullingMode]
|
||||
AlphaToMask Off
|
||||
|
||||
|
||||
|
||||
HLSLINCLUDE
|
||||
#pragma target 4.5
|
||||
#pragma prefer_hlslcc gles
|
||||
// ensure rendering platforms toggle list is visible
|
||||
|
||||
#if ( SHADER_TARGET > 35 ) && defined( SHADER_API_GLES3 )
|
||||
#error For WebGL2/GLES3, please set your shader target to 3.5 via SubShader options. URP shaders in ASE use target 4.5 by default.
|
||||
#endif
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
|
||||
|
||||
#ifndef ASE_TESS_FUNCS
|
||||
#define ASE_TESS_FUNCS
|
||||
float4 FixedTess( float tessValue )
|
||||
{
|
||||
return tessValue;
|
||||
}
|
||||
|
||||
float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos )
|
||||
{
|
||||
float3 wpos = mul(o2w,vertex).xyz;
|
||||
float dist = distance (wpos, cameraPos);
|
||||
float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess;
|
||||
return f;
|
||||
}
|
||||
|
||||
float4 CalcTriEdgeTessFactors (float3 triVertexFactors)
|
||||
{
|
||||
float4 tess;
|
||||
tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z);
|
||||
tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z);
|
||||
tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y);
|
||||
tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f;
|
||||
return tess;
|
||||
}
|
||||
|
||||
float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams )
|
||||
{
|
||||
float dist = distance (0.5 * (wpos0+wpos1), cameraPos);
|
||||
float len = distance(wpos0, wpos1);
|
||||
float f = max(len * scParams.y / (edgeLen * dist), 1.0);
|
||||
return f;
|
||||
}
|
||||
|
||||
float DistanceFromPlane (float3 pos, float4 plane)
|
||||
{
|
||||
float d = dot (float4(pos,1.0f), plane);
|
||||
return d;
|
||||
}
|
||||
|
||||
bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] )
|
||||
{
|
||||
float4 planeTest;
|
||||
planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f );
|
||||
planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f );
|
||||
planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f );
|
||||
planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f );
|
||||
return !all (planeTest);
|
||||
}
|
||||
|
||||
float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos )
|
||||
{
|
||||
float3 f;
|
||||
f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos);
|
||||
f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos);
|
||||
f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos);
|
||||
|
||||
return CalcTriEdgeTessFactors (f);
|
||||
}
|
||||
|
||||
float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams )
|
||||
{
|
||||
float3 pos0 = mul(o2w,v0).xyz;
|
||||
float3 pos1 = mul(o2w,v1).xyz;
|
||||
float3 pos2 = mul(o2w,v2).xyz;
|
||||
float4 tess;
|
||||
tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
|
||||
tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
|
||||
tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
|
||||
tess.w = (tess.x + tess.y + tess.z) / 3.0f;
|
||||
return tess;
|
||||
}
|
||||
|
||||
float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] )
|
||||
{
|
||||
float3 pos0 = mul(o2w,v0).xyz;
|
||||
float3 pos1 = mul(o2w,v1).xyz;
|
||||
float3 pos2 = mul(o2w,v2).xyz;
|
||||
float4 tess;
|
||||
|
||||
if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes))
|
||||
{
|
||||
tess = 0.0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
|
||||
tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
|
||||
tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
|
||||
tess.w = (tess.x + tess.y + tess.z) / 3.0f;
|
||||
}
|
||||
return tess;
|
||||
}
|
||||
#endif //ASE_TESS_FUNCS
|
||||
ENDHLSL
|
||||
|
||||
|
||||
Pass
|
||||
{
|
||||
|
||||
Name "Forward"
|
||||
Tags { "LightMode"="Grab" }
|
||||
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
ZWrite Off
|
||||
ZTest LEqual
|
||||
Offset 0,0
|
||||
ColorMask RGBA
|
||||
|
||||
|
||||
|
||||
HLSLPROGRAM
|
||||
|
||||
|
||||
#define _SURFACE_TYPE_TRANSPARENT 1
|
||||
#pragma multi_compile_local _RECEIVE_SHADOWS_OFF
|
||||
#pragma multi_compile_instancing
|
||||
#pragma instancing_options renderinglayer
|
||||
#define ASE_VERSION 19904
|
||||
#define ASE_SRP_VERSION 140011
|
||||
|
||||
|
||||
|
||||
#pragma multi_compile _ DOTS_INSTANCING_ON
|
||||
|
||||
|
||||
#pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
|
||||
|
||||
|
||||
#pragma multi_compile_fragment _ _WRITE_RENDERING_LAYERS
|
||||
|
||||
|
||||
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
|
||||
#pragma multi_compile _ LIGHTMAP_ON
|
||||
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
|
||||
#pragma multi_compile_fragment _ DEBUG_DISPLAY
|
||||
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#define SHADERPASS SHADERPASS_UNLIT
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
|
||||
|
||||
|
||||
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
|
||||
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"
|
||||
|
||||
#if defined(LOD_FADE_CROSSFADE)
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
|
||||
#endif
|
||||
|
||||
#define ASE_NEEDS_FRAG_SCREEN_POSITION_NORMALIZED
|
||||
#define ASE_NEEDS_TEXTURE_COORDINATES2
|
||||
#define ASE_NEEDS_TEXTURE_COORDINATES1
|
||||
#pragma shader_feature_local _BLURDIVISSION_4BLUR _BLURDIVISSION_8BLUR _BLURDIVISSION_12BLUR
|
||||
|
||||
|
||||
#if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
|
||||
#define ASE_SV_DEPTH SV_DepthLessEqual
|
||||
#define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid
|
||||
#else
|
||||
#define ASE_SV_DEPTH SV_Depth
|
||||
#define ASE_SV_POSITION_QUALIFIERS
|
||||
#endif
|
||||
|
||||
struct Attributes
|
||||
{
|
||||
float4 positionOS : POSITION;
|
||||
half3 normalOS : NORMAL;
|
||||
float4 ase_texcoord2 : TEXCOORD2;
|
||||
float4 ase_texcoord1 : TEXCOORD1;
|
||||
float4 ase_color : COLOR;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct PackedVaryings
|
||||
{
|
||||
ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION;
|
||||
float4 positionWSAndFogFactor : TEXCOORD0;
|
||||
half3 normalWS : TEXCOORD1;
|
||||
float4 ase_texcoord2 : TEXCOORD2;
|
||||
float4 ase_texcoord3 : TEXCOORD3;
|
||||
float4 ase_color : COLOR;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
CBUFFER_START(UnityPerMaterial)
|
||||
float2 _BlurCenter;
|
||||
float _CullingMode;
|
||||
float _BlurPower;
|
||||
float _BlurPowerMode;
|
||||
float _ChromaPower;
|
||||
float _ChromaPowerMode;
|
||||
float _BlurOrChroma;
|
||||
#ifdef ASE_TESSELLATION
|
||||
float _TessPhongStrength;
|
||||
float _TessValue;
|
||||
float _TessMin;
|
||||
float _TessMax;
|
||||
float _TessEdgeLength;
|
||||
float _TessMaxDisp;
|
||||
#endif
|
||||
CBUFFER_END
|
||||
|
||||
sampler2D _CameraColorAttachmentA;
|
||||
|
||||
|
||||
|
||||
PackedVaryings VertexFunction( Attributes input )
|
||||
{
|
||||
PackedVaryings output = (PackedVaryings)0;
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||
|
||||
output.ase_texcoord2 = input.ase_texcoord2;
|
||||
output.ase_texcoord3 = input.ase_texcoord1;
|
||||
output.ase_color = input.ase_color;
|
||||
|
||||
#ifdef ASE_ABSOLUTE_VERTEX_POS
|
||||
float3 defaultVertexValue = input.positionOS.xyz;
|
||||
#else
|
||||
float3 defaultVertexValue = float3(0, 0, 0);
|
||||
#endif
|
||||
|
||||
float3 vertexValue = defaultVertexValue;
|
||||
|
||||
#ifdef ASE_ABSOLUTE_VERTEX_POS
|
||||
input.positionOS.xyz = vertexValue;
|
||||
#else
|
||||
input.positionOS.xyz += vertexValue;
|
||||
#endif
|
||||
|
||||
input.normalOS = input.normalOS;
|
||||
|
||||
VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
|
||||
VertexNormalInputs normalInput = GetVertexNormalInputs( input.normalOS );
|
||||
|
||||
float fogFactor = 0;
|
||||
#if defined(ASE_FOG) && !defined(_FOG_FRAGMENT)
|
||||
fogFactor = ComputeFogFactor(vertexInput.positionCS.z);
|
||||
#endif
|
||||
|
||||
output.positionCS = vertexInput.positionCS;
|
||||
output.positionWSAndFogFactor = float4( vertexInput.positionWS, fogFactor );
|
||||
output.normalWS = normalInput.normalWS;
|
||||
return output;
|
||||
}
|
||||
|
||||
#if defined(ASE_TESSELLATION)
|
||||
struct VertexControl
|
||||
{
|
||||
float4 positionOS : INTERNALTESSPOS;
|
||||
half3 normalOS : NORMAL;
|
||||
float4 ase_texcoord2 : TEXCOORD2;
|
||||
float4 ase_texcoord1 : TEXCOORD1;
|
||||
float4 ase_color : COLOR;
|
||||
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct TessellationFactors
|
||||
{
|
||||
float edge[3] : SV_TessFactor;
|
||||
float inside : SV_InsideTessFactor;
|
||||
};
|
||||
|
||||
VertexControl vert ( Attributes input )
|
||||
{
|
||||
VertexControl output;
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
output.positionOS = input.positionOS;
|
||||
output.normalOS = input.normalOS;
|
||||
output.ase_texcoord2 = input.ase_texcoord2;
|
||||
output.ase_texcoord1 = input.ase_texcoord1;
|
||||
output.ase_color = input.ase_color;
|
||||
return output;
|
||||
}
|
||||
|
||||
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
|
||||
{
|
||||
TessellationFactors output;
|
||||
float4 tf = 1;
|
||||
float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
|
||||
float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
|
||||
#if defined(ASE_FIXED_TESSELLATION)
|
||||
tf = FixedTess( tessValue );
|
||||
#elif defined(ASE_DISTANCE_TESSELLATION)
|
||||
tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
|
||||
#elif defined(ASE_LENGTH_TESSELLATION)
|
||||
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
|
||||
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
|
||||
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
|
||||
#endif
|
||||
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
|
||||
return output;
|
||||
}
|
||||
|
||||
[domain("tri")]
|
||||
[partitioning("fractional_odd")]
|
||||
[outputtopology("triangle_cw")]
|
||||
[patchconstantfunc("TessellationFunction")]
|
||||
[outputcontrolpoints(3)]
|
||||
VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
|
||||
{
|
||||
return patch[id];
|
||||
}
|
||||
|
||||
[domain("tri")]
|
||||
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
|
||||
{
|
||||
Attributes output = (Attributes) 0;
|
||||
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
|
||||
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
|
||||
output.ase_texcoord2 = patch[0].ase_texcoord2 * bary.x + patch[1].ase_texcoord2 * bary.y + patch[2].ase_texcoord2 * bary.z;
|
||||
output.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
|
||||
output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
|
||||
#if defined(ASE_PHONG_TESSELLATION)
|
||||
float3 pp[3];
|
||||
for (int i = 0; i < 3; ++i)
|
||||
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
|
||||
float phongStrength = _TessPhongStrength;
|
||||
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
|
||||
#endif
|
||||
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
|
||||
return VertexFunction(output);
|
||||
}
|
||||
#else
|
||||
PackedVaryings vert ( Attributes input )
|
||||
{
|
||||
return VertexFunction( input );
|
||||
}
|
||||
#endif
|
||||
|
||||
half4 frag ( PackedVaryings input
|
||||
#if defined( ASE_DEPTH_WRITE_ON )
|
||||
,out float outputDepth : ASE_SV_DEPTH
|
||||
#endif
|
||||
#ifdef _WRITE_RENDERING_LAYERS
|
||||
, out float4 outRenderingLayers : SV_Target1
|
||||
#endif
|
||||
) : SV_Target
|
||||
{
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
|
||||
|
||||
#if defined( _SURFACE_TYPE_TRANSPARENT )
|
||||
const bool isTransparent = true;
|
||||
#else
|
||||
const bool isTransparent = false;
|
||||
#endif
|
||||
|
||||
#if defined(LOD_FADE_CROSSFADE)
|
||||
LODFadeCrossFade( input.positionCS );
|
||||
#endif
|
||||
|
||||
#if defined(MAIN_LIGHT_CALCULATE_SHADOWS)
|
||||
float4 shadowCoord = TransformWorldToShadowCoord( input.positionWSAndFogFactor.xyz );
|
||||
#else
|
||||
float4 shadowCoord = float4(0, 0, 0, 0);
|
||||
#endif
|
||||
|
||||
float3 PositionWS = input.positionWSAndFogFactor.xyz;
|
||||
float3 PositionRWS = GetCameraRelativePositionWS( PositionWS );
|
||||
half3 ViewDirWS = GetWorldSpaceNormalizeViewDir( PositionWS );
|
||||
float4 ShadowCoord = shadowCoord;
|
||||
float4 ScreenPosNorm = float4( GetNormalizedScreenSpaceUV( input.positionCS ), input.positionCS.zw );
|
||||
float4 ClipPos = ComputeClipSpacePosition( ScreenPosNorm.xy, input.positionCS.z ) * input.positionCS.w;
|
||||
float4 ScreenPos = ComputeScreenPos( ClipPos );
|
||||
half3 NormalWS = normalize( input.normalWS );
|
||||
|
||||
float4 texCoord400 = input.ase_texcoord2;
|
||||
texCoord400.xy = input.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
|
||||
float custom2x401 = texCoord400.x;
|
||||
float lerpResult561 = lerp( _BlurPower , custom2x401 , _BlurPowerMode);
|
||||
float4 temp_output_55_0 = ( ( ScreenPosNorm - float4( _BlurCenter, 0.0 , 0.0 ) ) * 0.01 * lerpResult561 );
|
||||
float4 temp_output_78_0 = ( ScreenPosNorm - temp_output_55_0 );
|
||||
float4 BlurUV98 = temp_output_55_0;
|
||||
float4 temp_output_77_0 = ( temp_output_78_0 - BlurUV98 );
|
||||
float4 temp_output_79_0 = ( temp_output_77_0 - BlurUV98 );
|
||||
float4 temp_output_96_0 = ( temp_output_79_0 - BlurUV98 );
|
||||
float4 temp_output_110_0 = ( tex2D( _CameraColorAttachmentA, temp_output_78_0.xy ) + tex2D( _CameraColorAttachmentA, temp_output_77_0.xy ) + tex2D( _CameraColorAttachmentA, temp_output_79_0.xy ) + tex2D( _CameraColorAttachmentA, temp_output_96_0.xy ) );
|
||||
float4 temp_output_97_0 = ( temp_output_96_0 - BlurUV98 );
|
||||
float4 temp_output_100_0 = ( temp_output_97_0 - BlurUV98 );
|
||||
float4 temp_output_101_0 = ( temp_output_100_0 - BlurUV98 );
|
||||
float4 temp_output_102_0 = ( temp_output_101_0 - BlurUV98 );
|
||||
float4 temp_output_112_0 = ( temp_output_110_0 + ( tex2D( _CameraColorAttachmentA, temp_output_97_0.xy ) + tex2D( _CameraColorAttachmentA, temp_output_100_0.xy ) + tex2D( _CameraColorAttachmentA, temp_output_101_0.xy ) + tex2D( _CameraColorAttachmentA, temp_output_102_0.xy ) ) );
|
||||
float4 temp_output_104_0 = ( temp_output_102_0 - BlurUV98 );
|
||||
float4 temp_output_105_0 = ( temp_output_104_0 - BlurUV98 );
|
||||
float4 temp_output_106_0 = ( temp_output_105_0 - BlurUV98 );
|
||||
#if defined( _BLURDIVISSION_4BLUR )
|
||||
float4 staticSwitch109 = temp_output_110_0;
|
||||
#elif defined( _BLURDIVISSION_8BLUR )
|
||||
float4 staticSwitch109 = temp_output_112_0;
|
||||
#elif defined( _BLURDIVISSION_12BLUR )
|
||||
float4 staticSwitch109 = ( temp_output_112_0 + ( tex2D( _CameraColorAttachmentA, temp_output_104_0.xy ) + tex2D( _CameraColorAttachmentA, temp_output_105_0.xy ) + tex2D( _CameraColorAttachmentA, temp_output_106_0.xy ) + tex2D( _CameraColorAttachmentA, ( temp_output_106_0 - BlurUV98 ).xy ) ) );
|
||||
#else
|
||||
float4 staticSwitch109 = temp_output_110_0;
|
||||
#endif
|
||||
#if defined( _BLURDIVISSION_4BLUR )
|
||||
float staticSwitch116 = 4.0;
|
||||
#elif defined( _BLURDIVISSION_8BLUR )
|
||||
float staticSwitch116 = 8.0;
|
||||
#elif defined( _BLURDIVISSION_12BLUR )
|
||||
float staticSwitch116 = 12.0;
|
||||
#else
|
||||
float staticSwitch116 = 4.0;
|
||||
#endif
|
||||
float4 appendResult120 = (float4((( staticSwitch109 / staticSwitch116 )).rgb , 1.0));
|
||||
float4 blur264 = appendResult120;
|
||||
float4 AfterBlurUV129 = temp_output_78_0;
|
||||
float4 texCoord408 = input.ase_texcoord3;
|
||||
texCoord408.xy = input.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
|
||||
float custom1w420 = texCoord408.w;
|
||||
float lerpResult558 = lerp( _ChromaPower , custom1w420 , _ChromaPowerMode);
|
||||
float4 temp_output_139_0 = ( BlurUV98 * lerpResult558 );
|
||||
float4 temp_output_137_0 = ( AfterBlurUV129 - temp_output_139_0 );
|
||||
float4 temp_output_138_0 = ( temp_output_137_0 - temp_output_139_0 );
|
||||
float3 appendResult135 = (float3(tex2D( _CameraColorAttachmentA, temp_output_137_0.xy ).r , tex2D( _CameraColorAttachmentA, temp_output_138_0.xy ).g , tex2D( _CameraColorAttachmentA, ( temp_output_138_0 - temp_output_139_0 ).xy ).b));
|
||||
float3 sesan256 = appendResult135;
|
||||
float4 lerpResult594 = lerp( blur264 , float4( sesan256 , 0.0 ) , _BlurOrChroma);
|
||||
|
||||
float3 BakedAlbedo = 0;
|
||||
float3 BakedEmission = 0;
|
||||
float3 Color = lerpResult594.xyz;
|
||||
float Alpha = input.ase_color.a;
|
||||
float AlphaClipThreshold = 0.5;
|
||||
float AlphaClipThresholdShadow = 0.5;
|
||||
|
||||
#if defined( ASE_DEPTH_WRITE_ON )
|
||||
float DeviceDepth = input.positionCS.z;
|
||||
#endif
|
||||
|
||||
#if defined( _ALPHATEST_ON )
|
||||
AlphaDiscard( Alpha, AlphaClipThreshold );
|
||||
#endif
|
||||
|
||||
#if defined(MAIN_LIGHT_CALCULATE_SHADOWS) && defined(ASE_CHANGES_WORLD_POS)
|
||||
ShadowCoord = TransformWorldToShadowCoord( PositionWS );
|
||||
#endif
|
||||
|
||||
InputData inputData = (InputData)0;
|
||||
inputData.positionWS = PositionWS;
|
||||
inputData.positionCS = float4( input.positionCS.xy, ClipPos.zw / ClipPos.w );
|
||||
inputData.normalizedScreenSpaceUV = ScreenPosNorm.xy;
|
||||
inputData.normalWS = NormalWS;
|
||||
inputData.viewDirectionWS = ViewDirWS;
|
||||
|
||||
#ifdef ASE_FOG
|
||||
inputData.fogCoord = InitializeInputDataFog(float4(inputData.positionWS, 1.0), input.positionWSAndFogFactor.w);
|
||||
#endif
|
||||
|
||||
#if defined(_DBUFFER)
|
||||
ApplyDecalToBaseColor(input.positionCS, Color);
|
||||
#endif
|
||||
|
||||
#ifdef ASE_FOG
|
||||
#ifdef TERRAIN_SPLAT_ADDPASS
|
||||
Color.rgb = MixFogColor(Color.rgb, half3(0,0,0), inputData.fogCoord);
|
||||
#else
|
||||
Color.rgb = MixFog(Color.rgb, inputData.fogCoord);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined( ASE_DEPTH_WRITE_ON )
|
||||
outputDepth = DeviceDepth;
|
||||
#endif
|
||||
|
||||
#ifdef _WRITE_RENDERING_LAYERS
|
||||
uint renderingLayers = GetMeshRenderingLayer();
|
||||
outRenderingLayers = float4( EncodeMeshRenderingLayer( renderingLayers ), 0, 0, 0 );
|
||||
#endif
|
||||
|
||||
#if defined( ASE_OPAQUE_KEEP_ALPHA )
|
||||
return half4( Color, Alpha );
|
||||
#else
|
||||
return half4( Color, OutputAlpha( Alpha, isTransparent ) );
|
||||
#endif
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
FallBack "Hidden/Shader Graph/FallbackError"
|
||||
|
||||
Fallback Off
|
||||
}
|
||||
/*ASEBEGIN
|
||||
Version=19904
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;399;1007.271,-3704.486;Inherit;False;952;348;Comment;8;420;410;409;402;401;400;412;408;自定义顶点流;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;400;1491.362,-3596.032;Inherit;False;2;-1;4;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;123;-2868.766,-4605.829;Inherit;False;3823.569;2536.15;Radial Blur;22;264;120;122;121;116;109;115;119;118;117;98;78;579;55;58;144;562;561;563;56;51;365;径向模糊;1,0.9240343,0.6367924,1;0;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;401;1738.362,-3659.032;Inherit;False;custom2x;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;563;-2546.302,-4145.801;Inherit;False;401;custom2x;1;0;OBJECT;;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;562;-2583.302,-4073.801;Inherit;False;Property;_BlurPowerMode;径向模糊强度模式;4;1;[Enum];Create;False;0;2;Material;0;Custom2x;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.Vector2Node, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;144;-2845.362,-4382.874;Inherit;False;Property;_BlurCenter;径向模糊原点;3;0;Create;False;0;0;0;False;0;False;0.5,0.5;0.5,0.5;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;58;-2640.767,-4219.983;Inherit;False;Property;_BlurPower;径向模糊强度;2;1;[Header];Create;False;1;Blur;0;0;False;0;False;1;0.2;-1;2;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;365;-1821.762,-4535.421;Inherit;False;1583.389;2446.49;采样12次;30;113;112;114;111;110;570;107;106;105;104;102;101;100;97;79;96;77;99;593;592;591;590;584;582;580;577;575;572;571;129;径向模糊采样;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;51;-2377.768,-4406.982;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT2;0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;56;-2374.769,-4308.984;Inherit;False;Constant;_Float2;Float 2;5;0;Create;True;0;0;0;False;0;False;0.01;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;561;-2360.302,-4169.801;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;98;-2049.359,-4269.759;Inherit;False;BlurUV;-1;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;55;-2221.482,-4333.046;Inherit;False;3;3;0;FLOAT4;0,0,0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.ScreenPosInputsNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;579;-2592.223,-4492.61;Float;False;0;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;408;1020.272,-3598.486;Inherit;False;1;-1;4;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;99;-1722.001,-3608.443;Inherit;False;98;BlurUV;1;0;OBJECT;;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;97;-1468.956,-3667.409;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;100;-1424.085,-3474.922;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;101;-1392.301,-3277.403;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;102;-1369.927,-3091.869;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;104;-1346.114,-2886.264;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;105;-1345.599,-2686.662;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;106;-1345.436,-2476.374;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;107;-1317.685,-2275.763;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;143;-155.0763,-4488.372;Inherit;False;1774.337;679.0127;Chroma;15;256;135;142;605;601;598;138;137;130;139;140;558;559;141;560;+色散;0.9556332,0.740566,1,1;0;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;420;1275.272,-3432.486;Inherit;False;custom1w;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;78;-2047.416,-4492.509;Inherit;True;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;582;-1165.121,-3303.208;Inherit;True;Property;_TextureSample6;Texture Sample 1;8;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;77;-1683.174,-4248.15;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;96;-1538.116,-3862.115;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;79;-1604.234,-4052.227;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;593;-1150.573,-2294.162;Inherit;True;Property;_TextureSample11;Texture Sample 1;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;592;-1156.433,-2502.107;Inherit;True;Property;_TextureSample10;Texture Sample 1;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;591;-1143.636,-2710.052;Inherit;True;Property;_TextureSample9;Texture Sample 1;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;590;-1153.234,-2911.599;Inherit;True;Property;_TextureSample8;Texture Sample 1;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;584;-1164.454,-3112.509;Inherit;True;Property;_TextureSample7;Texture Sample 1;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;580;-1160.971,-3496.316;Inherit;True;Property;_TextureSample5;Texture Sample 1;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;577;-1161.841,-3690.644;Inherit;True;Property;_TextureSample4;Texture Sample 1;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;560;-37.23981,-3998.155;Inherit;False;Property;_ChromaPowerMode;色散强度模式;7;1;[Enum];Create;False;0;2;Material;0;Custom1w;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;141;-134.2289,-4143.31;Inherit;False;Property;_ChromaPower;色散强度;6;1;[Header];Create;False;1;Chroma;0;0;False;0;False;1;3.72;0;10;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;559;-39.23981,-4070.154;Inherit;False;420;custom1w;1;0;OBJECT;;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SimpleAddOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;111;-655.2737,-3448.529;Inherit;False;4;4;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;1;COLOR;0
|
||||
Node;AmplifyShaderEditor.SimpleAddOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;114;-652.6542,-2538.576;Inherit;False;4;4;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;1;COLOR;0
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;575;-1163.229,-3883.544;Inherit;True;Property;_TextureSample3;Texture Sample 1;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;572;-1162.448,-4076.616;Inherit;True;Property;_TextureSample2;Texture Sample 1;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;571;-1164.481,-4271.13;Inherit;True;Property;_TextureSample1;Texture Sample 1;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;570;-1158.286,-4493.94;Inherit;True;Global;_CameraColorAttachmentA;_CameraColorAttachmentA;8;1;[HideInInspector];Create;True;0;0;0;True;0;False;-1;None;;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;558;134.7599,-4094.154;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;140;-35.59576,-4218.285;Inherit;False;98;BlurUV;1;0;OBJECT;;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;129;-1805.114,-4492.427;Inherit;False;AfterBlurUV;-1;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleAddOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;110;-714.6857,-4263.362;Inherit;False;4;4;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;1;COLOR;0
|
||||
Node;AmplifyShaderEditor.SimpleAddOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;112;-515.8807,-3679.933;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
|
||||
Node;AmplifyShaderEditor.SimpleAddOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;113;-405.0478,-2726.277;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;117;-137.4642,-3515.751;Inherit;False;Constant;_Float3;Float 3;7;0;Create;True;0;0;0;False;0;False;4;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;118;-137.1201,-3439.808;Inherit;False;Constant;_Float4;Float 4;7;0;Create;True;0;0;0;False;0;False;8;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;119;-136.4783,-3365.774;Inherit;False;Constant;_Float5;Float 5;7;0;Create;True;0;0;0;False;0;False;12;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;139;278.4887,-4218.607;Inherit;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT;0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;130;266.7139,-4412.792;Inherit;False;129;AfterBlurUV;1;0;OBJECT;;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.StaticSwitch, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;109;-199.1161,-3637.991;Inherit;False;Property;_BlurDivission;径向模糊细分;5;0;Create;False;0;0;0;False;0;False;0;0;0;True;;KeywordEnum;3;4Blur;8Blur;12Blur;Create;True;True;All;9;1;COLOR;0,0,0,0;False;0;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;4;COLOR;0,0,0,0;False;5;COLOR;0,0,0,0;False;6;COLOR;0,0,0,0;False;7;COLOR;0,0,0,0;False;8;COLOR;0,0,0,0;False;1;COLOR;0
|
||||
Node;AmplifyShaderEditor.StaticSwitch, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;116;15.1711,-3464.572;Inherit;False;Property;;;5;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;4Blur;8Blur;Reference;109;True;True;All;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;137;458.9403,-4412.816;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;138;587.4817,-4240.776;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;142;709.4379,-4009.74;Inherit;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.SimpleDivideOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;115;242.5609,-3636.378;Inherit;False;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
|
||||
Node;AmplifyShaderEditor.ComponentMaskNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;121;380.0628,-3636.516;Inherit;False;True;True;True;False;1;0;COLOR;0,0,0,0;False;1;FLOAT3;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;122;443.5662,-3558.765;Inherit;False;Constant;_Float6;Float 6;7;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;598;866.1603,-4439.181;Inherit;True;Property;_TextureSample0;Texture Sample 0;8;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;601;864.1648,-4231.389;Inherit;True;Property;_TextureSample12;Texture Sample 0;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;605;863.958,-4021.44;Inherit;True;Property;_TextureSample13;Texture Sample 0;8;1;[HideInInspector];Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Instance;570;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.DynamicAppendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;135;1261.967,-4183.353;Inherit;False;FLOAT3;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT3;0
|
||||
Node;AmplifyShaderEditor.DynamicAppendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;120;597.3049,-3636.919;Inherit;False;FLOAT4;4;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;256;1407.26,-4182.935;Inherit;False;sesan;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;264;741.7109,-3637.514;Inherit;False;blur;-1;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;421;1713.845,-3259.709;Inherit;False;176;139;Comment;1;425;设置;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;257;1179.485,-3075.49;Inherit;False;256;sesan;1;0;OBJECT;;False;1;FLOAT3;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;265;1178.759,-3151.817;Inherit;False;264;blur;1;0;OBJECT;;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;595;1210.096,-3000.356;Inherit;False;Property;_BlurOrChroma;特效模式;1;1;[Enum];Create;False;0;2;Blur;0;BlurChroma;1;0;True;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;402;1737.362,-3581.032;Inherit;False;custom2y;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;412;1275.272,-3509.486;Inherit;False;custom1z;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;425;1736.023,-3205.597;Inherit;False;Property;_CullingMode;剔除模式;0;2;[Header];[Enum];Create;False;1;Setting;0;1;UnityEngine.Rendering.CullMode;True;0;False;0;2;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;409;1273.272,-3585.486;Inherit;False;custom1y;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;410;1274.272,-3659.486;Inherit;False;custom1x;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;594;1439.853,-3100.987;Inherit;True;3;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;2;FLOAT;0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.VertexColorNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;533;1493.919,-2882.692;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;323;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;13;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ShadowCaster;0;2;ShadowCaster;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=ShadowCaster;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;324;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;13;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthOnly;0;3;DepthOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;True;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;False;False;True;1;LightMode=DepthOnly;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;325;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;13;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Meta;0;4;Meta;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;326;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;13;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Universal2D;0;5;Universal2D;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=Universal2D;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;327;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;13;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;SceneSelectionPass;0;6;SceneSelectionPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=SceneSelectionPass;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;328;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;13;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ScenePickingPass;0;7;ScenePickingPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Picking;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;329;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;13;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormals;0;8;DepthNormals;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;330;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;13;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormalsOnly;0;9;DepthNormalsOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;True;9;d3d11;metal;vulkan;xboxone;xboxseries;playstation;ps4;ps5;switch;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;321;1329.524,-2514.272;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;13;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ExtraPrePass;0;0;ExtraPrePass;5;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;0;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;322;1711.056,-3100.57;Float;False;True;-1;3;;0;13;Soung/Post/ScreenFX_Radius;2992e84f91cbeb14eab234972e07ea9d;True;Forward;0;1;Forward;9;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;True;True;0;True;_CullingMode;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;True;True;2;5;False;;10;False;;0;1;False;;10;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;True;True;2;False;;True;3;False;;True;False;0;False;;0;False;;True;1;LightMode=Grab;False;False;0;;0;0;Standard;27;Surface;1;638786581663575459; Keep Alpha;0;0; Blend;0;0;Two Sided;1;0;Alpha Clipping;0;638786581677440187; Use Shadow Threshold;0;0;Forward Only;0;0;Cast Shadows;0;638786581681993037;Receive Shadows;0;638786581685379101;Receive SSAO;0;638977575662046066;GPU Instancing;1;638977575664855854;LOD CrossFade;0;638786581693938962;Built-in Fog;0;638786581691455043;Meta Pass;0;0;Extra Pre Pass;0;0;Tessellation;0;0; Phong;0;0; Strength;0.5,False,;0; Type;0;0; Tess;16,False,;0; Min;10,False,;0; Max;25,False,;0; Edge Length;16,False,;0; Max Displacement;25,False,;0;Write Depth;0;0; Early Z;0;0;Vertex Position;1;0;0;10;False;True;False;False;False;False;False;False;False;False;False;;False;0
|
||||
WireConnection;401;0;400;1
|
||||
WireConnection;51;0;579;0
|
||||
WireConnection;51;1;144;0
|
||||
WireConnection;561;0;58;0
|
||||
WireConnection;561;1;563;0
|
||||
WireConnection;561;2;562;0
|
||||
WireConnection;98;0;55;0
|
||||
WireConnection;55;0;51;0
|
||||
WireConnection;55;1;56;0
|
||||
WireConnection;55;2;561;0
|
||||
WireConnection;97;0;96;0
|
||||
WireConnection;97;1;99;0
|
||||
WireConnection;100;0;97;0
|
||||
WireConnection;100;1;99;0
|
||||
WireConnection;101;0;100;0
|
||||
WireConnection;101;1;99;0
|
||||
WireConnection;102;0;101;0
|
||||
WireConnection;102;1;99;0
|
||||
WireConnection;104;0;102;0
|
||||
WireConnection;104;1;99;0
|
||||
WireConnection;105;0;104;0
|
||||
WireConnection;105;1;99;0
|
||||
WireConnection;106;0;105;0
|
||||
WireConnection;106;1;99;0
|
||||
WireConnection;107;0;106;0
|
||||
WireConnection;107;1;99;0
|
||||
WireConnection;420;0;408;4
|
||||
WireConnection;78;0;579;0
|
||||
WireConnection;78;1;55;0
|
||||
WireConnection;582;1;101;0
|
||||
WireConnection;77;0;78;0
|
||||
WireConnection;77;1;99;0
|
||||
WireConnection;96;0;79;0
|
||||
WireConnection;96;1;99;0
|
||||
WireConnection;79;0;77;0
|
||||
WireConnection;79;1;99;0
|
||||
WireConnection;593;1;107;0
|
||||
WireConnection;592;1;106;0
|
||||
WireConnection;591;1;105;0
|
||||
WireConnection;590;1;104;0
|
||||
WireConnection;584;1;102;0
|
||||
WireConnection;580;1;100;0
|
||||
WireConnection;577;1;97;0
|
||||
WireConnection;111;0;577;0
|
||||
WireConnection;111;1;580;0
|
||||
WireConnection;111;2;582;0
|
||||
WireConnection;111;3;584;0
|
||||
WireConnection;114;0;590;0
|
||||
WireConnection;114;1;591;0
|
||||
WireConnection;114;2;592;0
|
||||
WireConnection;114;3;593;0
|
||||
WireConnection;575;1;96;0
|
||||
WireConnection;572;1;79;0
|
||||
WireConnection;571;1;77;0
|
||||
WireConnection;570;1;78;0
|
||||
WireConnection;558;0;141;0
|
||||
WireConnection;558;1;559;0
|
||||
WireConnection;558;2;560;0
|
||||
WireConnection;129;0;78;0
|
||||
WireConnection;110;0;570;0
|
||||
WireConnection;110;1;571;0
|
||||
WireConnection;110;2;572;0
|
||||
WireConnection;110;3;575;0
|
||||
WireConnection;112;0;110;0
|
||||
WireConnection;112;1;111;0
|
||||
WireConnection;113;0;112;0
|
||||
WireConnection;113;1;114;0
|
||||
WireConnection;139;0;140;0
|
||||
WireConnection;139;1;558;0
|
||||
WireConnection;109;1;110;0
|
||||
WireConnection;109;0;112;0
|
||||
WireConnection;109;2;113;0
|
||||
WireConnection;116;1;117;0
|
||||
WireConnection;116;0;118;0
|
||||
WireConnection;116;2;119;0
|
||||
WireConnection;137;0;130;0
|
||||
WireConnection;137;1;139;0
|
||||
WireConnection;138;0;137;0
|
||||
WireConnection;138;1;139;0
|
||||
WireConnection;142;0;138;0
|
||||
WireConnection;142;1;139;0
|
||||
WireConnection;115;0;109;0
|
||||
WireConnection;115;1;116;0
|
||||
WireConnection;121;0;115;0
|
||||
WireConnection;598;1;137;0
|
||||
WireConnection;601;1;138;0
|
||||
WireConnection;605;1;142;0
|
||||
WireConnection;135;0;598;1
|
||||
WireConnection;135;1;601;2
|
||||
WireConnection;135;2;605;3
|
||||
WireConnection;120;0;121;0
|
||||
WireConnection;120;3;122;0
|
||||
WireConnection;256;0;135;0
|
||||
WireConnection;264;0;120;0
|
||||
WireConnection;402;0;400;2
|
||||
WireConnection;412;0;408;3
|
||||
WireConnection;409;0;408;2
|
||||
WireConnection;410;0;408;1
|
||||
WireConnection;594;0;265;0
|
||||
WireConnection;594;1;257;0
|
||||
WireConnection;594;2;595;0
|
||||
WireConnection;322;2;594;0
|
||||
WireConnection;322;3;533;4
|
||||
ASEEND*/
|
||||
//CHKSM=1BC366F125C91B5D1EAA7252ECF74C94CAEE2221
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 12b7c62fb857d46459fd04f95eef6cbe
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f34bc4d7b72fdf44db4a0c9ee9544dda
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,746 @@
|
||||
// Made with Amplify Shader Editor v1.9.9.4
|
||||
// Available at the Unity Asset Store - http://u3d.as/y3X
|
||||
Shader "Soung/Post/ScreenFX_BlackNWhite"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
|
||||
[HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
|
||||
[Header(Setting)][Enum(UnityEngine.Rendering.CullMode)] _CullingMode( "剔除模式", Float ) = 0
|
||||
[HDR][Header(BlackNWhite)] _FlashColor( "黑白闪颜色", Color ) = ( 1, 1, 1, 0 )
|
||||
_BlackNWhiteSoft( "黑白过渡", Range( 0.51, 1 ) ) = 0.51
|
||||
[Enum(Material,0,Custom1x,1)] _BlackNWhiteSwitch( "黑白闪切换方式", Float ) = 0
|
||||
_BlackNWhite( "黑白闪切换", Range( 0, 1 ) ) = 0
|
||||
[NoScaleOffset] _RadialTex( "放射线贴图", 2D ) = "white" {}
|
||||
[Enum(R,0,A,1)] _RadiusMaskP( "放射贴图通道", Float ) = 0
|
||||
_RadialUSpeed( "放射U速度", Float ) = 0
|
||||
_RadialVSpeed( "放射V速度", Float ) = 0
|
||||
_RadialPower( "放射强度", Range( 0, 1 ) ) = 0
|
||||
[Enum(Program,0,Texture,1)] _RadialMaskMode( "放射线遮罩方式", Float ) = 0
|
||||
_GlobalPolarCenter( "全局极坐标原点与偏移", Vector ) = ( 0.5, 0.5, 1, 1 )
|
||||
[Header(Mask)] _MaskTex( "遮罩贴图", 2D ) = "white" {}
|
||||
[Enum(R,0,A,1)] _MaskTexP( "遮罩贴图通道", Float ) = 0
|
||||
[IntRange] _MaskTexRotator( "遮罩贴图旋转", Range( 0, 360 ) ) = 0
|
||||
[Header(ProgramMask)] _ProgramMaskSoft( "程序遮罩过渡", Range( 0, 10 ) ) = 3.166892
|
||||
_ProgramMaskRange( "程序遮罩范围", Range( 0, 1.5 ) ) = 0.2667015
|
||||
|
||||
|
||||
//_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5
|
||||
//_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16
|
||||
//_TessMin( "Tess Min Distance", Float ) = 10
|
||||
//_TessMax( "Tess Max Distance", Float ) = 25
|
||||
//_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16
|
||||
//_TessMaxDisp( "Tess Max Displacement", Float ) = 25
|
||||
|
||||
[HideInInspector] _QueueOffset("_QueueOffset", Float) = 0
|
||||
[HideInInspector] _QueueControl("_QueueControl", Float) = -1
|
||||
|
||||
[HideInInspector][NoScaleOffset] unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
|
||||
[HideInInspector][NoScaleOffset] unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
|
||||
[HideInInspector][NoScaleOffset] unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
|
||||
|
||||
[HideInInspector][ToggleOff] _ReceiveShadows("Receive Shadows", Float) = 0
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
LOD 0
|
||||
|
||||
|
||||
|
||||
Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" "UniversalMaterialType"="Unlit" }
|
||||
|
||||
Cull [_CullingMode]
|
||||
AlphaToMask Off
|
||||
|
||||
|
||||
|
||||
HLSLINCLUDE
|
||||
#pragma target 4.5
|
||||
#pragma prefer_hlslcc gles
|
||||
// ensure rendering platforms toggle list is visible
|
||||
|
||||
#if ( SHADER_TARGET > 35 ) && defined( SHADER_API_GLES3 )
|
||||
#error For WebGL2/GLES3, please set your shader target to 3.5 via SubShader options. URP shaders in ASE use target 4.5 by default.
|
||||
#endif
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
|
||||
|
||||
#ifndef ASE_TESS_FUNCS
|
||||
#define ASE_TESS_FUNCS
|
||||
float4 FixedTess( float tessValue )
|
||||
{
|
||||
return tessValue;
|
||||
}
|
||||
|
||||
float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos )
|
||||
{
|
||||
float3 wpos = mul(o2w,vertex).xyz;
|
||||
float dist = distance (wpos, cameraPos);
|
||||
float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess;
|
||||
return f;
|
||||
}
|
||||
|
||||
float4 CalcTriEdgeTessFactors (float3 triVertexFactors)
|
||||
{
|
||||
float4 tess;
|
||||
tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z);
|
||||
tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z);
|
||||
tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y);
|
||||
tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f;
|
||||
return tess;
|
||||
}
|
||||
|
||||
float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams )
|
||||
{
|
||||
float dist = distance (0.5 * (wpos0+wpos1), cameraPos);
|
||||
float len = distance(wpos0, wpos1);
|
||||
float f = max(len * scParams.y / (edgeLen * dist), 1.0);
|
||||
return f;
|
||||
}
|
||||
|
||||
float DistanceFromPlane (float3 pos, float4 plane)
|
||||
{
|
||||
float d = dot (float4(pos,1.0f), plane);
|
||||
return d;
|
||||
}
|
||||
|
||||
bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] )
|
||||
{
|
||||
float4 planeTest;
|
||||
planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f );
|
||||
planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f );
|
||||
planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f );
|
||||
planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f );
|
||||
return !all (planeTest);
|
||||
}
|
||||
|
||||
float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos )
|
||||
{
|
||||
float3 f;
|
||||
f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos);
|
||||
f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos);
|
||||
f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos);
|
||||
|
||||
return CalcTriEdgeTessFactors (f);
|
||||
}
|
||||
|
||||
float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams )
|
||||
{
|
||||
float3 pos0 = mul(o2w,v0).xyz;
|
||||
float3 pos1 = mul(o2w,v1).xyz;
|
||||
float3 pos2 = mul(o2w,v2).xyz;
|
||||
float4 tess;
|
||||
tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
|
||||
tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
|
||||
tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
|
||||
tess.w = (tess.x + tess.y + tess.z) / 3.0f;
|
||||
return tess;
|
||||
}
|
||||
|
||||
float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] )
|
||||
{
|
||||
float3 pos0 = mul(o2w,v0).xyz;
|
||||
float3 pos1 = mul(o2w,v1).xyz;
|
||||
float3 pos2 = mul(o2w,v2).xyz;
|
||||
float4 tess;
|
||||
|
||||
if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes))
|
||||
{
|
||||
tess = 0.0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
|
||||
tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
|
||||
tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
|
||||
tess.w = (tess.x + tess.y + tess.z) / 3.0f;
|
||||
}
|
||||
return tess;
|
||||
}
|
||||
#endif //ASE_TESS_FUNCS
|
||||
ENDHLSL
|
||||
|
||||
|
||||
Pass
|
||||
{
|
||||
|
||||
Name "Forward"
|
||||
Tags { "LightMode"="Grab" }
|
||||
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
ZWrite Off
|
||||
ZTest LEqual
|
||||
Offset 0,0
|
||||
ColorMask RGBA
|
||||
|
||||
|
||||
|
||||
HLSLPROGRAM
|
||||
|
||||
|
||||
#define _SURFACE_TYPE_TRANSPARENT 1
|
||||
#pragma multi_compile_local _RECEIVE_SHADOWS_OFF
|
||||
#pragma instancing_options renderinglayer
|
||||
#define ASE_VERSION 19904
|
||||
#define ASE_SRP_VERSION 140011
|
||||
|
||||
|
||||
|
||||
#pragma multi_compile _ DOTS_INSTANCING_ON
|
||||
|
||||
|
||||
#pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
|
||||
|
||||
|
||||
#pragma multi_compile_fragment _ _WRITE_RENDERING_LAYERS
|
||||
|
||||
|
||||
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
|
||||
#pragma multi_compile _ LIGHTMAP_ON
|
||||
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
|
||||
#pragma multi_compile_fragment _ DEBUG_DISPLAY
|
||||
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#define SHADERPASS SHADERPASS_UNLIT
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
|
||||
|
||||
|
||||
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
|
||||
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"
|
||||
|
||||
#if defined(LOD_FADE_CROSSFADE)
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
|
||||
#endif
|
||||
|
||||
#define ASE_NEEDS_FRAG_SCREEN_POSITION_NORMALIZED
|
||||
#define ASE_NEEDS_TEXTURE_COORDINATES0
|
||||
#define ASE_NEEDS_FRAG_TEXTURE_COORDINATES0
|
||||
#define ASE_NEEDS_TEXTURE_COORDINATES1
|
||||
#pragma multi_compile_instancing
|
||||
|
||||
|
||||
#if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
|
||||
#define ASE_SV_DEPTH SV_DepthLessEqual
|
||||
#define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid
|
||||
#else
|
||||
#define ASE_SV_DEPTH SV_Depth
|
||||
#define ASE_SV_POSITION_QUALIFIERS
|
||||
#endif
|
||||
|
||||
struct Attributes
|
||||
{
|
||||
float4 positionOS : POSITION;
|
||||
half3 normalOS : NORMAL;
|
||||
float4 ase_texcoord : TEXCOORD0;
|
||||
float4 ase_texcoord1 : TEXCOORD1;
|
||||
float4 ase_color : COLOR;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct PackedVaryings
|
||||
{
|
||||
ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION;
|
||||
float4 positionWSAndFogFactor : TEXCOORD0;
|
||||
half3 normalWS : TEXCOORD1;
|
||||
float4 ase_texcoord2 : TEXCOORD2;
|
||||
float4 ase_texcoord3 : TEXCOORD3;
|
||||
float4 ase_color : COLOR;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
CBUFFER_START(UnityPerMaterial)
|
||||
float4 _FlashColor;
|
||||
float4 _GlobalPolarCenter;
|
||||
float _CullingMode;
|
||||
float _BlackNWhiteSoft;
|
||||
float _RadialUSpeed;
|
||||
float _RadialVSpeed;
|
||||
float _ProgramMaskRange;
|
||||
float _ProgramMaskSoft;
|
||||
float _MaskTexRotator;
|
||||
float _MaskTexP;
|
||||
float _RadialMaskMode;
|
||||
float _RadialPower;
|
||||
float _BlackNWhite;
|
||||
float _BlackNWhiteSwitch;
|
||||
#ifdef ASE_TESSELLATION
|
||||
float _TessPhongStrength;
|
||||
float _TessValue;
|
||||
float _TessMin;
|
||||
float _TessMax;
|
||||
float _TessEdgeLength;
|
||||
float _TessMaxDisp;
|
||||
#endif
|
||||
CBUFFER_END
|
||||
|
||||
sampler2D _CameraColorAttachmentA;
|
||||
sampler2D _RadialTex;
|
||||
sampler2D _MaskTex;
|
||||
UNITY_INSTANCING_BUFFER_START(SoungPostScreenFX_BlackNWhite)
|
||||
UNITY_DEFINE_INSTANCED_PROP(float4, _MaskTex_ST)
|
||||
UNITY_DEFINE_INSTANCED_PROP(float, _RadiusMaskP)
|
||||
UNITY_INSTANCING_BUFFER_END(SoungPostScreenFX_BlackNWhite)
|
||||
|
||||
|
||||
|
||||
PackedVaryings VertexFunction( Attributes input )
|
||||
{
|
||||
PackedVaryings output = (PackedVaryings)0;
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||
|
||||
output.ase_texcoord2.xy = input.ase_texcoord.xy;
|
||||
output.ase_texcoord3 = input.ase_texcoord1;
|
||||
output.ase_color = input.ase_color;
|
||||
|
||||
//setting value to unused interpolator channels and avoid initialization warnings
|
||||
output.ase_texcoord2.zw = 0;
|
||||
|
||||
#ifdef ASE_ABSOLUTE_VERTEX_POS
|
||||
float3 defaultVertexValue = input.positionOS.xyz;
|
||||
#else
|
||||
float3 defaultVertexValue = float3(0, 0, 0);
|
||||
#endif
|
||||
|
||||
float3 vertexValue = defaultVertexValue;
|
||||
|
||||
#ifdef ASE_ABSOLUTE_VERTEX_POS
|
||||
input.positionOS.xyz = vertexValue;
|
||||
#else
|
||||
input.positionOS.xyz += vertexValue;
|
||||
#endif
|
||||
|
||||
input.normalOS = input.normalOS;
|
||||
|
||||
VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
|
||||
VertexNormalInputs normalInput = GetVertexNormalInputs( input.normalOS );
|
||||
|
||||
float fogFactor = 0;
|
||||
#if defined(ASE_FOG) && !defined(_FOG_FRAGMENT)
|
||||
fogFactor = ComputeFogFactor(vertexInput.positionCS.z);
|
||||
#endif
|
||||
|
||||
output.positionCS = vertexInput.positionCS;
|
||||
output.positionWSAndFogFactor = float4( vertexInput.positionWS, fogFactor );
|
||||
output.normalWS = normalInput.normalWS;
|
||||
return output;
|
||||
}
|
||||
|
||||
#if defined(ASE_TESSELLATION)
|
||||
struct VertexControl
|
||||
{
|
||||
float4 positionOS : INTERNALTESSPOS;
|
||||
half3 normalOS : NORMAL;
|
||||
float4 ase_texcoord : TEXCOORD0;
|
||||
float4 ase_texcoord1 : TEXCOORD1;
|
||||
float4 ase_color : COLOR;
|
||||
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct TessellationFactors
|
||||
{
|
||||
float edge[3] : SV_TessFactor;
|
||||
float inside : SV_InsideTessFactor;
|
||||
};
|
||||
|
||||
VertexControl vert ( Attributes input )
|
||||
{
|
||||
VertexControl output;
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
output.positionOS = input.positionOS;
|
||||
output.normalOS = input.normalOS;
|
||||
output.ase_texcoord = input.ase_texcoord;
|
||||
output.ase_texcoord1 = input.ase_texcoord1;
|
||||
output.ase_color = input.ase_color;
|
||||
return output;
|
||||
}
|
||||
|
||||
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
|
||||
{
|
||||
TessellationFactors output;
|
||||
float4 tf = 1;
|
||||
float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
|
||||
float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
|
||||
#if defined(ASE_FIXED_TESSELLATION)
|
||||
tf = FixedTess( tessValue );
|
||||
#elif defined(ASE_DISTANCE_TESSELLATION)
|
||||
tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
|
||||
#elif defined(ASE_LENGTH_TESSELLATION)
|
||||
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
|
||||
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
|
||||
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
|
||||
#endif
|
||||
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
|
||||
return output;
|
||||
}
|
||||
|
||||
[domain("tri")]
|
||||
[partitioning("fractional_odd")]
|
||||
[outputtopology("triangle_cw")]
|
||||
[patchconstantfunc("TessellationFunction")]
|
||||
[outputcontrolpoints(3)]
|
||||
VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
|
||||
{
|
||||
return patch[id];
|
||||
}
|
||||
|
||||
[domain("tri")]
|
||||
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
|
||||
{
|
||||
Attributes output = (Attributes) 0;
|
||||
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
|
||||
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
|
||||
output.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
|
||||
output.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
|
||||
output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
|
||||
#if defined(ASE_PHONG_TESSELLATION)
|
||||
float3 pp[3];
|
||||
for (int i = 0; i < 3; ++i)
|
||||
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
|
||||
float phongStrength = _TessPhongStrength;
|
||||
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
|
||||
#endif
|
||||
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
|
||||
return VertexFunction(output);
|
||||
}
|
||||
#else
|
||||
PackedVaryings vert ( Attributes input )
|
||||
{
|
||||
return VertexFunction( input );
|
||||
}
|
||||
#endif
|
||||
|
||||
half4 frag ( PackedVaryings input
|
||||
#if defined( ASE_DEPTH_WRITE_ON )
|
||||
,out float outputDepth : ASE_SV_DEPTH
|
||||
#endif
|
||||
#ifdef _WRITE_RENDERING_LAYERS
|
||||
, out float4 outRenderingLayers : SV_Target1
|
||||
#endif
|
||||
) : SV_Target
|
||||
{
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
|
||||
|
||||
#if defined( _SURFACE_TYPE_TRANSPARENT )
|
||||
const bool isTransparent = true;
|
||||
#else
|
||||
const bool isTransparent = false;
|
||||
#endif
|
||||
|
||||
#if defined(LOD_FADE_CROSSFADE)
|
||||
LODFadeCrossFade( input.positionCS );
|
||||
#endif
|
||||
|
||||
#if defined(MAIN_LIGHT_CALCULATE_SHADOWS)
|
||||
float4 shadowCoord = TransformWorldToShadowCoord( input.positionWSAndFogFactor.xyz );
|
||||
#else
|
||||
float4 shadowCoord = float4(0, 0, 0, 0);
|
||||
#endif
|
||||
|
||||
float3 PositionWS = input.positionWSAndFogFactor.xyz;
|
||||
float3 PositionRWS = GetCameraRelativePositionWS( PositionWS );
|
||||
half3 ViewDirWS = GetWorldSpaceNormalizeViewDir( PositionWS );
|
||||
float4 ShadowCoord = shadowCoord;
|
||||
float4 ScreenPosNorm = float4( GetNormalizedScreenSpaceUV( input.positionCS ), input.positionCS.zw );
|
||||
float4 ClipPos = ComputeClipSpacePosition( ScreenPosNorm.xy, input.positionCS.z ) * input.positionCS.w;
|
||||
float4 ScreenPos = ComputeScreenPos( ClipPos );
|
||||
half3 NormalWS = normalize( input.normalWS );
|
||||
|
||||
float2 temp_output_333_0 = (ScreenPosNorm).xy;
|
||||
float4 tex2DNode567 = tex2D( _CameraColorAttachmentA, temp_output_333_0 );
|
||||
float2 appendResult338 = (float2(_RadialUSpeed , _RadialVSpeed));
|
||||
float2 appendResult335 = (float2(_GlobalPolarCenter.x , _GlobalPolarCenter.y));
|
||||
float2 temp_output_34_0_g10 = ( temp_output_333_0 - appendResult335 );
|
||||
float2 break39_g10 = temp_output_34_0_g10;
|
||||
float2 appendResult50_g10 = (float2(( _GlobalPolarCenter.z * ( length( temp_output_34_0_g10 ) * 2.0 ) ) , ( ( atan2( break39_g10.x , break39_g10.y ) * ( 1.0 / TWO_PI ) ) * _GlobalPolarCenter.w )));
|
||||
float2 panner164 = ( 1.0 * _Time.y * appendResult338 + appendResult50_g10);
|
||||
float4 tex2DNode161 = tex2D( _RadialTex, panner164 );
|
||||
float _RadiusMaskP_Instance = UNITY_ACCESS_INSTANCED_PROP(SoungPostScreenFX_BlackNWhite,_RadiusMaskP);
|
||||
float lerpResult343 = lerp( tex2DNode161.r , tex2DNode161.a , _RadiusMaskP_Instance);
|
||||
float2 texCoord570 = input.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
|
||||
float2 GlobalCenter360 = appendResult335;
|
||||
float2 temp_output_573_0 = ( ( texCoord570 - GlobalCenter360 ) * 2.0 );
|
||||
float2 temp_output_574_0 = ( temp_output_573_0 * temp_output_573_0 );
|
||||
float GlobalMask582 = pow( saturate( ( ( (temp_output_574_0).x + (temp_output_574_0).y ) - _ProgramMaskRange ) ) , _ProgramMaskSoft );
|
||||
float4 _MaskTex_ST_Instance = UNITY_ACCESS_INSTANCED_PROP(SoungPostScreenFX_BlackNWhite,_MaskTex_ST);
|
||||
float2 uv_MaskTex = input.ase_texcoord2.xy * _MaskTex_ST_Instance.xy + _MaskTex_ST_Instance.zw;
|
||||
float cos594 = cos( ( ( _MaskTexRotator * PI ) / 180.0 ) );
|
||||
float sin594 = sin( ( ( _MaskTexRotator * PI ) / 180.0 ) );
|
||||
float2 rotator594 = mul( uv_MaskTex - float2( 0.5,0.5 ) , float2x2( cos594 , -sin594 , sin594 , cos594 )) + float2( 0.5,0.5 );
|
||||
float4 tex2DNode596 = tex2D( _MaskTex, rotator594 );
|
||||
float lerpResult597 = lerp( tex2DNode596.r , tex2DNode596.a , _MaskTexP);
|
||||
float MaskTex598 = lerpResult597;
|
||||
float lerpResult540 = lerp( GlobalMask582 , MaskTex598 , _RadialMaskMode);
|
||||
float lerpResult166 = lerp( tex2DNode567.r , ( lerpResult343 * lerpResult540 ) , _RadialPower);
|
||||
float temp_output_344_0 = ( tex2DNode567.r + lerpResult166 );
|
||||
float4 texCoord408 = input.ase_texcoord3;
|
||||
texCoord408.xy = input.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
|
||||
float custom1x410 = texCoord408.x;
|
||||
float lerpResult544 = lerp( _BlackNWhite , custom1x410 , _BlackNWhiteSwitch);
|
||||
float lerpResult346 = lerp( temp_output_344_0 , ( 1.0 - temp_output_344_0 ) , lerpResult544);
|
||||
float smoothstepResult149 = smoothstep( ( 1.0 - _BlackNWhiteSoft ) , _BlackNWhiteSoft , lerpResult346);
|
||||
float4 heibai260 = ( _FlashColor * smoothstepResult149 );
|
||||
|
||||
float3 BakedAlbedo = 0;
|
||||
float3 BakedEmission = 0;
|
||||
float3 Color = heibai260.rgb;
|
||||
float Alpha = input.ase_color.a;
|
||||
float AlphaClipThreshold = 0.5;
|
||||
float AlphaClipThresholdShadow = 0.5;
|
||||
|
||||
#if defined( ASE_DEPTH_WRITE_ON )
|
||||
float DeviceDepth = input.positionCS.z;
|
||||
#endif
|
||||
|
||||
#if defined( _ALPHATEST_ON )
|
||||
AlphaDiscard( Alpha, AlphaClipThreshold );
|
||||
#endif
|
||||
|
||||
#if defined(MAIN_LIGHT_CALCULATE_SHADOWS) && defined(ASE_CHANGES_WORLD_POS)
|
||||
ShadowCoord = TransformWorldToShadowCoord( PositionWS );
|
||||
#endif
|
||||
|
||||
InputData inputData = (InputData)0;
|
||||
inputData.positionWS = PositionWS;
|
||||
inputData.positionCS = float4( input.positionCS.xy, ClipPos.zw / ClipPos.w );
|
||||
inputData.normalizedScreenSpaceUV = ScreenPosNorm.xy;
|
||||
inputData.normalWS = NormalWS;
|
||||
inputData.viewDirectionWS = ViewDirWS;
|
||||
|
||||
#ifdef ASE_FOG
|
||||
inputData.fogCoord = InitializeInputDataFog(float4(inputData.positionWS, 1.0), input.positionWSAndFogFactor.w);
|
||||
#endif
|
||||
|
||||
#if defined(_DBUFFER)
|
||||
ApplyDecalToBaseColor(input.positionCS, Color);
|
||||
#endif
|
||||
|
||||
#ifdef ASE_FOG
|
||||
#ifdef TERRAIN_SPLAT_ADDPASS
|
||||
Color.rgb = MixFogColor(Color.rgb, half3(0,0,0), inputData.fogCoord);
|
||||
#else
|
||||
Color.rgb = MixFog(Color.rgb, inputData.fogCoord);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined( ASE_DEPTH_WRITE_ON )
|
||||
outputDepth = DeviceDepth;
|
||||
#endif
|
||||
|
||||
#ifdef _WRITE_RENDERING_LAYERS
|
||||
uint renderingLayers = GetMeshRenderingLayer();
|
||||
outRenderingLayers = float4( EncodeMeshRenderingLayer( renderingLayers ), 0, 0, 0 );
|
||||
#endif
|
||||
|
||||
#if defined( ASE_OPAQUE_KEEP_ALPHA )
|
||||
return half4( Color, Alpha );
|
||||
#else
|
||||
return half4( Color, OutputAlpha( Alpha, isTransparent ) );
|
||||
#endif
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
FallBack "Hidden/Shader Graph/FallbackError"
|
||||
|
||||
Fallback Off
|
||||
}
|
||||
/*ASEBEGIN
|
||||
Version=19904
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;171;-916.5027,-3284.194;Inherit;False;3002.723;874.6797;黑白闪;35;342;341;541;540;546;545;347;544;346;344;166;345;151;348;350;349;149;260;170;289;543;343;161;337;336;338;164;160;333;355;360;352;335;334;567;黑白闪;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;568;-919.2828,-2372.078;Inherit;False;2027.969;382.841;Radial Used;15;583;582;581;580;579;578;577;576;575;574;573;572;571;570;569;程序遮罩;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;360;-576.6658,-2955.822;Inherit;False;GlobalCenter;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;569;-867.8707,-2136.568;Inherit;False;360;GlobalCenter;1;0;OBJECT;;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;570;-887.3522,-2266.83;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;571;-640.8845,-2266.521;Inherit;False;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;572;-695.8845,-2135.522;Inherit;False;Constant;_CountMaskValue;CountMaskValue;42;0;Create;True;0;0;0;False;0;False;2;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;584;-928.6458,-1949.729;Inherit;False;2008.152;366.3953;MaskTex;6;598;597;596;595;585;599;遮罩贴图;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;573;-489.8845,-2266.521;Inherit;True;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;585;-342.278,-1904.838;Inherit;False;774;266;贴图旋转;4;594;592;588;586;;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;574;-274.9206,-2275.693;Inherit;True;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;586;-329.278,-1797.838;Inherit;False;Property;_MaskTexRotator;遮罩贴图旋转;14;1;[IntRange];Create;False;0;0;0;False;0;False;0;0;0;360;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.ComponentMaskNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;575;-64.91965,-2319.693;Inherit;False;True;False;True;True;1;0;FLOAT2;0,0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.ComponentMaskNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;576;-63.91965,-2230.693;Inherit;False;False;True;True;True;1;0;FLOAT2;0,0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.PiNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;588;-64.27816,-1795.838;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SimpleAddOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;577;150.0805,-2294.693;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;578;74.38415,-2079.375;Inherit;False;Property;_ProgramMaskRange;程序遮罩范围;16;0;Create;False;0;0;0;False;0;False;0.2667015;0.31;0;1.5;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;599;-624.5359,-1867.259;Inherit;False;0;596;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.SimpleDivideOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;592;107.7219,-1791.838;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;180;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.Vector4Node, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;334;-883.271,-2864.905;Inherit;False;Property;_GlobalPolarCenter;全局极坐标原点与偏移;11;0;Create;False;0;0;0;False;0;False;0.5,0.5,1,1;0.5,0.5,1,1;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;579;375.0836,-2295.693;Inherit;True;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RotatorNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;594;256.146,-1866.217;Inherit;False;3;0;FLOAT2;0,0;False;1;FLOAT2;0.5,0.5;False;2;FLOAT;1;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.DynamicAppendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;335;-673.271,-2840.905;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;336;-463.2711,-2715.905;Inherit;False;Property;_RadialUSpeed;放射U速度;7;0;Create;False;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;337;-463.2711,-2636.906;Inherit;False;Property;_RadialVSpeed;放射V速度;8;0;Create;False;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SaturateNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;580;575.084,-2295.693;Inherit;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;583;470.3536,-2080.182;Inherit;False;Property;_ProgramMaskSoft;程序遮罩过渡;15;1;[Header];Create;False;1;ProgramMask;0;0;False;0;False;3.166892;1.39;0;10;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;595;541.3589,-1699.252;Inherit;False;Property;_MaskTexP;遮罩贴图通道;13;1;[Enum];Create;False;0;2;R;0;A;1;0;True;0;False;0;1;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;596;445.471,-1889.86;Inherit;True;Property;_MaskTex;遮罩贴图;12;1;[Header];Create;False;1;Mask;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.FunctionNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;160;-378.966,-2866.909;Inherit;False;Polar Coordinates;-1;;10;7dab8e02884cf104ebefaa2e788e4162;0;4;1;FLOAT2;0,0;False;2;FLOAT2;0.5,0.5;False;3;FLOAT;1;False;4;FLOAT;1;False;3;FLOAT2;0;FLOAT;55;FLOAT;56
|
||||
Node;AmplifyShaderEditor.DynamicAppendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;338;-317.2712,-2697.905;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.PowerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;581;755.2533,-2269.509;Inherit;False;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;597;722.3591,-1792.252;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.PannerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;164;-144.7412,-2814.975;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;582;900.3003,-2267.977;Inherit;False;GlobalMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;598;861.982,-1894.602;Inherit;False;MaskTex;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;399;1152.94,-2337.204;Inherit;False;503.269;360.4647;Comment;6;420;412;409;410;321;408;自定义顶点流;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;342;133.4335,-2641.848;Inherit;False;InstancedProperty;_RadiusMaskP;放射贴图通道;6;1;[Enum];Create;False;0;2;R;0;A;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;541;323.5914,-2509.554;Inherit;False;Property;_RadialMaskMode;放射线遮罩方式;10;1;[Enum];Create;False;0;2;Program;0;Texture;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;341;326.3533,-2665.558;Inherit;False;582;GlobalMask;1;0;OBJECT;;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;543;324.2115,-2588.654;Inherit;False;598;MaskTex;1;0;OBJECT;;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;161;36.04435,-2838.676;Inherit;True;Property;_RadialTex;放射线贴图;5;1;[NoScaleOffset];Create;False;0;0;0;False;0;False;-1;None;7bf48800b85943741b2498d093b8ed68;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;408;1165.94,-2231.204;Inherit;False;1;-1;4;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;343;328.5115,-2791.062;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;540;508.4726,-2649.589;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.ScreenPosInputsNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;352;-844.1348,-3060.719;Float;True;0;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.ComponentMaskNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;333;-462.4201,-3060.659;Inherit;False;True;True;False;False;1;0;FLOAT4;0,0,0,0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;289;657.5236,-2791.542;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;170;39.17722,-2918.082;Inherit;False;Property;_RadialPower;放射强度;9;0;Create;False;0;0;0;False;0;False;0;0.496;0;1;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;410;1419.94,-2292.204;Inherit;False;custom1x;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;166;671.4506,-3033.782;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;347;891.1317,-3072.723;Inherit;False;Property;_BlackNWhite;黑白闪切换;4;0;Create;False;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;545;982.2648,-2999.311;Inherit;False;410;custom1x;1;0;OBJECT;;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;546;987.2648,-2923.311;Inherit;False;Property;_BlackNWhiteSwitch;黑白闪切换方式;3;1;[Enum];Create;False;0;2;Material;0;Custom1x;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;567;-244.7476,-3084.449;Inherit;True;Global;_CameraColorAttachmentA;_CameraColorAttachmentA;12;1;[HideInInspector];Create;True;0;0;0;True;0;False;-1;None;;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.OneMinusNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;345;926.5298,-3146.142;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SimpleAddOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;344;790.1846,-3217.294;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;544;1168.265,-3073.311;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;151;1044.735,-2782.385;Inherit;False;Property;_BlackNWhiteSoft;黑白过渡;2;0;Create;False;0;0;0;False;0;False;0.51;0.218;0.51;1;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.OneMinusNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;348;1321.506,-2831.864;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;346;1357.186,-3219.518;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SmoothstepOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;149;1507.76,-2831.066;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.ColorNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;349;1513.463,-3036.55;Inherit;False;Property;_FlashColor;黑白闪颜色;1;2;[HDR];[Header];Create;False;1;BlackNWhite;0;0;False;0;False;1,1,1,0;0,0,0,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;350;1726.037,-2908.192;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;421;2148.51,-2997.519;Inherit;False;176;139;Comment;1;425;设置;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;355;-588.033,-3138.768;Inherit;False;GrabScreen;-1;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;425;2170.688,-2943.407;Inherit;False;Property;_CullingMode;剔除模式;0;2;[Header];[Enum];Create;False;1;Setting;0;1;UnityEngine.Rendering.CullMode;True;0;False;0;2;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;260;1867.536,-2907.683;Inherit;False;heibai;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
|
||||
Node;AmplifyShaderEditor.VertexColorNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;533;2111.145,-2645.854;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;409;1418.94,-2218.204;Inherit;False;custom1y;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;412;1420.94,-2142.204;Inherit;False;custom1z;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;420;1420.94,-2065.203;Inherit;False;custom1w;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;323;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ShadowCaster;0;2;ShadowCaster;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=ShadowCaster;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;324;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthOnly;0;3;DepthOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;True;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;False;False;True;1;LightMode=DepthOnly;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;325;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Meta;0;4;Meta;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;326;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Universal2D;0;5;Universal2D;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=Universal2D;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;327;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;SceneSelectionPass;0;6;SceneSelectionPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=SceneSelectionPass;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;328;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ScenePickingPass;0;7;ScenePickingPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Picking;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;329;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormals;0;8;DepthNormals;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;330;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormalsOnly;0;9;DepthNormalsOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;True;9;d3d11;metal;vulkan;xboxone;xboxseries;playstation;ps4;ps5;switch;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;321;1483.446,-2063.247;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ExtraPrePass;0;0;ExtraPrePass;5;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;0;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;322;2394.995,-2809.869;Float;False;True;-1;3;;0;13;Soung/Post/ScreenFX_BlackNWhite;2992e84f91cbeb14eab234972e07ea9d;True;Forward;0;1;Forward;9;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;True;True;0;True;_CullingMode;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;True;True;2;5;False;;10;False;;0;1;False;;10;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;True;True;2;False;;True;3;False;;True;False;0;False;;0;False;;True;1;LightMode=Grab;False;False;0;;0;0;Standard;27;Surface;1;638786581663575459; Keep Alpha;0;0; Blend;0;0;Two Sided;1;0;Alpha Clipping;0;638786581677440187; Use Shadow Threshold;0;0;Forward Only;0;0;Cast Shadows;0;638786581681993037;Receive Shadows;0;638786581685379101;Receive SSAO;0;638977575662046066;GPU Instancing;1;638977575664855854;LOD CrossFade;0;638786581693938962;Built-in Fog;0;638786581691455043;Meta Pass;0;0;Extra Pre Pass;0;0;Tessellation;0;0; Phong;0;0; Strength;0.5,False,;0; Type;0;0; Tess;16,False,;0; Min;10,False,;0; Max;25,False,;0; Edge Length;16,False,;0; Max Displacement;25,False,;0;Write Depth;0;0; Early Z;0;0;Vertex Position;1;0;0;10;False;True;False;False;False;False;False;False;False;False;False;;False;0
|
||||
WireConnection;360;0;335;0
|
||||
WireConnection;571;0;570;0
|
||||
WireConnection;571;1;569;0
|
||||
WireConnection;573;0;571;0
|
||||
WireConnection;573;1;572;0
|
||||
WireConnection;574;0;573;0
|
||||
WireConnection;574;1;573;0
|
||||
WireConnection;575;0;574;0
|
||||
WireConnection;576;0;574;0
|
||||
WireConnection;588;0;586;0
|
||||
WireConnection;577;0;575;0
|
||||
WireConnection;577;1;576;0
|
||||
WireConnection;592;0;588;0
|
||||
WireConnection;579;0;577;0
|
||||
WireConnection;579;1;578;0
|
||||
WireConnection;594;0;599;0
|
||||
WireConnection;594;2;592;0
|
||||
WireConnection;335;0;334;1
|
||||
WireConnection;335;1;334;2
|
||||
WireConnection;580;0;579;0
|
||||
WireConnection;596;1;594;0
|
||||
WireConnection;160;1;333;0
|
||||
WireConnection;160;2;335;0
|
||||
WireConnection;160;3;334;3
|
||||
WireConnection;160;4;334;4
|
||||
WireConnection;338;0;336;0
|
||||
WireConnection;338;1;337;0
|
||||
WireConnection;581;0;580;0
|
||||
WireConnection;581;1;583;0
|
||||
WireConnection;597;0;596;1
|
||||
WireConnection;597;1;596;4
|
||||
WireConnection;597;2;595;0
|
||||
WireConnection;164;0;160;0
|
||||
WireConnection;164;2;338;0
|
||||
WireConnection;582;0;581;0
|
||||
WireConnection;598;0;597;0
|
||||
WireConnection;161;1;164;0
|
||||
WireConnection;343;0;161;1
|
||||
WireConnection;343;1;161;4
|
||||
WireConnection;343;2;342;0
|
||||
WireConnection;540;0;341;0
|
||||
WireConnection;540;1;543;0
|
||||
WireConnection;540;2;541;0
|
||||
WireConnection;333;0;352;0
|
||||
WireConnection;289;0;343;0
|
||||
WireConnection;289;1;540;0
|
||||
WireConnection;410;0;408;1
|
||||
WireConnection;166;0;567;1
|
||||
WireConnection;166;1;289;0
|
||||
WireConnection;166;2;170;0
|
||||
WireConnection;567;1;333;0
|
||||
WireConnection;345;0;344;0
|
||||
WireConnection;344;0;567;1
|
||||
WireConnection;344;1;166;0
|
||||
WireConnection;544;0;347;0
|
||||
WireConnection;544;1;545;0
|
||||
WireConnection;544;2;546;0
|
||||
WireConnection;348;0;151;0
|
||||
WireConnection;346;0;344;0
|
||||
WireConnection;346;1;345;0
|
||||
WireConnection;346;2;544;0
|
||||
WireConnection;149;0;346;0
|
||||
WireConnection;149;1;348;0
|
||||
WireConnection;149;2;151;0
|
||||
WireConnection;350;0;349;0
|
||||
WireConnection;350;1;149;0
|
||||
WireConnection;355;0;352;0
|
||||
WireConnection;260;0;350;0
|
||||
WireConnection;409;0;408;2
|
||||
WireConnection;412;0;408;3
|
||||
WireConnection;420;0;408;4
|
||||
WireConnection;322;2;260;0
|
||||
WireConnection;322;3;533;4
|
||||
ASEEND*/
|
||||
//CHKSM=EEDC42489F81BC14B0E44F105B6F9A3250FA41A7
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 28c0384ad41923b4f909eecaf8845fc4
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,745 @@
|
||||
// Made with Amplify Shader Editor v1.9.9.4
|
||||
// Available at the Unity Asset Store - http://u3d.as/y3X
|
||||
Shader "Soung/Post/ScreenFX_HEAT"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
|
||||
[HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
|
||||
[Header(Setting)][Enum(UnityEngine.Rendering.CullMode)] _CullingMode( "剔除模式", Float ) = 0
|
||||
[Header(Heat)] _HeatTex( "热扭曲贴图", 2D ) = "white" {}
|
||||
_HeatPower( "热扭曲强度", Range( 0, 1 ) ) = 0.01
|
||||
[Enum(Material,0,Custom1y,1)] _HeatPowerMode( "热扭曲强度模式", Float ) = 0
|
||||
[Enum(Local,0,Polar,1)] _HeatUVMode( "热扭曲UV模式", Float ) = 0
|
||||
_HeatPolarSettings( "热扭曲极坐标原点与偏移", Vector ) = ( 0.5, 0.5, 1, 1 )
|
||||
_HeatUSpeed( "热扭曲U速度", Float ) = 0
|
||||
_HeatVSpeed( "热扭曲V速度", Float ) = 0
|
||||
[Enum(Program,0,Texture,1)] _HeatMaskMode( "热扭曲遮罩模式", Float ) = 0
|
||||
[Header(ProgramMask)] _ProgramMaskSoft( "程序遮罩过渡", Range( 0, 10 ) ) = 3
|
||||
_ProgramMaskRange( "程序遮罩范围", Range( 0, 1.5 ) ) = 0.1
|
||||
_ProgramMaskHori( "程序遮罩水平方向", Range( -0.5, 1.5 ) ) = 0.5
|
||||
_ProgramMaskVerz( "程序遮罩垂直方向", Range( -0.5, 1.5 ) ) = 0.5
|
||||
[Enum(OFF,0,ON,1)] _OneMinusProGMask( "反向程序遮罩", Float ) = 0
|
||||
[Header(Mask)] _MaskTex( "遮罩贴图", 2D ) = "white" {}
|
||||
[Enum(R,0,A,1)] _MaskTexP( "遮罩贴图通道", Float ) = 0
|
||||
[IntRange] _MaskTexRotator( "遮罩贴图旋转", Range( 0, 360 ) ) = 0
|
||||
|
||||
|
||||
//_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5
|
||||
//_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16
|
||||
//_TessMin( "Tess Min Distance", Float ) = 10
|
||||
//_TessMax( "Tess Max Distance", Float ) = 25
|
||||
//_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16
|
||||
//_TessMaxDisp( "Tess Max Displacement", Float ) = 25
|
||||
|
||||
[HideInInspector] _QueueOffset("_QueueOffset", Float) = 0
|
||||
[HideInInspector] _QueueControl("_QueueControl", Float) = -1
|
||||
|
||||
[HideInInspector][NoScaleOffset] unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
|
||||
[HideInInspector][NoScaleOffset] unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
|
||||
[HideInInspector][NoScaleOffset] unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
|
||||
|
||||
[HideInInspector][ToggleOff] _ReceiveShadows("Receive Shadows", Float) = 0
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
LOD 0
|
||||
|
||||
|
||||
|
||||
Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" "UniversalMaterialType"="Unlit" }
|
||||
|
||||
Cull [_CullingMode]
|
||||
AlphaToMask Off
|
||||
|
||||
|
||||
|
||||
HLSLINCLUDE
|
||||
#pragma target 4.5
|
||||
#pragma prefer_hlslcc gles
|
||||
// ensure rendering platforms toggle list is visible
|
||||
|
||||
#if ( SHADER_TARGET > 35 ) && defined( SHADER_API_GLES3 )
|
||||
#error For WebGL2/GLES3, please set your shader target to 3.5 via SubShader options. URP shaders in ASE use target 4.5 by default.
|
||||
#endif
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
|
||||
|
||||
#ifndef ASE_TESS_FUNCS
|
||||
#define ASE_TESS_FUNCS
|
||||
float4 FixedTess( float tessValue )
|
||||
{
|
||||
return tessValue;
|
||||
}
|
||||
|
||||
float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos )
|
||||
{
|
||||
float3 wpos = mul(o2w,vertex).xyz;
|
||||
float dist = distance (wpos, cameraPos);
|
||||
float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess;
|
||||
return f;
|
||||
}
|
||||
|
||||
float4 CalcTriEdgeTessFactors (float3 triVertexFactors)
|
||||
{
|
||||
float4 tess;
|
||||
tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z);
|
||||
tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z);
|
||||
tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y);
|
||||
tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f;
|
||||
return tess;
|
||||
}
|
||||
|
||||
float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams )
|
||||
{
|
||||
float dist = distance (0.5 * (wpos0+wpos1), cameraPos);
|
||||
float len = distance(wpos0, wpos1);
|
||||
float f = max(len * scParams.y / (edgeLen * dist), 1.0);
|
||||
return f;
|
||||
}
|
||||
|
||||
float DistanceFromPlane (float3 pos, float4 plane)
|
||||
{
|
||||
float d = dot (float4(pos,1.0f), plane);
|
||||
return d;
|
||||
}
|
||||
|
||||
bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] )
|
||||
{
|
||||
float4 planeTest;
|
||||
planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f );
|
||||
planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f );
|
||||
planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f );
|
||||
planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
|
||||
(( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f );
|
||||
return !all (planeTest);
|
||||
}
|
||||
|
||||
float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos )
|
||||
{
|
||||
float3 f;
|
||||
f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos);
|
||||
f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos);
|
||||
f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos);
|
||||
|
||||
return CalcTriEdgeTessFactors (f);
|
||||
}
|
||||
|
||||
float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams )
|
||||
{
|
||||
float3 pos0 = mul(o2w,v0).xyz;
|
||||
float3 pos1 = mul(o2w,v1).xyz;
|
||||
float3 pos2 = mul(o2w,v2).xyz;
|
||||
float4 tess;
|
||||
tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
|
||||
tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
|
||||
tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
|
||||
tess.w = (tess.x + tess.y + tess.z) / 3.0f;
|
||||
return tess;
|
||||
}
|
||||
|
||||
float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] )
|
||||
{
|
||||
float3 pos0 = mul(o2w,v0).xyz;
|
||||
float3 pos1 = mul(o2w,v1).xyz;
|
||||
float3 pos2 = mul(o2w,v2).xyz;
|
||||
float4 tess;
|
||||
|
||||
if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes))
|
||||
{
|
||||
tess = 0.0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
|
||||
tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
|
||||
tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
|
||||
tess.w = (tess.x + tess.y + tess.z) / 3.0f;
|
||||
}
|
||||
return tess;
|
||||
}
|
||||
#endif //ASE_TESS_FUNCS
|
||||
ENDHLSL
|
||||
|
||||
|
||||
Pass
|
||||
{
|
||||
|
||||
Name "Forward"
|
||||
Tags { "LightMode"="Grab" }
|
||||
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
ZWrite Off
|
||||
ZTest LEqual
|
||||
Offset 0,0
|
||||
ColorMask RGBA
|
||||
|
||||
|
||||
|
||||
HLSLPROGRAM
|
||||
|
||||
|
||||
#define _SURFACE_TYPE_TRANSPARENT 1
|
||||
#pragma multi_compile_local _RECEIVE_SHADOWS_OFF
|
||||
#pragma multi_compile_instancing
|
||||
#pragma instancing_options renderinglayer
|
||||
#define ASE_VERSION 19904
|
||||
#define ASE_SRP_VERSION 140011
|
||||
|
||||
|
||||
|
||||
#pragma multi_compile _ DOTS_INSTANCING_ON
|
||||
|
||||
|
||||
#pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
|
||||
|
||||
|
||||
#pragma multi_compile_fragment _ _WRITE_RENDERING_LAYERS
|
||||
|
||||
|
||||
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
|
||||
#pragma multi_compile _ LIGHTMAP_ON
|
||||
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
|
||||
#pragma multi_compile_fragment _ DEBUG_DISPLAY
|
||||
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#define SHADERPASS SHADERPASS_UNLIT
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
|
||||
|
||||
|
||||
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
|
||||
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"
|
||||
|
||||
#if defined(LOD_FADE_CROSSFADE)
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
|
||||
#endif
|
||||
|
||||
#define ASE_NEEDS_FRAG_SCREEN_POSITION
|
||||
#define ASE_NEEDS_TEXTURE_COORDINATES0
|
||||
#define ASE_NEEDS_TEXTURE_COORDINATES1
|
||||
#define ASE_NEEDS_FRAG_TEXTURE_COORDINATES0
|
||||
|
||||
|
||||
#if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
|
||||
#define ASE_SV_DEPTH SV_DepthLessEqual
|
||||
#define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid
|
||||
#else
|
||||
#define ASE_SV_DEPTH SV_Depth
|
||||
#define ASE_SV_POSITION_QUALIFIERS
|
||||
#endif
|
||||
|
||||
struct Attributes
|
||||
{
|
||||
float4 positionOS : POSITION;
|
||||
half3 normalOS : NORMAL;
|
||||
float4 ase_texcoord : TEXCOORD0;
|
||||
float4 ase_texcoord1 : TEXCOORD1;
|
||||
float4 ase_color : COLOR;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct PackedVaryings
|
||||
{
|
||||
ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION;
|
||||
float4 positionWSAndFogFactor : TEXCOORD0;
|
||||
half3 normalWS : TEXCOORD1;
|
||||
float4 ase_texcoord2 : TEXCOORD2;
|
||||
float4 ase_texcoord3 : TEXCOORD3;
|
||||
float4 ase_color : COLOR;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
CBUFFER_START(UnityPerMaterial)
|
||||
float4 _MaskTex_ST;
|
||||
float4 _HeatTex_ST;
|
||||
float4 _HeatPolarSettings;
|
||||
float _CullingMode;
|
||||
float _MaskTexRotator;
|
||||
float _ProgramMaskSoft;
|
||||
float _ProgramMaskRange;
|
||||
float _OneMinusProGMask;
|
||||
float _ProgramMaskVerz;
|
||||
float _ProgramMaskHori;
|
||||
float _HeatPowerMode;
|
||||
float _HeatPower;
|
||||
float _HeatUVMode;
|
||||
float _HeatVSpeed;
|
||||
float _HeatUSpeed;
|
||||
float _MaskTexP;
|
||||
float _HeatMaskMode;
|
||||
#ifdef ASE_TESSELLATION
|
||||
float _TessPhongStrength;
|
||||
float _TessValue;
|
||||
float _TessMin;
|
||||
float _TessMax;
|
||||
float _TessEdgeLength;
|
||||
float _TessMaxDisp;
|
||||
#endif
|
||||
CBUFFER_END
|
||||
|
||||
sampler2D _CameraColorAttachmentA;
|
||||
sampler2D _HeatTex;
|
||||
sampler2D _MaskTex;
|
||||
|
||||
|
||||
inline float4 ASE_ComputeGrabScreenPos( float4 pos )
|
||||
{
|
||||
#if UNITY_UV_STARTS_AT_TOP
|
||||
float scale = -1.0;
|
||||
#else
|
||||
float scale = 1.0;
|
||||
#endif
|
||||
float4 o = pos;
|
||||
o.y = pos.w * 0.5f;
|
||||
o.y = ( pos.y - o.y ) * _ProjectionParams.x * scale + o.y;
|
||||
return o;
|
||||
}
|
||||
|
||||
|
||||
PackedVaryings VertexFunction( Attributes input )
|
||||
{
|
||||
PackedVaryings output = (PackedVaryings)0;
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||
|
||||
output.ase_texcoord2.xy = input.ase_texcoord.xy;
|
||||
output.ase_texcoord3 = input.ase_texcoord1;
|
||||
output.ase_color = input.ase_color;
|
||||
|
||||
//setting value to unused interpolator channels and avoid initialization warnings
|
||||
output.ase_texcoord2.zw = 0;
|
||||
|
||||
#ifdef ASE_ABSOLUTE_VERTEX_POS
|
||||
float3 defaultVertexValue = input.positionOS.xyz;
|
||||
#else
|
||||
float3 defaultVertexValue = float3(0, 0, 0);
|
||||
#endif
|
||||
|
||||
float3 vertexValue = defaultVertexValue;
|
||||
|
||||
#ifdef ASE_ABSOLUTE_VERTEX_POS
|
||||
input.positionOS.xyz = vertexValue;
|
||||
#else
|
||||
input.positionOS.xyz += vertexValue;
|
||||
#endif
|
||||
|
||||
input.normalOS = input.normalOS;
|
||||
|
||||
VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
|
||||
VertexNormalInputs normalInput = GetVertexNormalInputs( input.normalOS );
|
||||
|
||||
float fogFactor = 0;
|
||||
#if defined(ASE_FOG) && !defined(_FOG_FRAGMENT)
|
||||
fogFactor = ComputeFogFactor(vertexInput.positionCS.z);
|
||||
#endif
|
||||
|
||||
output.positionCS = vertexInput.positionCS;
|
||||
output.positionWSAndFogFactor = float4( vertexInput.positionWS, fogFactor );
|
||||
output.normalWS = normalInput.normalWS;
|
||||
return output;
|
||||
}
|
||||
|
||||
#if defined(ASE_TESSELLATION)
|
||||
struct VertexControl
|
||||
{
|
||||
float4 positionOS : INTERNALTESSPOS;
|
||||
half3 normalOS : NORMAL;
|
||||
float4 ase_texcoord : TEXCOORD0;
|
||||
float4 ase_texcoord1 : TEXCOORD1;
|
||||
float4 ase_color : COLOR;
|
||||
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct TessellationFactors
|
||||
{
|
||||
float edge[3] : SV_TessFactor;
|
||||
float inside : SV_InsideTessFactor;
|
||||
};
|
||||
|
||||
VertexControl vert ( Attributes input )
|
||||
{
|
||||
VertexControl output;
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
output.positionOS = input.positionOS;
|
||||
output.normalOS = input.normalOS;
|
||||
output.ase_texcoord = input.ase_texcoord;
|
||||
output.ase_texcoord1 = input.ase_texcoord1;
|
||||
output.ase_color = input.ase_color;
|
||||
return output;
|
||||
}
|
||||
|
||||
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
|
||||
{
|
||||
TessellationFactors output;
|
||||
float4 tf = 1;
|
||||
float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
|
||||
float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
|
||||
#if defined(ASE_FIXED_TESSELLATION)
|
||||
tf = FixedTess( tessValue );
|
||||
#elif defined(ASE_DISTANCE_TESSELLATION)
|
||||
tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
|
||||
#elif defined(ASE_LENGTH_TESSELLATION)
|
||||
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
|
||||
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
|
||||
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
|
||||
#endif
|
||||
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
|
||||
return output;
|
||||
}
|
||||
|
||||
[domain("tri")]
|
||||
[partitioning("fractional_odd")]
|
||||
[outputtopology("triangle_cw")]
|
||||
[patchconstantfunc("TessellationFunction")]
|
||||
[outputcontrolpoints(3)]
|
||||
VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
|
||||
{
|
||||
return patch[id];
|
||||
}
|
||||
|
||||
[domain("tri")]
|
||||
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
|
||||
{
|
||||
Attributes output = (Attributes) 0;
|
||||
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
|
||||
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
|
||||
output.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
|
||||
output.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
|
||||
output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
|
||||
#if defined(ASE_PHONG_TESSELLATION)
|
||||
float3 pp[3];
|
||||
for (int i = 0; i < 3; ++i)
|
||||
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
|
||||
float phongStrength = _TessPhongStrength;
|
||||
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
|
||||
#endif
|
||||
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
|
||||
return VertexFunction(output);
|
||||
}
|
||||
#else
|
||||
PackedVaryings vert ( Attributes input )
|
||||
{
|
||||
return VertexFunction( input );
|
||||
}
|
||||
#endif
|
||||
|
||||
half4 frag ( PackedVaryings input
|
||||
#if defined( ASE_DEPTH_WRITE_ON )
|
||||
,out float outputDepth : ASE_SV_DEPTH
|
||||
#endif
|
||||
#ifdef _WRITE_RENDERING_LAYERS
|
||||
, out float4 outRenderingLayers : SV_Target1
|
||||
#endif
|
||||
) : SV_Target
|
||||
{
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
|
||||
|
||||
#if defined( _SURFACE_TYPE_TRANSPARENT )
|
||||
const bool isTransparent = true;
|
||||
#else
|
||||
const bool isTransparent = false;
|
||||
#endif
|
||||
|
||||
#if defined(LOD_FADE_CROSSFADE)
|
||||
LODFadeCrossFade( input.positionCS );
|
||||
#endif
|
||||
|
||||
#if defined(MAIN_LIGHT_CALCULATE_SHADOWS)
|
||||
float4 shadowCoord = TransformWorldToShadowCoord( input.positionWSAndFogFactor.xyz );
|
||||
#else
|
||||
float4 shadowCoord = float4(0, 0, 0, 0);
|
||||
#endif
|
||||
|
||||
float3 PositionWS = input.positionWSAndFogFactor.xyz;
|
||||
float3 PositionRWS = GetCameraRelativePositionWS( PositionWS );
|
||||
half3 ViewDirWS = GetWorldSpaceNormalizeViewDir( PositionWS );
|
||||
float4 ShadowCoord = shadowCoord;
|
||||
float4 ScreenPosNorm = float4( GetNormalizedScreenSpaceUV( input.positionCS ), input.positionCS.zw );
|
||||
float4 ClipPos = ComputeClipSpacePosition( ScreenPosNorm.xy, input.positionCS.z ) * input.positionCS.w;
|
||||
float4 ScreenPos = ComputeScreenPos( ClipPos );
|
||||
half3 NormalWS = normalize( input.normalWS );
|
||||
|
||||
float4 ase_grabScreenPos = ASE_ComputeGrabScreenPos( ScreenPos );
|
||||
float4 ase_grabScreenPosNorm = ase_grabScreenPos / ase_grabScreenPos.w;
|
||||
float2 appendResult391 = (float2(_HeatUSpeed , _HeatVSpeed));
|
||||
float2 uv_HeatTex = input.ase_texcoord2.xy * _HeatTex_ST.xy + _HeatTex_ST.zw;
|
||||
float2 appendResult382 = (float2(_HeatPolarSettings.x , _HeatPolarSettings.y));
|
||||
float2 temp_output_34_0_g9 = ( uv_HeatTex - appendResult382 );
|
||||
float2 break39_g9 = temp_output_34_0_g9;
|
||||
float2 appendResult50_g9 = (float2(( _HeatPolarSettings.z * ( length( temp_output_34_0_g9 ) * 2.0 ) ) , ( ( atan2( break39_g9.x , break39_g9.y ) * ( 1.0 / TWO_PI ) ) * _HeatPolarSettings.w )));
|
||||
float2 lerpResult387 = lerp( uv_HeatTex , appendResult50_g9 , _HeatUVMode);
|
||||
float2 panner10 = ( 1.0 * _Time.y * appendResult391 + lerpResult387);
|
||||
float4 texCoord408 = input.ase_texcoord3;
|
||||
texCoord408.xy = input.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
|
||||
float custom1y409 = texCoord408.y;
|
||||
float lerpResult555 = lerp( _HeatPower , custom1y409 , _HeatPowerMode);
|
||||
float3 unpack9 = UnpackNormalScale( tex2D( _HeatTex, panner10 ), ( lerpResult555 * 0.1 ) );
|
||||
unpack9.z = lerp( 1, unpack9.z, saturate(( lerpResult555 * 0.1 )) );
|
||||
|
||||
float2 texCoord292 = input.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
|
||||
float2 appendResult574 = (float2(_ProgramMaskHori , _ProgramMaskVerz));
|
||||
float2 temp_output_295_0 = ( ( texCoord292 - appendResult574 ) * float2( 2,2 ) );
|
||||
float2 temp_output_297_0 = ( temp_output_295_0 * temp_output_295_0 );
|
||||
float temp_output_298_0 = ( (temp_output_297_0).x + (temp_output_297_0).y );
|
||||
float lerpResult585 = lerp( temp_output_298_0 , ( 1.0 - temp_output_298_0 ) , _OneMinusProGMask);
|
||||
float GlobalMask340 = saturate( pow( saturate( ( lerpResult585 - _ProgramMaskRange ) ) , _ProgramMaskSoft ) );
|
||||
float2 uv_MaskTex = input.ase_texcoord2.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;
|
||||
float cos437 = cos( ( ( _MaskTexRotator * PI ) / 180.0 ) );
|
||||
float sin437 = sin( ( ( _MaskTexRotator * PI ) / 180.0 ) );
|
||||
float2 rotator437 = mul( uv_MaskTex - float2( 0.5,0.5 ) , float2x2( cos437 , -sin437 , sin437 , cos437 )) + float2( 0.5,0.5 );
|
||||
float4 tex2DNode203 = tex2D( _MaskTex, rotator437 );
|
||||
float lerpResult307 = lerp( tex2DNode203.r , tex2DNode203.a , _MaskTexP);
|
||||
float MaskTexAlpha542 = lerpResult307;
|
||||
float lerpResult552 = lerp( GlobalMask340 , MaskTexAlpha542 , _HeatMaskMode);
|
||||
|
||||
float3 BakedAlbedo = 0;
|
||||
float3 BakedEmission = 0;
|
||||
float3 Color = tex2D( _CameraColorAttachmentA, ( ase_grabScreenPosNorm + float4( unpack9 , 0.0 ) ).xy ).rgb;
|
||||
float Alpha = ( input.ase_color.a * lerpResult552 );
|
||||
float AlphaClipThreshold = 0.5;
|
||||
float AlphaClipThresholdShadow = 0.5;
|
||||
|
||||
#if defined( ASE_DEPTH_WRITE_ON )
|
||||
float DeviceDepth = input.positionCS.z;
|
||||
#endif
|
||||
|
||||
#if defined( _ALPHATEST_ON )
|
||||
AlphaDiscard( Alpha, AlphaClipThreshold );
|
||||
#endif
|
||||
|
||||
#if defined(MAIN_LIGHT_CALCULATE_SHADOWS) && defined(ASE_CHANGES_WORLD_POS)
|
||||
ShadowCoord = TransformWorldToShadowCoord( PositionWS );
|
||||
#endif
|
||||
|
||||
InputData inputData = (InputData)0;
|
||||
inputData.positionWS = PositionWS;
|
||||
inputData.positionCS = float4( input.positionCS.xy, ClipPos.zw / ClipPos.w );
|
||||
inputData.normalizedScreenSpaceUV = ScreenPosNorm.xy;
|
||||
inputData.normalWS = NormalWS;
|
||||
inputData.viewDirectionWS = ViewDirWS;
|
||||
|
||||
#ifdef ASE_FOG
|
||||
inputData.fogCoord = InitializeInputDataFog(float4(inputData.positionWS, 1.0), input.positionWSAndFogFactor.w);
|
||||
#endif
|
||||
|
||||
#if defined(_DBUFFER)
|
||||
ApplyDecalToBaseColor(input.positionCS, Color);
|
||||
#endif
|
||||
|
||||
#ifdef ASE_FOG
|
||||
#ifdef TERRAIN_SPLAT_ADDPASS
|
||||
Color.rgb = MixFogColor(Color.rgb, half3(0,0,0), inputData.fogCoord);
|
||||
#else
|
||||
Color.rgb = MixFog(Color.rgb, inputData.fogCoord);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined( ASE_DEPTH_WRITE_ON )
|
||||
outputDepth = DeviceDepth;
|
||||
#endif
|
||||
|
||||
#ifdef _WRITE_RENDERING_LAYERS
|
||||
uint renderingLayers = GetMeshRenderingLayer();
|
||||
outRenderingLayers = float4( EncodeMeshRenderingLayer( renderingLayers ), 0, 0, 0 );
|
||||
#endif
|
||||
|
||||
#if defined( ASE_OPAQUE_KEEP_ALPHA )
|
||||
return half4( Color, Alpha );
|
||||
#else
|
||||
return half4( Color, OutputAlpha( Alpha, isTransparent ) );
|
||||
#endif
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
FallBack "Hidden/Shader Graph/FallbackError"
|
||||
|
||||
Fallback Off
|
||||
}
|
||||
/*ASEBEGIN
|
||||
Version=19904
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;353;-764.0463,-4464.691;Inherit;False;2714.612;361.7492;ProgramMask;20;340;582;303;304;302;301;585;305;586;584;298;300;299;297;295;293;292;574;580;581;程序遮罩;1,0.7765525,0.4764151,1;0;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;581;-748.4049,-4299.583;Inherit;False;Property;_ProgramMaskVerz;程序遮罩垂直方向;13;0;Create;False;0;0;0;False;0;False;0.5;0.5;-0.5;1.5;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;580;-747.4049,-4373.583;Inherit;False;Property;_ProgramMaskHori;程序遮罩水平方向;12;0;Create;False;0;0;0;False;0;False;0.5;0.5;-0.5;1.5;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.DynamicAppendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;574;-481.9047,-4353.434;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;292;-343.7242,-4380.094;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;293;-105.2568,-4379.785;Inherit;False;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;295;33.74326,-4379.785;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;2,2;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;297;172.7072,-4390.957;Inherit;True;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;439;378.8727,-3173.412;Inherit;False;1396.706;321.6077;MaskTex;9;542;307;306;203;437;434;435;438;567;遮罩贴图;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.ComponentMaskNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;299;367.7079,-4414.957;Inherit;False;True;False;True;True;1;0;FLOAT2;0,0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.ComponentMaskNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;300;368.7079,-4339.957;Inherit;False;False;True;True;True;1;0;FLOAT2;0,0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;438;391.8409,-2976.821;Inherit;False;Property;_MaskTexRotator;遮罩贴图旋转;17;1;[IntRange];Create;False;0;0;0;False;0;False;0;0;0;360;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SimpleAddOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;298;574.7076,-4400.957;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.OneMinusNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;584;785.4196,-4345.908;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;586;786.4543,-4274.516;Inherit;False;Property;_OneMinusProGMask;反向程序遮罩;14;1;[Enum];Create;False;0;2;OFF;0;ON;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;48;-766.2675,-4071.334;Inherit;False;2541.771;870.968;Heat;24;9;13;557;15;555;556;380;10;391;390;389;388;387;381;11;383;382;569;570;566;565;554;533;578;热扭曲;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;399;2016.689,-4241.036;Inherit;False;952;348;Comment;6;420;410;409;412;408;421;自定义顶点流;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.PiNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;435;656.8412,-2976.821;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;305;503.0114,-4189.638;Inherit;False;Property;_ProgramMaskRange;程序遮罩范围;11;0;Create;False;0;0;0;False;0;False;0.1;0.31;0;1.5;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;585;962.3474,-4400.746;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;408;2029.689,-4135.036;Inherit;False;1;-1;4;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.Vector4Node, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;381;-744.8047,-3990.511;Inherit;False;Property;_HeatPolarSettings;热扭曲极坐标原点与偏移;6;0;Create;False;0;0;0;False;0;False;0.5,0.5,1,1;0,0,0,0;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.SimpleDivideOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;434;830.8415,-2976.821;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;180;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;301;1104.173,-4401.122;Inherit;True;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;567;390.986,-3098.749;Inherit;False;0;203;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;409;2282.688,-4122.036;Inherit;False;custom1y;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.DynamicAppendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;382;-486.5915,-3965.313;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.RotatorNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;437;968.2652,-3100.201;Inherit;False;3;0;FLOAT2;0,0;False;1;FLOAT2;0.5,0.5;False;2;FLOAT;1;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.SaturateNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;302;1302.243,-4402.157;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;304;1100.443,-4184.609;Inherit;False;Property;_ProgramMaskSoft;程序遮罩过渡;10;1;[Header];Create;False;1;ProgramMask;0;0;False;0;False;3;1.39;0;10;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;11;-739.6094,-3813.047;Inherit;False;0;9;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.FunctionNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;383;-322.9406,-3966.844;Inherit;False;Polar Coordinates;-1;;9;7dab8e02884cf104ebefaa2e788e4162;0;4;1;FLOAT2;0,0;False;2;FLOAT2;0.5,0.5;False;3;FLOAT;1;False;4;FLOAT;1;False;3;FLOAT2;0;FLOAT;55;FLOAT;56
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;388;-288.8254,-3816.856;Inherit;False;Property;_HeatUVMode;热扭曲UV模式;5;1;[Enum];Create;False;0;2;Local;0;Polar;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;389;-419.8255,-3737.856;Inherit;False;Property;_HeatUSpeed;热扭曲U速度;7;0;Create;False;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;390;-418.8255,-3663.856;Inherit;False;Property;_HeatVSpeed;热扭曲V速度;8;0;Create;False;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;15;-743.5643,-3621.583;Inherit;False;Property;_HeatPower;热扭曲强度;3;0;Create;False;0;0;0;False;0;False;0.01;0.02;0;1;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;306;1249.079,-2933.336;Inherit;False;Property;_MaskTexP;遮罩贴图通道;16;1;[Enum];Create;False;0;2;R;0;A;1;0;True;0;False;0;1;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.PowerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;303;1443.412,-4401.973;Inherit;False;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;556;-643.8529,-3541.273;Inherit;False;409;custom1y;1;0;OBJECT;;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;557;-643.8529,-3469.273;Inherit;False;Property;_HeatPowerMode;热扭曲强度模式;4;1;[Enum];Create;False;0;2;Material;0;Custom1y;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;203;1147.191,-3123.943;Inherit;True;Property;_MaskTex;遮罩贴图;15;1;[Header];Create;False;1;Mask;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;555;-462.8527,-3565.273;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.DynamicAppendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;391;-233.8251,-3723.856;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;387;-97.82513,-3865.856;Inherit;False;3;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;307;1424.079,-3027.336;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SaturateNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;582;1580.529,-4401.633;Inherit;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;380;-642.3884,-3395.762;Inherit;False;Constant;_HeatPowerLow;HeatPowerLow;34;0;Create;True;0;0;0;False;0;False;0.1;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;13;-313.0738,-3566.499;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.PannerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;10;56.93385,-3865.935;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;554;-149.6902,-3486.481;Inherit;False;389.5959;267.2759;HeatMask;4;553;552;550;551;热扭曲遮罩;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;542;1562.401,-3027.285;Inherit;False;MaskTexAlpha;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;340;1739.913,-4400.405;Inherit;False;GlobalMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;553;-124.0126,-3297.177;Inherit;False;Property;_HeatMaskMode;热扭曲遮罩模式;9;1;[Enum];Create;False;0;2;Program;0;Texture;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;551;-124.8864,-3443.989;Inherit;False;340;GlobalMask;1;0;OBJECT;;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;550;-122.8423,-3370.913;Inherit;False;542;MaskTexAlpha;1;0;OBJECT;;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;9;267.0942,-3615.99;Inherit;True;Property;_HeatTex;热扭曲贴图;2;1;[Header];Create;False;1;Heat;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;True;Object;-1;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.GrabScreenPosition, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;569;1076.786,-3826.471;Inherit;False;0;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;552;90.89442,-3443.391;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;421;2504.372,-4050.815;Inherit;False;176;139;Comment;1;425;设置;1,1,1,1;0;0
|
||||
Node;AmplifyShaderEditor.VertexColorNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;533;1400.1,-3575.899;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||||
Node;AmplifyShaderEditor.SimpleAddOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;570;1320.638,-3827.063;Inherit;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT4;0
|
||||
Node;AmplifyShaderEditor.TexturePropertyNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;565;1163.531,-4023.782;Inherit;True;Global;_CameraColorAttachmentA;_CameraColorAttachmentA;0;0;Create;True;0;0;0;True;0;False;None;;False;white;Auto;Texture2D;False;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;412;2284.688,-4046.036;Inherit;False;custom1z;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;425;2526.55,-3996.702;Inherit;False;Property;_CullingMode;剔除模式;1;2;[Header];[Enum];Create;False;1;Setting;0;1;UnityEngine.Rendering.CullMode;True;0;False;0;2;0;0;0;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;420;2284.688,-3969.036;Inherit;False;custom1w;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;410;2283.688,-4196.036;Inherit;False;custom1x;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;578;1580.374,-3466.606;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||||
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;566;1457.357,-4023.962;Inherit;True;Property;_TextureSample0;Texture Sample 0;57;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;323;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ShadowCaster;0;2;ShadowCaster;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=ShadowCaster;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;324;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthOnly;0;3;DepthOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;True;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;False;False;True;1;LightMode=DepthOnly;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;325;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Meta;0;4;Meta;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;326;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Universal2D;0;5;Universal2D;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=Universal2D;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;327;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;SceneSelectionPass;0;6;SceneSelectionPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=SceneSelectionPass;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;328;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ScenePickingPass;0;7;ScenePickingPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Picking;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;329;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormals;0;8;DepthNormals;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;330;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormalsOnly;0;9;DepthNormalsOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;True;9;d3d11;metal;vulkan;xboxone;xboxseries;playstation;ps4;ps5;switch;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;321;1483.446,-2063.247;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ExtraPrePass;0;0;ExtraPrePass;5;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;0;False;False;0;;0;0;Standard;0;False;0
|
||||
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;322;1807.883,-4022.766;Float;False;True;-1;3;;0;13;Soung/Post/ScreenFX_HEAT;2992e84f91cbeb14eab234972e07ea9d;True;Forward;0;1;Forward;9;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;True;True;0;True;_CullingMode;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;True;True;2;5;False;;10;False;;0;1;False;;10;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;True;True;2;False;;True;3;False;;True;False;0;False;;0;False;;True;1;LightMode=Grab;False;False;0;;0;0;Standard;27;Surface;1;638786581663575459; Keep Alpha;0;0; Blend;0;0;Two Sided;1;0;Alpha Clipping;0;638786581677440187; Use Shadow Threshold;0;0;Forward Only;0;0;Cast Shadows;0;638786581681993037;Receive Shadows;0;638786581685379101;Receive SSAO;0;638977575662046066;GPU Instancing;1;638977575664855854;LOD CrossFade;0;638786581693938962;Built-in Fog;0;638786581691455043;Meta Pass;0;0;Extra Pre Pass;0;0;Tessellation;0;0; Phong;0;0; Strength;0.5,False,;0; Type;0;0; Tess;16,False,;0; Min;10,False,;0; Max;25,False,;0; Edge Length;16,False,;0; Max Displacement;25,False,;0;Write Depth;0;0; Early Z;0;0;Vertex Position;1;0;0;10;False;True;False;False;False;False;False;False;False;False;False;;False;0
|
||||
WireConnection;574;0;580;0
|
||||
WireConnection;574;1;581;0
|
||||
WireConnection;293;0;292;0
|
||||
WireConnection;293;1;574;0
|
||||
WireConnection;295;0;293;0
|
||||
WireConnection;297;0;295;0
|
||||
WireConnection;297;1;295;0
|
||||
WireConnection;299;0;297;0
|
||||
WireConnection;300;0;297;0
|
||||
WireConnection;298;0;299;0
|
||||
WireConnection;298;1;300;0
|
||||
WireConnection;584;0;298;0
|
||||
WireConnection;435;0;438;0
|
||||
WireConnection;585;0;298;0
|
||||
WireConnection;585;1;584;0
|
||||
WireConnection;585;2;586;0
|
||||
WireConnection;434;0;435;0
|
||||
WireConnection;301;0;585;0
|
||||
WireConnection;301;1;305;0
|
||||
WireConnection;409;0;408;2
|
||||
WireConnection;382;0;381;1
|
||||
WireConnection;382;1;381;2
|
||||
WireConnection;437;0;567;0
|
||||
WireConnection;437;2;434;0
|
||||
WireConnection;302;0;301;0
|
||||
WireConnection;383;1;11;0
|
||||
WireConnection;383;2;382;0
|
||||
WireConnection;383;3;381;3
|
||||
WireConnection;383;4;381;4
|
||||
WireConnection;303;0;302;0
|
||||
WireConnection;303;1;304;0
|
||||
WireConnection;203;1;437;0
|
||||
WireConnection;555;0;15;0
|
||||
WireConnection;555;1;556;0
|
||||
WireConnection;555;2;557;0
|
||||
WireConnection;391;0;389;0
|
||||
WireConnection;391;1;390;0
|
||||
WireConnection;387;0;11;0
|
||||
WireConnection;387;1;383;0
|
||||
WireConnection;387;2;388;0
|
||||
WireConnection;307;0;203;1
|
||||
WireConnection;307;1;203;4
|
||||
WireConnection;307;2;306;0
|
||||
WireConnection;582;0;303;0
|
||||
WireConnection;13;0;555;0
|
||||
WireConnection;13;1;380;0
|
||||
WireConnection;10;0;387;0
|
||||
WireConnection;10;2;391;0
|
||||
WireConnection;542;0;307;0
|
||||
WireConnection;340;0;582;0
|
||||
WireConnection;9;1;10;0
|
||||
WireConnection;9;5;13;0
|
||||
WireConnection;552;0;551;0
|
||||
WireConnection;552;1;550;0
|
||||
WireConnection;552;2;553;0
|
||||
WireConnection;570;0;569;0
|
||||
WireConnection;570;1;9;0
|
||||
WireConnection;412;0;408;3
|
||||
WireConnection;420;0;408;4
|
||||
WireConnection;410;0;408;1
|
||||
WireConnection;578;0;533;4
|
||||
WireConnection;578;1;552;0
|
||||
WireConnection;566;0;565;0
|
||||
WireConnection;566;1;570;0
|
||||
WireConnection;322;2;566;0
|
||||
WireConnection;322;3;578;0
|
||||
ASEEND*/
|
||||
//CHKSM=61CE978378EF7BF00C2BDD77190E171BE8310C91
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 87151f691fe7ec84bbb409e461de5e24
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user