您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
19155 行
970 KiB
19155 行
970 KiB
%YAML 1.1
|
|
%TAG !u! tag:unity3d.com,2011:
|
|
--- !u!114 &114076616438245156
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 1
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 7d4c867f6b72b714dbb5fd1780afe208, type: 3}
|
|
m_Name: MainMenu
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661614956}
|
|
- {fileID: 8926484042661614961}
|
|
- {fileID: 8926484042661614989}
|
|
- {fileID: 8926484042661615005}
|
|
- {fileID: 8926484042661615787}
|
|
- {fileID: 8926484042661615809}
|
|
- {fileID: 8926484042661615815}
|
|
- {fileID: 8926484042661615842}
|
|
- {fileID: 8926484042661615872}
|
|
- {fileID: 8926484042661615878}
|
|
- {fileID: 8926484042661615882}
|
|
- {fileID: 8926484042661617116}
|
|
- {fileID: 8926484042661617384}
|
|
- {fileID: 8926484042661617432}
|
|
- {fileID: 8926484042661617443}
|
|
- {fileID: 8926484042661617446}
|
|
- {fileID: 8926484042661617471}
|
|
- {fileID: 8926484042661617473}
|
|
- {fileID: 8926484042661617495}
|
|
- {fileID: 8926484042661617522}
|
|
- {fileID: 8926484042661617528}
|
|
- {fileID: 8926484042661617533}
|
|
- {fileID: 8926484042661617535}
|
|
- {fileID: 8926484042661617544}
|
|
- {fileID: 8926484042661617576}
|
|
- {fileID: 8926484042661617582}
|
|
- {fileID: 8926484042661617584}
|
|
- {fileID: 8926484042661617601}
|
|
- {fileID: 8926484042661617623}
|
|
- {fileID: 8926484042661617625}
|
|
- {fileID: 8926484042661617636}
|
|
- {fileID: 8926484042661617644}
|
|
- {fileID: 8926484042661617659}
|
|
- {fileID: 8926484042661617855}
|
|
- {fileID: 8926484042661617859}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_UIInfos: {fileID: 114314665046356518}
|
|
m_ParameterInfo: []
|
|
m_GraphVersion: 4
|
|
m_saved: 1
|
|
m_SubgraphDependencies:
|
|
- {fileID: 8926484042661614526, guid: d69f18500559c9c46820b78ca852be69, type: 3}
|
|
- {fileID: 5371698748595113096, guid: d4fde30bb85fc364ab2dac7059e7b8a4, type: 3}
|
|
- {fileID: 8926484042661614526, guid: 3623863759a0bbc4f800fe6989ae1942, type: 3}
|
|
- {fileID: 5371698745253816930, guid: bfbffac5b9e601347ae9feb5d51931eb, type: 3}
|
|
m_CategoryPath:
|
|
--- !u!114 &114314665046356518
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 1
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: d01270efd3285ea4a9d6c555cb0a8027, type: 3}
|
|
m_Name: VFXUI
|
|
m_EditorClassIdentifier:
|
|
groupInfos:
|
|
- title: Vortex Update
|
|
position:
|
|
serializedVersion: 2
|
|
x: -2796
|
|
y: -1630
|
|
width: 1400
|
|
height: 524
|
|
contents:
|
|
- model: {fileID: 8926484042661614956}
|
|
id: 0
|
|
isStickyNote: 0
|
|
- model: {fileID: 8926484042661614961}
|
|
id: 0
|
|
isStickyNote: 0
|
|
- model: {fileID: 8926484042661614989}
|
|
id: 0
|
|
isStickyNote: 0
|
|
- model: {fileID: 8926484042661615005}
|
|
id: 0
|
|
isStickyNote: 0
|
|
- model: {fileID: 8926484042661615787}
|
|
id: 0
|
|
isStickyNote: 0
|
|
- model: {fileID: 8926484042661615809}
|
|
id: 0
|
|
isStickyNote: 0
|
|
- model: {fileID: 8926484042661617116}
|
|
id: 0
|
|
isStickyNote: 0
|
|
- title: Initial Vortex
|
|
position:
|
|
serializedVersion: 2
|
|
x: -2660
|
|
y: -1980
|
|
width: 1270
|
|
height: 303
|
|
contents:
|
|
- model: {fileID: 8926484042661615815}
|
|
id: 0
|
|
isStickyNote: 0
|
|
- model: {fileID: 8926484042661615842}
|
|
id: 0
|
|
isStickyNote: 0
|
|
- model: {fileID: 8926484042661615872}
|
|
id: 0
|
|
isStickyNote: 0
|
|
- model: {fileID: 8926484042661615878}
|
|
id: 0
|
|
isStickyNote: 0
|
|
- model: {fileID: 8926484042661615882}
|
|
id: 0
|
|
isStickyNote: 0
|
|
stickyNoteInfos: []
|
|
systemInfos:
|
|
- title: Cloud Corona
|
|
position:
|
|
serializedVersion: 2
|
|
x: 0
|
|
y: 0
|
|
width: 0
|
|
height: 0
|
|
contexts:
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- title: Core Glow
|
|
position:
|
|
serializedVersion: 2
|
|
x: 0
|
|
y: 0
|
|
width: 0
|
|
height: 0
|
|
contexts:
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- title: BG Clouds
|
|
position:
|
|
serializedVersion: 2
|
|
x: 0
|
|
y: 0
|
|
width: 0
|
|
height: 0
|
|
contexts:
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- title: Grid Lines
|
|
position:
|
|
serializedVersion: 2
|
|
x: 0
|
|
y: 0
|
|
width: 0
|
|
height: 0
|
|
contexts:
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- title: Stars
|
|
position:
|
|
serializedVersion: 2
|
|
x: 0
|
|
y: 0
|
|
width: 0
|
|
height: 0
|
|
contexts:
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- title: Corners
|
|
position:
|
|
serializedVersion: 2
|
|
x: 0
|
|
y: 0
|
|
width: 0
|
|
height: 0
|
|
contexts:
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- title: Orbits
|
|
position:
|
|
serializedVersion: 2
|
|
x: 0
|
|
y: 0
|
|
width: 0
|
|
height: 0
|
|
contexts:
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- title: Toto
|
|
position:
|
|
serializedVersion: 2
|
|
x: 0
|
|
y: 0
|
|
width: 0
|
|
height: 0
|
|
contexts:
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
- {fileID: 0}
|
|
categories: []
|
|
uiBounds:
|
|
serializedVersion: 2
|
|
x: -2839
|
|
y: -2270
|
|
width: 2716
|
|
height: 3261
|
|
--- !u!2058629511 &8926484042661614527
|
|
VisualEffectResource:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_Name: MainMenu
|
|
m_Graph: {fileID: 114076616438245156}
|
|
m_ShaderSources:
|
|
- compute: 1
|
|
name: '[BG Clouds]Initialize Particle'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_SEED_CURRENT
|
|
1\n#define VFX_USE_DIRECTION_CURRENT 1\n#define VFX_USE_SIZE_CURRENT 1\n#define
|
|
VFX_USE_ANGLEZ_CURRENT 1\n#define VFX_USE_TEXINDEX_CURRENT 1\n#define VFX_LOCAL_SPACE
|
|
1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\n\nstruct
|
|
Attributes\n{\n float3 position;\n uint seed;\n float3 direction;\n
|
|
float size;\n float angleZ;\n float texIndex;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
|
|
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
|
|
attributeBuffer;\r\nByteAddressBuffer sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n uint nbSpawned;\t\t\t\t\t// Numbers of particle
|
|
spawned\r\n uint spawnIndex;\t\t\t\t// Index of the first particle spawned\r\n
|
|
uint dispatchWidth;\r\n#else\r\n uint offsetInAdditionalOutput;\r\n\tuint
|
|
nbMax;\r\n#endif\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
|
|
deadListIn;\r\nByteAddressBuffer deadListCount; // This is bad to use a SRV
|
|
to fetch deadList count but Unity API currently prevent from copying to CB\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\nStructuredBuffer<uint> eventList;\r\nByteAddressBuffer
|
|
inputAdditional;\r\n#endif\r\n\r\n#if HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
PositionTorus_0(inout float3 position, inout uint seed, inout float3 direction,
|
|
float3 ArcTorus_center, float ArcTorus_majorRadius, float ArcTorus_minorRadius,
|
|
float ArcTorus_arc, float volumeFactor, float r) /*positionMode:Surface spawnMode:Random
|
|
*/\n{\n float3 u = RAND3;float arc = ArcTorus_arc;\n float R = sqrt(volumeFactor
|
|
+ (1.0f - volumeFactor) * u.z);\n \n float sinTheta,cosTheta;\n sincos(u.x
|
|
* UNITY_TWO_PI,sinTheta,cosTheta);\n \n float2 s1_1 = R * r * float2(cosTheta,
|
|
sinTheta) + float2(1,0);\n float2 s1_2 = R * r * float2(-cosTheta, sinTheta)
|
|
+ float2(1,0);\n float w = s1_1.x / (s1_1.x + s1_2.x);\n \n float3
|
|
t;\n float phi;\n if (u.y < w)\n {\n phi = arc * u.y / w;\n
|
|
t = float3(s1_1.x, 0, s1_1.y);\n }\n else\n {\n phi = arc *
|
|
(u.y - w) / (1.0f - w);\n t = float3(s1_2.x, 0, s1_2.y);\n }\n
|
|
\n float s,c;\n sincos(phi,c,s);\n float3 t2 = float3(c * t.x - s
|
|
* t.y,c * t.y + s * t.x,t.z);\n \n position += ArcTorus_center + ArcTorus_majorRadius
|
|
* t2;\n direction = t2;\n \n}\nvoid SetAttribute_C707D7BF(inout float3
|
|
position, inout uint seed, float3 A, float3 B) /*attribute:position Composition:Add
|
|
Source:Slot Random:PerComponent channels:XYZ */\n{\n position += lerp(A,B,RAND3);\n}\nvoid
|
|
SetAttribute_CAC29747(inout float3 position, float3 Position) /*attribute:position
|
|
Composition:Overwrite Source:Slot Random:Off channels:XYZ */\n{\n position
|
|
= Position;\n}\nvoid SetAttribute_3278B09A(inout float size, inout uint seed,
|
|
float A, float B) /*attribute:size Composition:Overwrite Source:Slot Random:PerComponent
|
|
channels:XYZ */\n{\n size = lerp(A,B,RAND);\n}\nvoid SetAttribute_48A7C211(inout
|
|
float angleZ, inout uint seed, float A, float B) /*attribute:angle Composition:Overwrite
|
|
Source:Slot Random:Uniform channels:Z */\n{\n angleZ = lerp(A.x,B.x,RAND);\n}\nvoid
|
|
SetAttribute_CA100327(inout float texIndex, inout uint seed, float A, float
|
|
B) /*attribute:texIndex Composition:Overwrite Source:Slot Random:Uniform channels:XYZ
|
|
*/\n{\n texIndex = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
|
|
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
|
|
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
|
|
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
|
|
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
|
|
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
|
|
= stripIndex * PARTICLE_PER_STRIP_COUNT + ((STRIP_DATA(STRIP_FIRST_INDEX, stripIndex)
|
|
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
|
|
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
|
|
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n
|
|
uint currentSpawnIndex = spawnIndex;\r\n#endif\r\n\r\n#if USE_DEAD_LIST\r\n
|
|
maxThreadId = min(maxThreadId, deadListCount.Load(0x0));\r\n#elif VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
maxThreadId = min(maxThreadId, nbMax); //otherwise, nbSpawned already clamped
|
|
on CPU\r\n#endif\r\n\r\n if (id < maxThreadId)\r\n {\r\n#if VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
int sourceIndex = eventList[id];\r\n#endif\r\n\t\tuint particleIndex = id +
|
|
currentSpawnIndex;\r\n\t\t\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n int
|
|
sourceIndex = 0;\n /*//Loop with 1 iteration generate a wrong IL Assembly
|
|
(and actually, useless code)\n uint currentSumSpawnCount = 0u;\n
|
|
for (sourceIndex=0; sourceIndex<1; sourceIndex++)\n {\n currentSumSpawnCount
|
|
+= uint(asfloat(sourceAttributeBuffer.Load((sourceIndex * 0x1 + 0x0) << 2)));\n
|
|
if (id < currentSumSpawnCount)\n {\n break;\n
|
|
}\n }\n */\n \n\r\n#endif\r\n\r\n\t\tAttributes attributes
|
|
= (Attributes)0;\r\n\t\tSourceAttributes sourceAttributes = (SourceAttributes)0;\r\n\t\t\r\n
|
|
attributes.position = float3(0, 0, 0);\n attributes.seed = (uint)0;\n
|
|
attributes.direction = float3(0, 0, 1);\n attributes.size = (float)0.100000001;\n
|
|
attributes.angleZ = (float)0;\n attributes.texIndex = (float)0;\n
|
|
\n\r\n#if VFX_USE_PARTICLEID_CURRENT\r\n attributes.particleId = particleIndex;\r\n#endif\r\n#if
|
|
VFX_USE_SEED_CURRENT\r\n attributes.seed = WangHash(particleIndex ^
|
|
systemSeed);\r\n#endif\r\n#if VFX_USE_SPAWNINDEX_CURRENT\r\n attributes.spawnIndex
|
|
= id;\r\n#endif\r\n#if HAS_STRIPS\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n\t\t\r\n#else\r\n
|
|
uint stripIndex = sourceIndex;\r\n#endif\r\n\t\tstripIndex = min(stripIndex,
|
|
STRIP_COUNT);\r\n\r\n if (!GetParticleIndex(particleIndex, stripIndex))\r\n
|
|
return;\r\n\r\n const StripData stripData = GetStripDataFromStripIndex(stripIndex,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n\t\tInitStripAttributes(particleIndex, attributes,
|
|
stripData);\r\n\t\t// TODO Change seed to be sure we're deterministic on random
|
|
with strip\r\n#endif\r\n \r\n {\n PositionTorus_0(
|
|
/*inout */attributes.position, /*inout */attributes.seed, /*inout */attributes.direction,
|
|
float3(0, 0, 0), (float)12, (float)3, (float)6.28318548, (float)1, (float)0.25);\n
|
|
}\n {\n SetAttribute_C707D7BF( /*inout */attributes.position,
|
|
/*inout */attributes.seed, float3(0, 0, -1), float3(0, 0, 1));\n }\n
|
|
{\n float3 tmp_v = mul(float4x4(-0.583396316,-0.802346349,0.12605226,0,-0.194919109,0.288979411,0.937282026,0,-0.788451254,0.522236884,-0.324982166,0,0,0,0,1),
|
|
float4(attributes.position, 1.0)).xyz;\n SetAttribute_CAC29747(
|
|
/*inout */attributes.position, tmp_v);\n }\n {\n SetAttribute_3278B09A(
|
|
/*inout */attributes.size, /*inout */attributes.seed, (float)4, (float)12);\n
|
|
}\n {\n SetAttribute_48A7C211( /*inout */attributes.angleZ,
|
|
/*inout */attributes.seed, (float)0, (float)360);\n }\n {\n
|
|
SetAttribute_CA100327( /*inout */attributes.texIndex, /*inout */attributes.seed,
|
|
(float)1, (float)50);\n }\n \n\r\n\t\t\r\n#if VFX_USE_ALIVE_CURRENT\r\n
|
|
if (attributes.alive)\r\n#endif \r\n {\r\n#if USE_DEAD_LIST\r\n\t
|
|
uint deadIndex = deadListIn.DecrementCounter();\r\n uint index =
|
|
deadListIn[deadIndex];\r\n#else\r\n uint index = particleIndex;\r\n#endif\r\n
|
|
attributeBuffer.Store3((index * 0x4 + 0x0) << 2,asuint(attributes.position));\n
|
|
attributeBuffer.Store((index * 0x2 + 0x100) << 2,asuint(attributes.size));\n
|
|
attributeBuffer.Store((index * 0x2 + 0x101) << 2,asuint(attributes.angleZ));\n
|
|
attributeBuffer.Store((index * 0x1 + 0x180) << 2,asuint(attributes.texIndex));\n
|
|
\n\r\n }\r\n }\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[BG Clouds]Update Particle'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_TEXINDEX_CURRENT 1\n#define VFX_HAS_INDIRECT_DRAW
|
|
1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
|
|
float deltaTime_a;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
|
|
float texIndex;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
|
|
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
|
|
attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint> deadListOut;\r\n#endif\r\n\r\n#if
|
|
VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint> indirectBuffer;\r\n#endif\r\n\r\n#if
|
|
HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#if VFX_USE_STRIPALIVE_CURRENT\r\nBuffer<uint>
|
|
attachedStripDataBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n
|
|
uint nbMax;\r\n\tuint dispatchWidth;\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
FlipbookPlay_0(inout float texIndex, float FrameRate, float deltaTime) /*mode:Constant
|
|
*/\n{\n texIndex += FrameRate * deltaTime;\n}\n\n\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
|
|
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
|
|
: SV_GroupThreadID)\r\n{\r\n\tuint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP
|
|
+ groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n\tuint index = id;\r\n\tif
|
|
(id < nbMax)\r\n\t{\r\n Attributes attributes = (Attributes)0;\r\n\t\tSourceAttributes
|
|
sourceAttributes = (SourceAttributes)0;\r\n\r\n#if VFX_USE_ALIVE_CURRENT\r\n\t\t\r\n\t\tif
|
|
(attributes.alive)\r\n\t\t{\r\n\t\t\tattributes.texIndex = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0x180) << 2));\n\t\t\t\n\r\n\r\n// Initialize built-in needed attributes\r\n#if
|
|
VFX_USE_OLDPOSITION_CURRENT\r\n\t\t\tattributes.oldPosition = attributes.position;\r\n#endif\r\n#if
|
|
HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
|
|
stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t FlipbookPlay_0( /*inout
|
|
*/attributes.texIndex, (float)1, deltaTime_a);\n\t\t\t}\n\t\t\t\n\r\n\r\n\t\t\tif
|
|
(attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store((index * 0x1
|
|
+ 0x180) << 2,asuint(attributes.texIndex));\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\t\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n\r\n#if HAS_STRIPS\t\t\t\r\n\t\t\t\tuint relativeIndexInStrip
|
|
= GetRelativeIndex(index, stripData);\r\n\t\t\t\tInterlockedMin(STRIP_DATA(STRIP_MIN_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n\t\t\t\tInterlockedMax(STRIP_DATA(STRIP_MAX_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n#endif\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t\r\n#if
|
|
USE_DEAD_LIST && !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
|
|
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,
|
|
STRIP_MIN_ALIVE, index) == ~1) // Attached strip is no longer alive, recycle
|
|
the particle \r\n {\r\n uint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n attributes.stripAlive = false;\r\n
|
|
\r\n } \r\n }\r\n#endif\r\n#else\r\n\t\tattributes.texIndex
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0x180) << 2));\n\t\t\n\r\n\t\t\r\n#if
|
|
VFX_USE_OLDPOSITION_CURRENT\r\n\t\tattributes.oldPosition = attributes.position;\r\n#endif\r\n#if
|
|
HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
|
|
stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t FlipbookPlay_0( /*inout */attributes.texIndex,
|
|
(float)1, deltaTime_a);\n\t\t}\n\t\t\n\r\n\t\tattributeBuffer.Store((index
|
|
* 0x1 + 0x180) << 2,asuint(attributes.texIndex));\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
|
|
- compute: 0
|
|
name: '[BG Clouds]Output Particle Lit Octagon'
|
|
source: "Shader \"Hidden/VFX/MainMenu-BG/BG Clouds/Output Particle Lit Octagon\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
|
|
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+400\" \"IgnoreProjector\"=\"True\"
|
|
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
|
|
One OneMinusSrcAlpha , Zero OneMinusSrcAlpha\n\t\tZTest LEqual\n\t\tZWrite
|
|
Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define NB_THREADS_PER_GROUP
|
|
64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL (0)\n\t\t#define
|
|
VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION (2)\n\t\t#define
|
|
VFX_USE_POSITION_CURRENT 1\n\t\t#define VFX_USE_SIZE_CURRENT 1\n\t\t#define
|
|
VFX_USE_ANGLEZ_CURRENT 1\n\t\t#define VFX_USE_TEXINDEX_CURRENT 1\n\t\t#define
|
|
VFX_USE_COLOR_CURRENT 1\n\t\t#define VFX_USE_ALPHA_CURRENT 1\n\t\t#define VFX_USE_ALIVE_CURRENT
|
|
1\n\t\t#define VFX_USE_AXISX_CURRENT 1\n\t\t#define VFX_USE_AXISY_CURRENT 1\n\t\t#define
|
|
VFX_USE_AXISZ_CURRENT 1\n\t\t#define VFX_USE_ANGLEX_CURRENT 1\n\t\t#define
|
|
VFX_USE_ANGLEY_CURRENT 1\n\t\t#define VFX_USE_PIVOTX_CURRENT 1\n\t\t#define
|
|
VFX_USE_PIVOTY_CURRENT 1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define
|
|
VFX_USE_SCALEX_CURRENT 1\n\t\t#define VFX_USE_SCALEY_CURRENT 1\n\t\t#define
|
|
VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT 1\n\t\t#define
|
|
IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ALPHA 1\n\t\t#define VFX_HAS_INDIRECT_DRAW
|
|
1\n\t\t#define USE_FLIPBOOK 1\n\t\t#define USE_FLIPBOOK_INTERPOLATION 1\n\t\t#define
|
|
HDRP_LIT 1\n\t\t#define HDRP_MATERIAL_TYPE_SIMPLELIT_TRANSLUCENT 1\n\t\t#define
|
|
HDRP_MULTIPLY_THICKNESS_WITH_ALPHA 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP 1\n\t\t#define
|
|
HDRP_USE_BASE_COLOR_MAP_ALPHA 1\n\t\t#define USE_NORMAL_MAP 1\n\t\t#define
|
|
HDRP_USE_BASE_COLOR 1\n\t\t#define USE_NORMAL_BENDING 1\n\t\t#define FORCE_NORMAL_VARYING
|
|
1\n\t\t#define VFX_PRIMITIVE_OCTAGON 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
|
|
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\t\n\t\tstruct
|
|
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float size;\n\t\t float
|
|
angleZ;\n\t\t float texIndex;\n\t\t float3 color;\n\t\t float alpha;\n\t\t
|
|
bool alive;\n\t\t float3 axisX;\n\t\t float3 axisY;\n\t\t float3 axisZ;\n\t\t
|
|
float angleX;\n\t\t float angleY;\n\t\t float pivotX;\n\t\t float
|
|
pivotY;\n\t\t float pivotZ;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t
|
|
float scaleZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
|
|
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\tTexture2D
|
|
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
|
|
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
|
|
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
|
|
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer
|
|
attributeBuffer;\t\n\t\t\n\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\tStructuredBuffer<uint>
|
|
indirectBuffer;\t\n\t\t#endif\t\n\t\t\n\t\t#if USE_DEAD_LIST_COUNT\n\t\tByteAddressBuffer
|
|
deadListCount;\n\t\t#endif\n\t\t\n\t\t#if HAS_STRIPS\n\t\tBuffer<uint> stripDataBuffer;\n\t\t#endif\n\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD || USE_MOTION_VECTORS_PASS\n\t\tByteAddressBuffer
|
|
elementToVFXBufferPrevious;\n\t\t#endif\n\t\t\n\t\tCBUFFER_START(outputParams)\n\t\t\tfloat
|
|
nbMax;\n\t\t\tfloat systemSeed;\n\t\tCBUFFER_END\n\t\t\n\t\t// Helper macros
|
|
to always use a valid instanceID\n\t\t#if defined(UNITY_STEREO_INSTANCING_ENABLED)\n\t\t\t#define
|
|
VFX_DECLARE_INSTANCE_ID UNITY_VERTEX_INPUT_INSTANCE_ID\n\t\t\t#define VFX_GET_INSTANCE_ID(i)
|
|
unity_InstanceID\n\t\t#else\n\t\t\t#define VFX_DECLARE_INSTANCE_ID uint
|
|
instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
|
|
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
|
|
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
|
|
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
|
|
|| FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
|
|
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
|
|
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4
|
|
uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if
|
|
USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION || VFX_USE_ALPHA_CURRENT\n\t\t\t\t//
|
|
x: alpha threshold\n\t\t\t\t// y: frame blending factor\n\t\t\t\t// z: alpha\n\t\t\t\t//
|
|
w: smoothness\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float4 builtInInterpolants
|
|
: TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vector scale u\n\t\t\t\t// y: motion vector scale v\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
NEEDS_NORMAL\n\t\t\t\tfloat4 normal : TEXCOORD3; // normal scale is stored
|
|
in w\n\t\t\t\t#endif\n\t\t\t\t#if NEEDS_TANGENT\n\t\t\t\tfloat3 tangent : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t\t#if
|
|
USE_NORMAL_BENDING\n\t\t\t\tfloat2 bentFactors : TEXCOORD5;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
|
|
TEXCOORD6;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD7;\n\t\t\t\t#endif\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.z\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t#define VFX_VARYING_FRAMEBLEND builtInInterpolants.y\n\t\t\t#define
|
|
VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy\n\t\t\t#define VFX_VARYING_UV
|
|
uv\n\t\t\t\n\t\t\t#if NEEDS_NORMAL\n\t\t\t#define VFX_VARYING_NORMAL normal.xyz\n\t\t\t#endif\n\t\t\t#ifdef
|
|
WRITE_NORMAL_BUFFER\n\t\t\t#define VFX_VARYING_SMOOTHNESS builtInInterpolants.w\n\t\t\t#endif\n\t\t\t#if
|
|
NEEDS_TANGENT\n\t\t\t#define VFX_VARYING_TANGENT tangent\n\t\t\t#endif\n\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t#define VFX_VARYING_NORMALSCALE normal.w\n\t\t\t#endif\n\t\t\t#if
|
|
USE_NORMAL_BENDING\n\t\t\t#define VFX_VARYING_BENTFACTORS bentFactors\n\t\t\t#endif\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS
|
|
cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
|
|
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
Orient_4(inout float3 axisX, inout float3 axisY, inout float3 axisZ) /*mode:FaceCameraPlane
|
|
axes:ZY */\n\t\t\t{\n\t\t\t \n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t
|
|
axisX = viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE
|
|
// Need to remove potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t \n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_FDD06EC7(inout float3 color, float3 Color) /*attribute:color Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t color = Color;\n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_CEEAF35C(inout float alpha, float Alpha) /*attribute:alpha Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t alpha = Alpha;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
|
|
defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD
|
|
must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size = asfloat(attributeBuffer.Load((index
|
|
* 0x2 + 0x100) << 2));\n\t\t\t\t\t\tattributes.angleZ = asfloat(attributeBuffer.Load((index
|
|
* 0x2 + 0x101) << 2));\n\t\t\t\t\t\tattributes.texIndex = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0x180) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size
|
|
= asfloat(attributeBuffer.Load((index * 0x2 + 0x100) << 2));\n\t\t\t\t\t\tattributes.angleZ
|
|
= asfloat(attributeBuffer.Load((index * 0x2 + 0x101) << 2));\n\t\t\t\t\t\tattributes.texIndex
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0x180) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\tOrient_4(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_FDD06EC7( /*inout */attributes.color, float3(0.330188692, 0.330188692,
|
|
0.330188692));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_CEEAF35C( /*inout
|
|
*/attributes.alpha, (float)1);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\tif (!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tfloat
|
|
cropFactor = (float)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t cropFactor = (float)0.293000013;\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\tfloat normalBendingFactor = (float)0;\n\t\t\t\t{\n\t\t\t\t
|
|
\n\t\t\t\t normalBendingFactor = (float)1;\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\tfloat2 flipBookSize =
|
|
(float2)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t flipBookSize =
|
|
float2(8, 8);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat2 invFlipBookSize
|
|
= (float2)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t invFlipBookSize
|
|
= float2(0.125, 0.125);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
|
|
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
|
|
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
|
|
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
|
|
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
|
|
\n\t\t\t\t diffusionProfileHash = (uint)1076719097;\n\t\t\t\t}\n\t\t\t\t\n
|
|
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
|
|
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
|
|
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
|
|
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
|
|
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
|
|
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
|
|
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
|
|
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
|
|
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
|
|
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
|
|
VFXGetHDRPLitData(out SurfaceData surfaceData, out BuiltinData builtinData,
|
|
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
|
|
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
|
|
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
|
|
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
|
|
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
|
|
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
|
|
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
|
|
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
|
|
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
|
|
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
|
|
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
|
|
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
|
|
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
|
|
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
|
|
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
|
|
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
|
|
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
|
|
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
|
|
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
|
|
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
|
|
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
|
|
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
|
|
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
|
|
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
|
|
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
|
|
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
|
|
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
|
|
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
|
|
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
|
|
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
|
|
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
|
|
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
|
|
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
|
|
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
|
|
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
|
|
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
|
|
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
|
|
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
|
|
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
|
|
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
|
|
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
|
|
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//
|
|
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"}\n\t\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#define LIGHTLOOP_TILE_PASS\n\t\t\t#define
|
|
_ENABLE_FOG_ON_TRANSPARENT\n\t\t\t#define _DISABLE_DECALS\n\t\t\t#define _BLENDMODE_ALPHA\n\t\t\t\n\n\t\t\t#pragma
|
|
multi_compile USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST \n\t\t\t#pragma multi_compile
|
|
SHADOW_LOW SHADOW_MEDIUM SHADOW_HIGH\n\t\t\t#pragma multi_compile _ DEBUG_DISPLAY\n\t\t\t//#pragma
|
|
enable_d3d11_debug_symbols\n\t\t\t\t\t\n\t\t\t#define HDRP_NEEDS_UVS (HDRP_USE_BASE_COLOR_MAP
|
|
|| HDRP_USE_MASK_MAP || USE_NORMAL_MAP || HDRP_USE_EMISSIVE_MAP)\n\t\t\t#define
|
|
HDRP_USE_EMISSIVE (HDRP_USE_EMISSIVE_MAP || HDRP_USE_EMISSIVE_COLOR || HDRP_USE_ADDITIONAL_EMISSIVE_COLOR)\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\tstruct
|
|
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
(VFX_NEEDS_COLOR_INTERPOLATOR && HDRP_USE_BASE_COLOR) || HDRP_USE_ADDITIONAL_BASE_COLOR\n\t\t\t\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 color : COLOR0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_SPECULAR\n\t\t\t\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float3 specularColor : COLOR1;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#if HDRP_USE_EMISSIVE\t\n\t\t\t\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 emissiveColor : COLOR2;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//
|
|
x: smoothness\n\t\t\t\t\t\t\t// y: metallic/thickness\n\t\t\t\t\t\t\t// z:
|
|
normal scale\n\t\t\t\t\t\t\t// w: emissive scale\n\t\t\t\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 materialProperties : TEXCOORD0;\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#if
|
|
USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD1;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD1;\t\n\t\t\t\t#endif\n\t\t\t\t#if USE_SOFT_PARTICLE || USE_ALPHA_TEST
|
|
|| USE_FLIPBOOK_INTERPOLATION || WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t//
|
|
x: inverse soft particles fade distance\n\t\t\t\t// y: alpha threshold\n\t\t\t\t//
|
|
z: frame blending factor\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3 builtInInterpolants
|
|
: TEXCOORD2;\n\t\t\t\t#endif\n\t\t\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vector scale u\n\t\t\t\t// y: motion vector scale v\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float3 normal : TEXCOORD4;\n\t\t\t\t#if USE_NORMAL_MAP || USE_NORMAL_BENDING
|
|
|| SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3
|
|
tangent : TEXCOORD5;\n\t\t\t\t#endif\n\t\t\t\t#if USE_NORMAL_BENDING\n\t\t\t\tfloat2
|
|
bentFactors : TEXCOORD6;\n\t\t\t\t#endif\n\t\t\n\t\t\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
cPosPrevious : TEXCOORD7;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD8;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3
|
|
posWS : TEXCOOR9; // Needed for fog\n\t\t \n\t\t \n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\n\t\t\t\t\t#if
|
|
(VFX_NEEDS_COLOR_INTERPOLATOR && HDRP_USE_BASE_COLOR) || HDRP_USE_ADDITIONAL_BASE_COLOR\n\t\t\t\t\t#define
|
|
VFX_VARYING_COLOR color.rgb\n\t\t\t\t\t#define VFX_VARYING_ALPHA color.a\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#define
|
|
VFX_VARYING_SMOOTHNESS materialProperties.x\n\t\t\t\t\t\n\t\t\t\t\t#if HDRP_MATERIAL_TYPE_STANDARD\n\t\t\t\t\t#define
|
|
VFX_VARYING_METALLIC materialProperties.y\n\t\t\t\t\t#elif HDRP_MATERIAL_TYPE_SPECULAR\n\t\t\t\t\t#define
|
|
VFX_VARYING_SPECULAR specularColor\n\t\t\t\t\t#elif HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t#define
|
|
VFX_VARYING_THICKNESS materialProperties.y\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t#define VFX_VARYING_NORMALSCALE materialProperties.z\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
|
|
HDRP_USE_EMISSIVE_MAP\n\t\t\t\t\t#define VFX_VARYING_EMISSIVESCALE materialProperties.w\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
|
|
HDRP_USE_EMISSIVE_COLOR || HDRP_USE_ADDITIONAL_EMISSIVE_COLOR\n\t\t\t\t\t#define
|
|
VFX_VARYING_EMISSIVE emissiveColor.rgb\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
|
|
USE_EXPOSURE_WEIGHT\n\t\t\t\t\t#define VFX_VARYING_EXPOSUREWEIGHT emissiveColor.a\n\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t#define VFX_VARYING_POSCS pos\n\t\t#define
|
|
VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE builtInInterpolants.x\n\t\t#define
|
|
VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y\n\t\t#define VFX_VARYING_FRAMEBLEND
|
|
builtInInterpolants.z\n\t\t#define VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy\n\t\t#define
|
|
VFX_VARYING_UV uv\n\t\t#define VFX_VARYING_NORMAL normal\n\t\t#if USE_NORMAL_MAP
|
|
|| USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t#define VFX_VARYING_TANGENT
|
|
tangent\n\t\t#endif\n\t\t#if USE_NORMAL_BENDING\n\t\t#define VFX_VARYING_BENTFACTORS
|
|
bentFactors\n\t\t#endif\n\t\t#define VFX_VARYING_POSWS posWS\n\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t#define VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS_PREVIOUS cPosPrevious\n\t\t#endif\n\t\t\n\t\t\n\t\t\t\n\t\t\t#if
|
|
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
|
|
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
Orient_4(inout float3 axisX, inout float3 axisY, inout float3 axisZ) /*mode:FaceCameraPlane
|
|
axes:ZY */\n\t\t\t{\n\t\t\t \n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t
|
|
axisX = viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE
|
|
// Need to remove potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t \n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_FDD06EC7(inout float3 color, float3 Color) /*attribute:color Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t color = Color;\n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_CEEAF35C(inout float alpha, float Alpha) /*attribute:alpha Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t alpha = Alpha;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
|
|
defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD
|
|
must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size = asfloat(attributeBuffer.Load((index
|
|
* 0x2 + 0x100) << 2));\n\t\t\t\t\t\tattributes.angleZ = asfloat(attributeBuffer.Load((index
|
|
* 0x2 + 0x101) << 2));\n\t\t\t\t\t\tattributes.texIndex = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0x180) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size
|
|
= asfloat(attributeBuffer.Load((index * 0x2 + 0x100) << 2));\n\t\t\t\t\t\tattributes.angleZ
|
|
= asfloat(attributeBuffer.Load((index * 0x2 + 0x101) << 2));\n\t\t\t\t\t\tattributes.texIndex
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0x180) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\tOrient_4(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_FDD06EC7( /*inout */attributes.color, float3(0.330188692, 0.330188692,
|
|
0.330188692));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_CEEAF35C( /*inout
|
|
*/attributes.alpha, (float)1);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\tif (!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tfloat
|
|
cropFactor = (float)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t cropFactor = (float)0.293000013;\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\tfloat normalBendingFactor = (float)0;\n\t\t\t\t{\n\t\t\t\t
|
|
\n\t\t\t\t normalBendingFactor = (float)1;\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\tfloat2 flipBookSize =
|
|
(float2)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t flipBookSize =
|
|
float2(8, 8);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat2 invFlipBookSize
|
|
= (float2)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t invFlipBookSize
|
|
= float2(0.125, 0.125);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifndef
|
|
VFX_SHADERGRAPH\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_SMOOTHNESS\n\t\t\t\t\t\t\t\t\tfloat
|
|
smoothness = (float)0;\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
|
|
smoothness = (float)0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_SMOOTHNESS
|
|
= smoothness;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_STANDARD\n\t\t\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_METALLIC\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_METALLIC
|
|
= metallic;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#elif HDRP_MATERIAL_TYPE_SPECULAR\n\t\t\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_SPECULAR\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_SPECULAR
|
|
= specularColor;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#elif HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_THICKNESS\n\t\t\t\t\t\t\t\t\tfloat thickness = (float)0;\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t
|
|
\n\t\t\t\t\t\t\t\t\t thickness = (float)0.786163509;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_THICKNESS
|
|
= thickness;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tfloat
|
|
normalScale = (float)0;\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
|
|
normalScale = (float)0.36477989;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_NORMALSCALE
|
|
= normalScale;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#if
|
|
HDRP_USE_EMISSIVE_MAP\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_EMISSIVESCALE\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_EMISSIVESCALE
|
|
= emissiveScale;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EMISSIVE\n\t\t\t\t\t\t\t\t\t#if HDRP_USE_EMISSIVE_COLOR\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_EMISSIVE
|
|
= attributes.color;\n\t\t\t\t\t\t\t\t\t#elif HDRP_USE_ADDITIONAL_EMISSIVE_COLOR\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_EMISSIVE
|
|
= emissiveColor;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#if
|
|
HDRP_USE_ADDITIONAL_BASE_COLOR\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_COLOR\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= baseColor;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_FORWARD\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
|
|
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
|
|
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
|
|
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
|
|
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
|
|
\n\t\t\t\t diffusionProfileHash = (uint)1076719097;\n\t\t\t\t}\n\t\t\t\t\n
|
|
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
|
|
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
|
|
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
|
|
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
|
|
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
|
|
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
|
|
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
|
|
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
|
|
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
|
|
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
|
|
VFXGetHDRPLitData(out SurfaceData surfaceData, out BuiltinData builtinData,
|
|
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
|
|
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
|
|
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\t\n\t\t
|
|
\n\t\t\t\t\t\t\t\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t,
|
|
out float4 outColor : SV_Target0\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t, bool
|
|
frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t,
|
|
out float4 outMotionVector : SV_Target1\n\t\t\t#endif\n\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
|
|
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
|
|
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
|
|
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
|
|
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
|
|
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
|
|
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
|
|
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
|
|
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
|
|
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
|
|
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
|
|
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
|
|
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
|
|
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t
|
|
\n\t\t #ifdef VFX_SHADERGRAPH\n\t\t \n\t\t \n\t\t
|
|
\n\t\t SurfaceData surface;\n\t\t BuiltinData builtin;\n\t\t
|
|
surface = (SurfaceData)0;\n\t\t builtin = (BuiltinData)0;\n\t\t
|
|
\n\t\t surface.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD;\n\t\t
|
|
surface.specularOcclusion = 1.0f;\n\t\t surface.ambientOcclusion
|
|
= 1.0f;\n\t\t surface.subsurfaceMask = 1.0f;\n\t\t \n\t\t
|
|
#if HAS_SHADERGRAPH_PARAM_ALPHA\n\t\t builtin.opacity = OUTSG.;\n\t\t
|
|
VFXClipFragmentColor(builtin.opacity,i);\n\t\t #endif\n\t\t
|
|
\n\t\t #if HAS_SHADERGRAPH_PARAM_SMOOTHNESS\n\t\t
|
|
surface.perceptualSmoothness = OUTSG.;\n\t\t #endif\n\t\t
|
|
#if HAS_SHADERGRAPH_PARAM_METALLIC\n\t\t surface.metallic =
|
|
OUTSG.;\n\t\t #endif\n\t\t #if HAS_SHADERGRAPH_PARAM_BASECOLOR\n\t\t
|
|
surface.baseColor = OUTSG.;\n\t\t #endif\n\t\t \n\t\t
|
|
#if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t float3 n = OUTSG.;\n\t\t
|
|
normalWS = mul(n,tbn);\n\t\t #endif\n\t\t \n\t\t
|
|
surface.normalWS = normalWS;\n\t\t \n\t\t #if HAS_SHADERGRAPH_PARAM_EMISSIVE\n\t\t
|
|
builtin.emissiveColor = OUTSG.;\n\t\t #endif\n\t\t\n\t\t
|
|
\n\t\t outColor = VFXGetPixelOutputForwardShaderGraph(surface, builtin,i);\n\t\t
|
|
#else\n\t\t outColor = VFXGetPixelOutputForward(i,normalWS,uvData);\n\t\t
|
|
#endif\n\t\t\t\t\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t\n\t\t\t\t\t\tfloat2
|
|
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
|
|
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\tVFXEncodeMotionVector(velocity * 0.5f,
|
|
encodedMotionVector);\n\t\t\t\t\t\t\n\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\toutMotionVector.a
|
|
= outColor.a < i.VFX_VARYING_ALPHATHRESHOLD ? 0.0f : 1.0f; //Independant clipping
|
|
for motion vector pass\n\t\t#endif\n\t\t\t}\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t}\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[BG Lines]Initialize Particle'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_PARTICLEID_CURRENT 1\n#define
|
|
VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_SIZE_CURRENT 1\n#define VFX_USE_COLOR_CURRENT
|
|
1\n#define VFX_USE_ALPHA_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\n\nstruct
|
|
Attributes\n{\n uint particleId;\n float3 position;\n float size;\n
|
|
float3 color;\n float alpha;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
|
|
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
|
|
attributeBuffer;\r\nByteAddressBuffer sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n uint nbSpawned;\t\t\t\t\t// Numbers of particle
|
|
spawned\r\n uint spawnIndex;\t\t\t\t// Index of the first particle spawned\r\n
|
|
uint dispatchWidth;\r\n#else\r\n uint offsetInAdditionalOutput;\r\n\tuint
|
|
nbMax;\r\n#endif\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
|
|
deadListIn;\r\nByteAddressBuffer deadListCount; // This is bad to use a SRV
|
|
to fetch deadList count but Unity API currently prevent from copying to CB\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\nStructuredBuffer<uint> eventList;\r\nByteAddressBuffer
|
|
inputAdditional;\r\n#endif\r\n\r\n#if HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
PositionSequential_913D42CB(uint particleId, inout float3 position, float3
|
|
computedPosition) /*shape:ThreeDimensional index:ParticleID writePosition:True
|
|
writeTargetPosition:False mode:Wrap */\n{\n position += computedPosition;\n
|
|
\n}\nvoid SetAttribute_3278B22F(inout float size, float Size) /*attribute:size
|
|
Composition:Overwrite Source:Slot Random:Off channels:XYZ */\n{\n size =
|
|
Size;\n}\nvoid SetAttribute_FDD06EC7(inout float3 color, float3 Color) /*attribute:color
|
|
Composition:Overwrite Source:Slot Random:Off channels:XYZ */\n{\n color
|
|
= Color;\n}\nvoid SetAttribute_CEEAF35C(inout float alpha, float Alpha) /*attribute:alpha
|
|
Composition:Overwrite Source:Slot Random:Off channels:XYZ */\n{\n alpha
|
|
= Alpha;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
|
|
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
|
|
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
|
|
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
|
|
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
|
|
= stripIndex * PARTICLE_PER_STRIP_COUNT + ((STRIP_DATA(STRIP_FIRST_INDEX, stripIndex)
|
|
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
|
|
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
|
|
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n
|
|
uint currentSpawnIndex = spawnIndex;\r\n#endif\r\n\r\n#if USE_DEAD_LIST\r\n
|
|
maxThreadId = min(maxThreadId, deadListCount.Load(0x0));\r\n#elif VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
maxThreadId = min(maxThreadId, nbMax); //otherwise, nbSpawned already clamped
|
|
on CPU\r\n#endif\r\n\r\n if (id < maxThreadId)\r\n {\r\n#if VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
int sourceIndex = eventList[id];\r\n#endif\r\n\t\tuint particleIndex = id +
|
|
currentSpawnIndex;\r\n\t\t\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n int
|
|
sourceIndex = 0;\n /*//Loop with 1 iteration generate a wrong IL Assembly
|
|
(and actually, useless code)\n uint currentSumSpawnCount = 0u;\n
|
|
for (sourceIndex=0; sourceIndex<1; sourceIndex++)\n {\n currentSumSpawnCount
|
|
+= uint(asfloat(sourceAttributeBuffer.Load((sourceIndex * 0x1 + 0x0) << 2)));\n
|
|
if (id < currentSumSpawnCount)\n {\n break;\n
|
|
}\n }\n */\n \n\r\n#endif\r\n\r\n\t\tAttributes attributes
|
|
= (Attributes)0;\r\n\t\tSourceAttributes sourceAttributes = (SourceAttributes)0;\r\n\t\t\r\n
|
|
attributes.particleId = (uint)0;\n attributes.position = float3(0, 0,
|
|
0);\n attributes.size = (float)0.100000001;\n attributes.color
|
|
= float3(1, 1, 1);\n attributes.alpha = (float)1;\n \n\r\n#if
|
|
VFX_USE_PARTICLEID_CURRENT\r\n attributes.particleId = particleIndex;\r\n#endif\r\n#if
|
|
VFX_USE_SEED_CURRENT\r\n attributes.seed = WangHash(particleIndex ^
|
|
systemSeed);\r\n#endif\r\n#if VFX_USE_SPAWNINDEX_CURRENT\r\n attributes.spawnIndex
|
|
= id;\r\n#endif\r\n#if HAS_STRIPS\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n\t\t\r\n#else\r\n
|
|
uint stripIndex = sourceIndex;\r\n#endif\r\n\t\tstripIndex = min(stripIndex,
|
|
STRIP_COUNT);\r\n\r\n if (!GetParticleIndex(particleIndex, stripIndex))\r\n
|
|
return;\r\n\r\n const StripData stripData = GetStripDataFromStripIndex(stripIndex,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n\t\tInitStripAttributes(particleIndex, attributes,
|
|
stripData);\r\n\t\t// TODO Change seed to be sure we're deterministic on random
|
|
with strip\r\n#endif\r\n \r\n {\n uint tmp_u = attributes.particleId
|
|
/ (uint)256;\n uint tmp_v = tmp_u * (uint)256;\n uint
|
|
tmp_w = attributes.particleId - tmp_v;\n uint tmp_y = tmp_w / (uint)16;\n
|
|
float tmp_z = (float)tmp_y;\n uint tmp_ba = tmp_y - tmp_y;\n
|
|
float tmp_bb = (float)tmp_ba;\n uint tmp_bc = tmp_y * (uint)16;\n
|
|
uint tmp_bd = tmp_w - tmp_bc;\n float tmp_be = (float)tmp_bd;\n
|
|
float3 tmp_bf = float3(tmp_z, tmp_bb, tmp_be);\n float3 tmp_bh =
|
|
tmp_bf / float3(15, 1, 15);\n float3 tmp_bj = tmp_bh * float3(2,
|
|
2, 2);\n float3 tmp_bl = tmp_bj - float3(1, 1, 1);\n
|
|
float tmp_bm = tmp_bl[0];\n float3 tmp_bn = float3(tmp_bm, tmp_bm,
|
|
tmp_bm);\n float3 tmp_bp = tmp_bn * float3(20, 0, 0);\n
|
|
float tmp_bq = tmp_bl[2];\n float3 tmp_br = float3(tmp_bq, tmp_bq,
|
|
tmp_bq);\n float3 tmp_bt = tmp_br * float3(0, 0, 20);\n
|
|
float3 tmp_bu = tmp_bp + tmp_bt;\n PositionSequential_913D42CB(attributes.particleId,
|
|
/*inout */attributes.position, tmp_bu);\n }\n {\n
|
|
SetAttribute_3278B22F( /*inout */attributes.size, (float)40);\n }\n
|
|
{\n SetAttribute_FDD06EC7( /*inout */attributes.color, float3(0.0102417702,
|
|
0.216784135, 0.326029688));\n }\n {\n SetAttribute_CEEAF35C(
|
|
/*inout */attributes.alpha, (float)1);\n }\n \n\r\n\t\t\r\n#if
|
|
VFX_USE_ALIVE_CURRENT\r\n if (attributes.alive)\r\n#endif \r\n
|
|
{\r\n#if USE_DEAD_LIST\r\n\t uint deadIndex = deadListIn.DecrementCounter();\r\n
|
|
uint index = deadListIn[deadIndex];\r\n#else\r\n uint index = particleIndex;\r\n#endif\r\n
|
|
attributeBuffer.Store3((index * 0x8 + 0x0) << 2,asuint(attributes.position));\n
|
|
attributeBuffer.Store((index * 0x8 + 0x3) << 2,asuint(attributes.size));\n
|
|
attributeBuffer.Store3((index * 0x8 + 0x4) << 2,asuint(attributes.color));\n
|
|
attributeBuffer.Store((index * 0x8 + 0x7) << 2,asuint(attributes.alpha));\n
|
|
\n\r\n }\r\n }\r\n}\r\n"
|
|
- compute: 0
|
|
name: '[BG Lines]Output Particle Line'
|
|
source: "Shader \"Hidden/VFX/MainMenu-BG/BG Lines/Output Particle Line\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tTags
|
|
{ \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\" \"RenderType\"=\"Transparent\"
|
|
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
|
|
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
|
|
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
|
|
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION
|
|
(2)\n\t\t#define VFX_USE_POSITION_CURRENT 1\n\t\t#define VFX_USE_SIZE_CURRENT
|
|
1\n\t\t#define VFX_USE_COLOR_CURRENT 1\n\t\t#define VFX_USE_ALPHA_CURRENT 1\n\t\t#define
|
|
VFX_USE_ALIVE_CURRENT 1\n\t\t#define VFX_USE_PIVOTX_CURRENT 1\n\t\t#define
|
|
VFX_USE_PIVOTY_CURRENT 1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define
|
|
VFX_USE_ANGLEX_CURRENT 1\n\t\t#define VFX_USE_ANGLEY_CURRENT 1\n\t\t#define
|
|
VFX_USE_ANGLEZ_CURRENT 1\n\t\t#define VFX_USE_AXISX_CURRENT 1\n\t\t#define
|
|
VFX_USE_AXISY_CURRENT 1\n\t\t#define VFX_USE_AXISZ_CURRENT 1\n\t\t#define VFX_USE_SCALEX_CURRENT
|
|
1\n\t\t#define VFX_USE_SCALEY_CURRENT 1\n\t\t#define VFX_USE_SCALEZ_CURRENT
|
|
1\n\t\t#define VFX_USE_TARGETPOSITION_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT
|
|
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define
|
|
VFX_BYPASS_EXPOSURE 1\n\t\t#define TARGET_FROM_ATTRIBUTES 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
|
|
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\t\n\t\tstruct
|
|
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float size;\n\t\t float3
|
|
color;\n\t\t float alpha;\n\t\t bool alive;\n\t\t float pivotX;\n\t\t
|
|
float pivotY;\n\t\t float pivotZ;\n\t\t float angleX;\n\t\t float
|
|
angleY;\n\t\t float angleZ;\n\t\t float3 axisX;\n\t\t float3 axisY;\n\t\t
|
|
float3 axisZ;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t float
|
|
scaleZ;\n\t\t float3 targetPosition;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\t\n\n\t\t\n\t\t#define
|
|
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
|
|
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
|
|
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer
|
|
attributeBuffer;\t\n\t\t\n\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\tStructuredBuffer<uint>
|
|
indirectBuffer;\t\n\t\t#endif\t\n\t\t\n\t\t#if USE_DEAD_LIST_COUNT\n\t\tByteAddressBuffer
|
|
deadListCount;\n\t\t#endif\n\t\t\n\t\t#if HAS_STRIPS\n\t\tBuffer<uint> stripDataBuffer;\n\t\t#endif\n\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD || USE_MOTION_VECTORS_PASS\n\t\tByteAddressBuffer
|
|
elementToVFXBufferPrevious;\n\t\t#endif\n\t\t\n\t\tCBUFFER_START(outputParams)\n\t\t\tfloat
|
|
nbMax;\n\t\t\tfloat systemSeed;\n\t\tCBUFFER_END\n\t\t\n\t\t// Helper macros
|
|
to always use a valid instanceID\n\t\t#if defined(UNITY_STEREO_INSTANCING_ENABLED)\n\t\t\t#define
|
|
VFX_DECLARE_INSTANCE_ID UNITY_VERTEX_INPUT_INSTANCE_ID\n\t\t\t#define VFX_GET_INSTANCE_ID(i)
|
|
unity_InstanceID\n\t\t#else\n\t\t\t#define VFX_DECLARE_INSTANCE_ID uint
|
|
instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
|
|
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
|
|
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
|
|
USE_ALPHA_TEST || VFX_USE_ALPHA_CURRENT\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants : TEXCOORD0;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.y\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS and VFX_VARYING_POSCS
|
|
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_65DEC940(inout float pivotX, inout float pivotY, inout float pivotZ,
|
|
float3 Pivot) /*attribute:pivot Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t pivotX = Pivot.x;\n\t\t\t pivotY = Pivot.y;\n\t\t\t
|
|
pivotZ = Pivot.z;\n\t\t\t}\n\t\t\tvoid SetAttribute_CAC29747(inout float3 position,
|
|
float3 Position) /*attribute:position Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t position = Position;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\tstruct
|
|
vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#pragma
|
|
vertex vert\n\t\t\t\n\t\t\tVFX_VARYING_PS_INPUTS vert(uint id : SV_VertexID,
|
|
vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tconst uint vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT
|
|
- 1) << 1;\n\t\t\t\tconst StripData stripData = GetStripDataFromStripIndex(id
|
|
/ vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint relativeIndex
|
|
= (id % vertexPerStripCount + 1) >> 1; // relative index of particle in strip\n\t\t\t\t\n\t\t\t\tuint
|
|
maxEdgeIndex = relativeIndex - (id & 1) + 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn
|
|
o;\n\t\t\t\t\n\t\t\t\tuint index = GetParticleIndex(relativeIndex, stripData);\n\t\t\t\t#else\n\t\t\t\tuint
|
|
index = id >> 1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount
|
|
= 0;\n\t\t\t\t\t\t#if USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_65DEC940( /*inout */attributes.pivotX, /*inout */attributes.pivotY,
|
|
/*inout */attributes.pivotZ, float3(0, 0, 0.5));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
|
|
float3 tmp_u = mul(float4x4(1,0,0,0,0,5.96046448E-08,-0.99999994,0,0,0.99999994,5.96046448E-08,0,0,0,0,1),
|
|
float4(attributes.position, 1.0)).xyz;\n\t\t\t\t SetAttribute_CAC29747(
|
|
/*inout */attributes.position, tmp_u);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tfloat3 vPos = attributes.position;\n\t\t\t\t#else\n\t\t\t\t\t\n\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\treturn o;\t\n\t\t\t\t\n\t\t\t\t#if TARGET_FROM_ATTRIBUTES\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\tfloat4x4
|
|
elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\n\t\t\t\tattributes.position
|
|
= mul(elementToVFX,float4(0,0,0,1)).xyz;\n\t\t\t\t\n\t\t\t\tfloat3 targetOffset
|
|
= (float3)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t targetOffset = float3(0,
|
|
0, 1);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tattributes.targetPosition = mul(elementToVFX,float4(targetOffset,1)).xyz;\n\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
vPos = id & 1 ? attributes.targetPosition : attributes.position;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS
|
|
= TransformPositionVFXToClip(vPos);\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if VFX_USE_COLOR_CURRENT
|
|
&& defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR = attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_ALPHA_CURRENT && defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA
|
|
= attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\treturn
|
|
o;\n\t\t\t}\n\t\t\t\n\t\t\t#include \"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
|
|
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\tfloat
|
|
alpha = VFXGetFragmentColor(i);\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\treturn float4(_ObjectId,
|
|
_PassValue, 1.0, 1.0);\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\treturn
|
|
(float4)0;\n\t\t\t#else\n\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t#endif\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
|
|
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
|
|
}\n\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
|
|
_ DEBUG_DISPLAY\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos
|
|
: SV_POSITION;\n\t\t\t\t#if VFX_NEEDS_COLOR_INTERPOLATOR\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 color : COLOR0;\n\t\t\t\t#endif\n\t\t\t\t#if USE_SOFT_PARTICLE || USE_ALPHA_TEST
|
|
|| USE_EXPOSURE_WEIGHT\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3 builtInInterpolants
|
|
: TEXCOORD0;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t\tfloat3
|
|
posWS : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\tstruct
|
|
ps_output\n\t\t\t{\n\t\t\t\tfloat4 color : SV_Target0;\n\t\t\t};\n\t\t\n\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t#define VFX_VARYING_POSCS pos\n\t\t#define
|
|
VFX_VARYING_COLOR color.rgb\n\t\t#define VFX_VARYING_ALPHA color.a\n\t\t#define
|
|
VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE builtInInterpolants.x\n\t\t#define
|
|
VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y\n\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t#define
|
|
VFX_VARYING_POSWS posWS\n\t\t#endif\n\t\t#if USE_EXPOSURE_WEIGHT\n\t\t#define
|
|
VFX_VARYING_EXPOSUREWEIGHT builtInInterpolants.z\n\t\t#endif\n\t\t\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_FORWARD_UNLIT\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS and VFX_VARYING_POSCS
|
|
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_65DEC940(inout float pivotX, inout float pivotY, inout float pivotZ,
|
|
float3 Pivot) /*attribute:pivot Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t pivotX = Pivot.x;\n\t\t\t pivotY = Pivot.y;\n\t\t\t
|
|
pivotZ = Pivot.z;\n\t\t\t}\n\t\t\tvoid SetAttribute_CAC29747(inout float3 position,
|
|
float3 Position) /*attribute:position Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t position = Position;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\tstruct
|
|
vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#pragma
|
|
vertex vert\n\t\t\t\n\t\t\tVFX_VARYING_PS_INPUTS vert(uint id : SV_VertexID,
|
|
vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tconst uint vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT
|
|
- 1) << 1;\n\t\t\t\tconst StripData stripData = GetStripDataFromStripIndex(id
|
|
/ vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint relativeIndex
|
|
= (id % vertexPerStripCount + 1) >> 1; // relative index of particle in strip\n\t\t\t\t\n\t\t\t\tuint
|
|
maxEdgeIndex = relativeIndex - (id & 1) + 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn
|
|
o;\n\t\t\t\t\n\t\t\t\tuint index = GetParticleIndex(relativeIndex, stripData);\n\t\t\t\t#else\n\t\t\t\tuint
|
|
index = id >> 1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount
|
|
= 0;\n\t\t\t\t\t\t#if USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_65DEC940( /*inout */attributes.pivotX, /*inout */attributes.pivotY,
|
|
/*inout */attributes.pivotZ, float3(0, 0, 0.5));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
|
|
float3 tmp_u = mul(float4x4(1,0,0,0,0,5.96046448E-08,-0.99999994,0,0,0.99999994,5.96046448E-08,0,0,0,0,1),
|
|
float4(attributes.position, 1.0)).xyz;\n\t\t\t\t SetAttribute_CAC29747(
|
|
/*inout */attributes.position, tmp_u);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tfloat3 vPos = attributes.position;\n\t\t\t\t#else\n\t\t\t\t\t\n\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\treturn o;\t\n\t\t\t\t\n\t\t\t\t#if TARGET_FROM_ATTRIBUTES\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\tfloat4x4
|
|
elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\n\t\t\t\tattributes.position
|
|
= mul(elementToVFX,float4(0,0,0,1)).xyz;\n\t\t\t\t\n\t\t\t\tfloat3 targetOffset
|
|
= (float3)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t targetOffset = float3(0,
|
|
0, 1);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tattributes.targetPosition = mul(elementToVFX,float4(targetOffset,1)).xyz;\n\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
vPos = id & 1 ? attributes.targetPosition : attributes.position;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS
|
|
= TransformPositionVFXToClip(vPos);\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if VFX_USE_COLOR_CURRENT
|
|
&& defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR = attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_ALPHA_CURRENT && defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA
|
|
= attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\treturn
|
|
o;\n\t\t\t}\n\t\t\t\n\t\t\t#include \"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#pragma
|
|
fragment frag\n\t\t\tps_output frag(ps_input i)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tps_output
|
|
o = (ps_output)0;\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat4
|
|
color = VFXGetFragmentColor(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifndef VFX_TEXTURE_COLOR\n\t\t\t\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR float4(1.0,1.0,1.0,1.0)\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_DEFAULT\n\t\t\t\t\t\t\to.color = color * VFX_TEXTURE_COLOR;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_GRADIENTMAPPED\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\to.color = SampleGradient(gradient,
|
|
VFX_TEXTURE_COLOR.a * color.a) * float4(color.rgb,1.0);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\to.color
|
|
= VFXApplyPreExposure(o.color, i);\n\t\t\t\to.color = VFXApplyFog(o.color,i);\n\t\t\t\tVFXClipFragmentColor(o.color.a,i);\n\t\t\t\to.color.a
|
|
= saturate(o.color.a);\n\t\t o.color = VFXTransformFinalColor(o.color);\n\t\t\t\treturn
|
|
o;\n\t\t\t}\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t}\r\n}\r\n"
|
|
- compute: 0
|
|
name: '[BG Lines]Output Particle Line'
|
|
source: "Shader \"Hidden/VFX/MainMenu-BG/BG Lines/Output Particle Line\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tTags
|
|
{ \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\" \"RenderType\"=\"Transparent\"
|
|
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
|
|
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
|
|
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
|
|
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION
|
|
(2)\n\t\t#define VFX_USE_POSITION_CURRENT 1\n\t\t#define VFX_USE_SIZE_CURRENT
|
|
1\n\t\t#define VFX_USE_COLOR_CURRENT 1\n\t\t#define VFX_USE_ALPHA_CURRENT 1\n\t\t#define
|
|
VFX_USE_ALIVE_CURRENT 1\n\t\t#define VFX_USE_PIVOTX_CURRENT 1\n\t\t#define
|
|
VFX_USE_PIVOTY_CURRENT 1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define
|
|
VFX_USE_ANGLEX_CURRENT 1\n\t\t#define VFX_USE_ANGLEY_CURRENT 1\n\t\t#define
|
|
VFX_USE_ANGLEZ_CURRENT 1\n\t\t#define VFX_USE_AXISX_CURRENT 1\n\t\t#define
|
|
VFX_USE_AXISY_CURRENT 1\n\t\t#define VFX_USE_AXISZ_CURRENT 1\n\t\t#define VFX_USE_SCALEX_CURRENT
|
|
1\n\t\t#define VFX_USE_SCALEY_CURRENT 1\n\t\t#define VFX_USE_SCALEZ_CURRENT
|
|
1\n\t\t#define VFX_USE_TARGETPOSITION_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT
|
|
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define
|
|
VFX_BYPASS_EXPOSURE 1\n\t\t#define TARGET_FROM_ATTRIBUTES 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
|
|
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\t\n\t\tstruct
|
|
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float size;\n\t\t float3
|
|
color;\n\t\t float alpha;\n\t\t bool alive;\n\t\t float pivotX;\n\t\t
|
|
float pivotY;\n\t\t float pivotZ;\n\t\t float angleX;\n\t\t float
|
|
angleY;\n\t\t float angleZ;\n\t\t float3 axisX;\n\t\t float3 axisY;\n\t\t
|
|
float3 axisZ;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t float
|
|
scaleZ;\n\t\t float3 targetPosition;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\t\n\n\t\t\n\t\t#define
|
|
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
|
|
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
|
|
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer
|
|
attributeBuffer;\t\n\t\t\n\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\tStructuredBuffer<uint>
|
|
indirectBuffer;\t\n\t\t#endif\t\n\t\t\n\t\t#if USE_DEAD_LIST_COUNT\n\t\tByteAddressBuffer
|
|
deadListCount;\n\t\t#endif\n\t\t\n\t\t#if HAS_STRIPS\n\t\tBuffer<uint> stripDataBuffer;\n\t\t#endif\n\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD || USE_MOTION_VECTORS_PASS\n\t\tByteAddressBuffer
|
|
elementToVFXBufferPrevious;\n\t\t#endif\n\t\t\n\t\tCBUFFER_START(outputParams)\n\t\t\tfloat
|
|
nbMax;\n\t\t\tfloat systemSeed;\n\t\tCBUFFER_END\n\t\t\n\t\t// Helper macros
|
|
to always use a valid instanceID\n\t\t#if defined(UNITY_STEREO_INSTANCING_ENABLED)\n\t\t\t#define
|
|
VFX_DECLARE_INSTANCE_ID UNITY_VERTEX_INPUT_INSTANCE_ID\n\t\t\t#define VFX_GET_INSTANCE_ID(i)
|
|
unity_InstanceID\n\t\t#else\n\t\t\t#define VFX_DECLARE_INSTANCE_ID uint
|
|
instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
|
|
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
|
|
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
|
|
USE_ALPHA_TEST || VFX_USE_ALPHA_CURRENT\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants : TEXCOORD0;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.y\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS and VFX_VARYING_POSCS
|
|
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_65DEC940(inout float pivotX, inout float pivotY, inout float pivotZ,
|
|
float3 Pivot) /*attribute:pivot Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t pivotX = Pivot.x;\n\t\t\t pivotY = Pivot.y;\n\t\t\t
|
|
pivotZ = Pivot.z;\n\t\t\t}\n\t\t\tvoid SetAttribute_CAC29747(inout float3 position,
|
|
float3 Position) /*attribute:position Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t position = Position;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\tstruct
|
|
vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#pragma
|
|
vertex vert\n\t\t\t\n\t\t\tVFX_VARYING_PS_INPUTS vert(uint id : SV_VertexID,
|
|
vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tconst uint vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT
|
|
- 1) << 1;\n\t\t\t\tconst StripData stripData = GetStripDataFromStripIndex(id
|
|
/ vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint relativeIndex
|
|
= (id % vertexPerStripCount + 1) >> 1; // relative index of particle in strip\n\t\t\t\t\n\t\t\t\tuint
|
|
maxEdgeIndex = relativeIndex - (id & 1) + 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn
|
|
o;\n\t\t\t\t\n\t\t\t\tuint index = GetParticleIndex(relativeIndex, stripData);\n\t\t\t\t#else\n\t\t\t\tuint
|
|
index = id >> 1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount
|
|
= 0;\n\t\t\t\t\t\t#if USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_65DEC940( /*inout */attributes.pivotX, /*inout */attributes.pivotY,
|
|
/*inout */attributes.pivotZ, float3(0.5, 0, 0));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
|
|
float3 tmp_u = mul(float4x4(5.96046448E-08,-0.99999994,0,0,0.99999994,5.96046448E-08,0,0,0,0,1,0,0,0,0,1),
|
|
float4(attributes.position, 1.0)).xyz;\n\t\t\t\t SetAttribute_CAC29747(
|
|
/*inout */attributes.position, tmp_u);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tfloat3 vPos = attributes.position;\n\t\t\t\t#else\n\t\t\t\t\t\n\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\treturn o;\t\n\t\t\t\t\n\t\t\t\t#if TARGET_FROM_ATTRIBUTES\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\tfloat4x4
|
|
elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\n\t\t\t\tattributes.position
|
|
= mul(elementToVFX,float4(0,0,0,1)).xyz;\n\t\t\t\t\n\t\t\t\tfloat3 targetOffset
|
|
= (float3)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t targetOffset = float3(1,
|
|
0, 0);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tattributes.targetPosition = mul(elementToVFX,float4(targetOffset,1)).xyz;\n\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
vPos = id & 1 ? attributes.targetPosition : attributes.position;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS
|
|
= TransformPositionVFXToClip(vPos);\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if VFX_USE_COLOR_CURRENT
|
|
&& defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR = attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_ALPHA_CURRENT && defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA
|
|
= attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\treturn
|
|
o;\n\t\t\t}\n\t\t\t\n\t\t\t#include \"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
|
|
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\tfloat
|
|
alpha = VFXGetFragmentColor(i);\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\treturn float4(_ObjectId,
|
|
_PassValue, 1.0, 1.0);\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\treturn
|
|
(float4)0;\n\t\t\t#else\n\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t#endif\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
|
|
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
|
|
}\n\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
|
|
_ DEBUG_DISPLAY\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos
|
|
: SV_POSITION;\n\t\t\t\t#if VFX_NEEDS_COLOR_INTERPOLATOR\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 color : COLOR0;\n\t\t\t\t#endif\n\t\t\t\t#if USE_SOFT_PARTICLE || USE_ALPHA_TEST
|
|
|| USE_EXPOSURE_WEIGHT\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3 builtInInterpolants
|
|
: TEXCOORD0;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t\tfloat3
|
|
posWS : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\tstruct
|
|
ps_output\n\t\t\t{\n\t\t\t\tfloat4 color : SV_Target0;\n\t\t\t};\n\t\t\n\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t#define VFX_VARYING_POSCS pos\n\t\t#define
|
|
VFX_VARYING_COLOR color.rgb\n\t\t#define VFX_VARYING_ALPHA color.a\n\t\t#define
|
|
VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE builtInInterpolants.x\n\t\t#define
|
|
VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y\n\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t#define
|
|
VFX_VARYING_POSWS posWS\n\t\t#endif\n\t\t#if USE_EXPOSURE_WEIGHT\n\t\t#define
|
|
VFX_VARYING_EXPOSUREWEIGHT builtInInterpolants.z\n\t\t#endif\n\t\t\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_FORWARD_UNLIT\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS and VFX_VARYING_POSCS
|
|
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_65DEC940(inout float pivotX, inout float pivotY, inout float pivotZ,
|
|
float3 Pivot) /*attribute:pivot Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t pivotX = Pivot.x;\n\t\t\t pivotY = Pivot.y;\n\t\t\t
|
|
pivotZ = Pivot.z;\n\t\t\t}\n\t\t\tvoid SetAttribute_CAC29747(inout float3 position,
|
|
float3 Position) /*attribute:position Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t position = Position;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\tstruct
|
|
vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#pragma
|
|
vertex vert\n\t\t\t\n\t\t\tVFX_VARYING_PS_INPUTS vert(uint id : SV_VertexID,
|
|
vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tconst uint vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT
|
|
- 1) << 1;\n\t\t\t\tconst StripData stripData = GetStripDataFromStripIndex(id
|
|
/ vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint relativeIndex
|
|
= (id % vertexPerStripCount + 1) >> 1; // relative index of particle in strip\n\t\t\t\t\n\t\t\t\tuint
|
|
maxEdgeIndex = relativeIndex - (id & 1) + 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn
|
|
o;\n\t\t\t\t\n\t\t\t\tuint index = GetParticleIndex(relativeIndex, stripData);\n\t\t\t\t#else\n\t\t\t\tuint
|
|
index = id >> 1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount
|
|
= 0;\n\t\t\t\t\t\t#if USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_65DEC940( /*inout */attributes.pivotX, /*inout */attributes.pivotY,
|
|
/*inout */attributes.pivotZ, float3(0.5, 0, 0));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
|
|
float3 tmp_u = mul(float4x4(5.96046448E-08,-0.99999994,0,0,0.99999994,5.96046448E-08,0,0,0,0,1,0,0,0,0,1),
|
|
float4(attributes.position, 1.0)).xyz;\n\t\t\t\t SetAttribute_CAC29747(
|
|
/*inout */attributes.position, tmp_u);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tfloat3 vPos = attributes.position;\n\t\t\t\t#else\n\t\t\t\t\t\n\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\treturn o;\t\n\t\t\t\t\n\t\t\t\t#if TARGET_FROM_ATTRIBUTES\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\tfloat4x4
|
|
elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\n\t\t\t\tattributes.position
|
|
= mul(elementToVFX,float4(0,0,0,1)).xyz;\n\t\t\t\t\n\t\t\t\tfloat3 targetOffset
|
|
= (float3)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t targetOffset = float3(1,
|
|
0, 0);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tattributes.targetPosition = mul(elementToVFX,float4(targetOffset,1)).xyz;\n\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
vPos = id & 1 ? attributes.targetPosition : attributes.position;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS
|
|
= TransformPositionVFXToClip(vPos);\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if VFX_USE_COLOR_CURRENT
|
|
&& defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR = attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_ALPHA_CURRENT && defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA
|
|
= attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\treturn
|
|
o;\n\t\t\t}\n\t\t\t\n\t\t\t#include \"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#pragma
|
|
fragment frag\n\t\t\tps_output frag(ps_input i)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tps_output
|
|
o = (ps_output)0;\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat4
|
|
color = VFXGetFragmentColor(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifndef VFX_TEXTURE_COLOR\n\t\t\t\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR float4(1.0,1.0,1.0,1.0)\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_DEFAULT\n\t\t\t\t\t\t\to.color = color * VFX_TEXTURE_COLOR;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_GRADIENTMAPPED\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\to.color = SampleGradient(gradient,
|
|
VFX_TEXTURE_COLOR.a * color.a) * float4(color.rgb,1.0);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\to.color
|
|
= VFXApplyPreExposure(o.color, i);\n\t\t\t\to.color = VFXApplyFog(o.color,i);\n\t\t\t\tVFXClipFragmentColor(o.color.a,i);\n\t\t\t\to.color.a
|
|
= saturate(o.color.a);\n\t\t o.color = VFXTransformFinalColor(o.color);\n\t\t\t\treturn
|
|
o;\n\t\t\t}\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t}\r\n}\r\n"
|
|
- compute: 0
|
|
name: '[BG Lines]Output Particle Line'
|
|
source: "Shader \"Hidden/VFX/MainMenu-BG/BG Lines/Output Particle Line\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tTags
|
|
{ \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\" \"RenderType\"=\"Transparent\"
|
|
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
|
|
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
|
|
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
|
|
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION
|
|
(2)\n\t\t#define VFX_USE_POSITION_CURRENT 1\n\t\t#define VFX_USE_SIZE_CURRENT
|
|
1\n\t\t#define VFX_USE_COLOR_CURRENT 1\n\t\t#define VFX_USE_ALPHA_CURRENT 1\n\t\t#define
|
|
VFX_USE_ALIVE_CURRENT 1\n\t\t#define VFX_USE_PIVOTX_CURRENT 1\n\t\t#define
|
|
VFX_USE_PIVOTY_CURRENT 1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define
|
|
VFX_USE_ANGLEX_CURRENT 1\n\t\t#define VFX_USE_ANGLEY_CURRENT 1\n\t\t#define
|
|
VFX_USE_ANGLEZ_CURRENT 1\n\t\t#define VFX_USE_AXISX_CURRENT 1\n\t\t#define
|
|
VFX_USE_AXISY_CURRENT 1\n\t\t#define VFX_USE_AXISZ_CURRENT 1\n\t\t#define VFX_USE_SCALEX_CURRENT
|
|
1\n\t\t#define VFX_USE_SCALEY_CURRENT 1\n\t\t#define VFX_USE_SCALEZ_CURRENT
|
|
1\n\t\t#define VFX_USE_TARGETPOSITION_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT
|
|
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define
|
|
VFX_BYPASS_EXPOSURE 1\n\t\t#define TARGET_FROM_ATTRIBUTES 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
|
|
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\t\n\t\tstruct
|
|
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float size;\n\t\t float3
|
|
color;\n\t\t float alpha;\n\t\t bool alive;\n\t\t float pivotX;\n\t\t
|
|
float pivotY;\n\t\t float pivotZ;\n\t\t float angleX;\n\t\t float
|
|
angleY;\n\t\t float angleZ;\n\t\t float3 axisX;\n\t\t float3 axisY;\n\t\t
|
|
float3 axisZ;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t float
|
|
scaleZ;\n\t\t float3 targetPosition;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\t\n\n\t\t\n\t\t#define
|
|
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
|
|
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
|
|
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer
|
|
attributeBuffer;\t\n\t\t\n\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\tStructuredBuffer<uint>
|
|
indirectBuffer;\t\n\t\t#endif\t\n\t\t\n\t\t#if USE_DEAD_LIST_COUNT\n\t\tByteAddressBuffer
|
|
deadListCount;\n\t\t#endif\n\t\t\n\t\t#if HAS_STRIPS\n\t\tBuffer<uint> stripDataBuffer;\n\t\t#endif\n\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD || USE_MOTION_VECTORS_PASS\n\t\tByteAddressBuffer
|
|
elementToVFXBufferPrevious;\n\t\t#endif\n\t\t\n\t\tCBUFFER_START(outputParams)\n\t\t\tfloat
|
|
nbMax;\n\t\t\tfloat systemSeed;\n\t\tCBUFFER_END\n\t\t\n\t\t// Helper macros
|
|
to always use a valid instanceID\n\t\t#if defined(UNITY_STEREO_INSTANCING_ENABLED)\n\t\t\t#define
|
|
VFX_DECLARE_INSTANCE_ID UNITY_VERTEX_INPUT_INSTANCE_ID\n\t\t\t#define VFX_GET_INSTANCE_ID(i)
|
|
unity_InstanceID\n\t\t#else\n\t\t\t#define VFX_DECLARE_INSTANCE_ID uint
|
|
instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
|
|
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
|
|
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
|
|
USE_ALPHA_TEST || VFX_USE_ALPHA_CURRENT\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants : TEXCOORD0;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.y\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS and VFX_VARYING_POSCS
|
|
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_65DEC940(inout float pivotX, inout float pivotY, inout float pivotZ,
|
|
float3 Pivot) /*attribute:pivot Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t pivotX = Pivot.x;\n\t\t\t pivotY = Pivot.y;\n\t\t\t
|
|
pivotZ = Pivot.z;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#pragma
|
|
vertex vert\n\t\t\t\n\t\t\tVFX_VARYING_PS_INPUTS vert(uint id : SV_VertexID,
|
|
vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tconst uint vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT
|
|
- 1) << 1;\n\t\t\t\tconst StripData stripData = GetStripDataFromStripIndex(id
|
|
/ vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint relativeIndex
|
|
= (id % vertexPerStripCount + 1) >> 1; // relative index of particle in strip\n\t\t\t\t\n\t\t\t\tuint
|
|
maxEdgeIndex = relativeIndex - (id & 1) + 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn
|
|
o;\n\t\t\t\t\n\t\t\t\tuint index = GetParticleIndex(relativeIndex, stripData);\n\t\t\t\t#else\n\t\t\t\tuint
|
|
index = id >> 1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount
|
|
= 0;\n\t\t\t\t\t\t#if USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_65DEC940( /*inout */attributes.pivotX, /*inout */attributes.pivotY,
|
|
/*inout */attributes.pivotZ, float3(0, 0.5, 0));\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tfloat3 vPos = attributes.position;\n\t\t\t\t#else\n\t\t\t\t\t\n\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\treturn o;\t\n\t\t\t\t\n\t\t\t\t#if TARGET_FROM_ATTRIBUTES\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\tfloat4x4
|
|
elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\n\t\t\t\tattributes.position
|
|
= mul(elementToVFX,float4(0,0,0,1)).xyz;\n\t\t\t\t\n\t\t\t\tfloat3 targetOffset
|
|
= (float3)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t targetOffset = float3(0,
|
|
1, 0);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tattributes.targetPosition = mul(elementToVFX,float4(targetOffset,1)).xyz;\n\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
vPos = id & 1 ? attributes.targetPosition : attributes.position;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS
|
|
= TransformPositionVFXToClip(vPos);\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if VFX_USE_COLOR_CURRENT
|
|
&& defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR = attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_ALPHA_CURRENT && defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA
|
|
= attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\treturn
|
|
o;\n\t\t\t}\n\t\t\t\n\t\t\t#include \"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
|
|
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\tfloat
|
|
alpha = VFXGetFragmentColor(i);\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\treturn float4(_ObjectId,
|
|
_PassValue, 1.0, 1.0);\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\treturn
|
|
(float4)0;\n\t\t\t#else\n\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t#endif\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
|
|
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
|
|
}\n\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
|
|
_ DEBUG_DISPLAY\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos
|
|
: SV_POSITION;\n\t\t\t\t#if VFX_NEEDS_COLOR_INTERPOLATOR\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 color : COLOR0;\n\t\t\t\t#endif\n\t\t\t\t#if USE_SOFT_PARTICLE || USE_ALPHA_TEST
|
|
|| USE_EXPOSURE_WEIGHT\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3 builtInInterpolants
|
|
: TEXCOORD0;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t\tfloat3
|
|
posWS : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\tstruct
|
|
ps_output\n\t\t\t{\n\t\t\t\tfloat4 color : SV_Target0;\n\t\t\t};\n\t\t\n\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t#define VFX_VARYING_POSCS pos\n\t\t#define
|
|
VFX_VARYING_COLOR color.rgb\n\t\t#define VFX_VARYING_ALPHA color.a\n\t\t#define
|
|
VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE builtInInterpolants.x\n\t\t#define
|
|
VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y\n\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t#define
|
|
VFX_VARYING_POSWS posWS\n\t\t#endif\n\t\t#if USE_EXPOSURE_WEIGHT\n\t\t#define
|
|
VFX_VARYING_EXPOSUREWEIGHT builtInInterpolants.z\n\t\t#endif\n\t\t\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_FORWARD_UNLIT\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS and VFX_VARYING_POSCS
|
|
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_65DEC940(inout float pivotX, inout float pivotY, inout float pivotZ,
|
|
float3 Pivot) /*attribute:pivot Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t pivotX = Pivot.x;\n\t\t\t pivotY = Pivot.y;\n\t\t\t
|
|
pivotZ = Pivot.z;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#pragma
|
|
vertex vert\n\t\t\t\n\t\t\tVFX_VARYING_PS_INPUTS vert(uint id : SV_VertexID,
|
|
vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tconst uint vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT
|
|
- 1) << 1;\n\t\t\t\tconst StripData stripData = GetStripDataFromStripIndex(id
|
|
/ vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint relativeIndex
|
|
= (id % vertexPerStripCount + 1) >> 1; // relative index of particle in strip\n\t\t\t\t\n\t\t\t\tuint
|
|
maxEdgeIndex = relativeIndex - (id & 1) + 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn
|
|
o;\n\t\t\t\t\n\t\t\t\tuint index = GetParticleIndex(relativeIndex, stripData);\n\t\t\t\t#else\n\t\t\t\tuint
|
|
index = id >> 1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount
|
|
= 0;\n\t\t\t\t\t\t#if USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color = asfloat(attributeBuffer.Load3((index
|
|
* 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha = asfloat(attributeBuffer.Load((index
|
|
* 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x0) << 2));\n\t\t\t\t\t\tattributes.size
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x3) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x4) << 2));\n\t\t\t\t\t\tattributes.alpha
|
|
= asfloat(attributeBuffer.Load((index * 0x8 + 0x7) << 2));\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.targetPosition
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_65DEC940( /*inout */attributes.pivotX, /*inout */attributes.pivotY,
|
|
/*inout */attributes.pivotZ, float3(0, 0.5, 0));\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tfloat3 vPos = attributes.position;\n\t\t\t\t#else\n\t\t\t\t\t\n\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\treturn o;\t\n\t\t\t\t\n\t\t\t\t#if TARGET_FROM_ATTRIBUTES\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\tfloat4x4
|
|
elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\n\t\t\t\tattributes.position
|
|
= mul(elementToVFX,float4(0,0,0,1)).xyz;\n\t\t\t\t\n\t\t\t\tfloat3 targetOffset
|
|
= (float3)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t targetOffset = float3(0,
|
|
1, 0);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tattributes.targetPosition = mul(elementToVFX,float4(targetOffset,1)).xyz;\n\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
vPos = id & 1 ? attributes.targetPosition : attributes.position;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS
|
|
= TransformPositionVFXToClip(vPos);\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if VFX_USE_COLOR_CURRENT
|
|
&& defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR = attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_ALPHA_CURRENT && defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA
|
|
= attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\treturn
|
|
o;\n\t\t\t}\n\t\t\t\n\t\t\t#include \"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#pragma
|
|
fragment frag\n\t\t\tps_output frag(ps_input i)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tps_output
|
|
o = (ps_output)0;\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat4
|
|
color = VFXGetFragmentColor(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifndef VFX_TEXTURE_COLOR\n\t\t\t\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR float4(1.0,1.0,1.0,1.0)\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_DEFAULT\n\t\t\t\t\t\t\to.color = color * VFX_TEXTURE_COLOR;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_GRADIENTMAPPED\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\to.color = SampleGradient(gradient,
|
|
VFX_TEXTURE_COLOR.a * color.a) * float4(color.rgb,1.0);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\to.color
|
|
= VFXApplyPreExposure(o.color, i);\n\t\t\t\to.color = VFXApplyFog(o.color,i);\n\t\t\t\tVFXClipFragmentColor(o.color.a,i);\n\t\t\t\to.color.a
|
|
= saturate(o.color.a);\n\t\t o.color = VFXTransformFinalColor(o.color);\n\t\t\t\treturn
|
|
o;\n\t\t\t}\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t}\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[Galaxy Clouds]Initialize Particle'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_ANGLEZ_CURRENT
|
|
1\n#define VFX_USE_SEED_CURRENT 1\n#define VFX_USE_TEXINDEX_CURRENT 1\n#define
|
|
VFX_USE_PARTICLEID_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
|
|
float4 uniform_b;\n float4 uniform_c;\n float4 uniform_d;\nCBUFFER_END\n\nstruct
|
|
Attributes\n{\n float3 position;\n float angleZ;\n uint seed;\n
|
|
float texIndex;\n uint particleId;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
|
|
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
|
|
attributeBuffer;\r\nByteAddressBuffer sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n uint nbSpawned;\t\t\t\t\t// Numbers of particle
|
|
spawned\r\n uint spawnIndex;\t\t\t\t// Index of the first particle spawned\r\n
|
|
uint dispatchWidth;\r\n#else\r\n uint offsetInAdditionalOutput;\r\n\tuint
|
|
nbMax;\r\n#endif\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
|
|
deadListIn;\r\nByteAddressBuffer deadListCount; // This is bad to use a SRV
|
|
to fetch deadList count but Unity API currently prevent from copying to CB\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\nStructuredBuffer<uint> eventList;\r\nByteAddressBuffer
|
|
inputAdditional;\r\n#endif\r\n\r\n#if HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
SetAttribute_CAC29747(inout float3 position, float3 Position) /*attribute:position
|
|
Composition:Overwrite Source:Slot Random:Off channels:XYZ */\n{\n position
|
|
= Position;\n}\nvoid SetAttribute_48A7C211(inout float angleZ, inout uint seed,
|
|
float A, float B) /*attribute:angle Composition:Overwrite Source:Slot Random:Uniform
|
|
channels:Z */\n{\n angleZ = lerp(A.x,B.x,RAND);\n}\nvoid SetAttribute_CA100327(inout
|
|
float texIndex, inout uint seed, float A, float B) /*attribute:texIndex Composition:Overwrite
|
|
Source:Slot Random:Uniform channels:XYZ */\n{\n texIndex = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if
|
|
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
|
|
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
|
|
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
|
|
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
|
|
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
|
|
= stripIndex * PARTICLE_PER_STRIP_COUNT + ((STRIP_DATA(STRIP_FIRST_INDEX, stripIndex)
|
|
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
|
|
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
|
|
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n
|
|
uint currentSpawnIndex = spawnIndex;\r\n#endif\r\n\r\n#if USE_DEAD_LIST\r\n
|
|
maxThreadId = min(maxThreadId, deadListCount.Load(0x0));\r\n#elif VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
maxThreadId = min(maxThreadId, nbMax); //otherwise, nbSpawned already clamped
|
|
on CPU\r\n#endif\r\n\r\n if (id < maxThreadId)\r\n {\r\n#if VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
int sourceIndex = eventList[id];\r\n#endif\r\n\t\tuint particleIndex = id +
|
|
currentSpawnIndex;\r\n\t\t\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n int
|
|
sourceIndex = 0;\n /*//Loop with 1 iteration generate a wrong IL Assembly
|
|
(and actually, useless code)\n uint currentSumSpawnCount = 0u;\n
|
|
for (sourceIndex=0; sourceIndex<1; sourceIndex++)\n {\n currentSumSpawnCount
|
|
+= uint(asfloat(sourceAttributeBuffer.Load((sourceIndex * 0x1 + 0x0) << 2)));\n
|
|
if (id < currentSumSpawnCount)\n {\n break;\n
|
|
}\n }\n */\n \n\r\n#endif\r\n\r\n\t\tAttributes attributes
|
|
= (Attributes)0;\r\n\t\tSourceAttributes sourceAttributes = (SourceAttributes)0;\r\n\t\t\r\n
|
|
attributes.position = float3(0, 0, 0);\n attributes.angleZ = (float)0;\n
|
|
attributes.seed = (uint)0;\n attributes.texIndex = (float)0;\n
|
|
attributes.particleId = (uint)0;\n \n\r\n#if VFX_USE_PARTICLEID_CURRENT\r\n
|
|
attributes.particleId = particleIndex;\r\n#endif\r\n#if VFX_USE_SEED_CURRENT\r\n
|
|
attributes.seed = WangHash(particleIndex ^ systemSeed);\r\n#endif\r\n#if VFX_USE_SPAWNINDEX_CURRENT\r\n
|
|
attributes.spawnIndex = id;\r\n#endif\r\n#if HAS_STRIPS\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n\t\t\r\n#else\r\n
|
|
uint stripIndex = sourceIndex;\r\n#endif\r\n\t\tstripIndex = min(stripIndex,
|
|
STRIP_COUNT);\r\n\r\n if (!GetParticleIndex(particleIndex, stripIndex))\r\n
|
|
return;\r\n\r\n const StripData stripData = GetStripDataFromStripIndex(stripIndex,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n\t\tInitStripAttributes(particleIndex, attributes,
|
|
stripData);\r\n\t\t// TODO Change seed to be sure we're deterministic on random
|
|
with strip\r\n#endif\r\n \r\n {\n float tmp_x = (float)attributes.particleId;\n
|
|
float tmp_z = tmp_x / (float)100;\n float tmp_bb = tmp_z * (float)23;\n
|
|
float tmp_bc = sin(tmp_bb);\n float tmp_bd = SampleCurve(uniform_b,tmp_z);\n
|
|
float tmp_be = cos(tmp_bb);\n float3 tmp_bf = float3(tmp_bc, tmp_bd,
|
|
tmp_be);\n float tmp_bh = SampleCurve(uniform_c,tmp_z);\n
|
|
float3 tmp_bi = float3(tmp_bh, tmp_bh, tmp_bh);\n float3 tmp_bj
|
|
= float3(2.5, 0, 1.39999998) * tmp_bi;\n float3 tmp_bk = tmp_bf
|
|
* tmp_bj;\n SetAttribute_CAC29747( /*inout */attributes.position,
|
|
tmp_bk);\n }\n {\n SetAttribute_48A7C211( /*inout
|
|
*/attributes.angleZ, /*inout */attributes.seed, (float)0, (float)360);\n
|
|
}\n {\n SetAttribute_CA100327( /*inout */attributes.texIndex,
|
|
/*inout */attributes.seed, (float)0, (float)63);\n }\n {\n
|
|
float3 tmp_y = float3(0, 1, 0) * attributes.position;\n float tmp_z
|
|
= tmp_y[2];\n float tmp_ba = tmp_y[1];\n float tmp_bb
|
|
= tmp_z + tmp_ba;\n float tmp_bc = tmp_y[0];\n float
|
|
tmp_bd = tmp_bb + tmp_bc;\n float3 tmp_be = float3(tmp_bd, tmp_bd,
|
|
tmp_bd);\n float3 tmp_bf = float3(0, 1, 0) * tmp_be;\n
|
|
float3 tmp_bg = attributes.position - tmp_bf;\n float3 tmp_bh =
|
|
attributes.position * attributes.position;\n float tmp_bi = tmp_bh[2];\n
|
|
float tmp_bj = tmp_bh[1];\n float tmp_bk = tmp_bi + tmp_bj;\n
|
|
float tmp_bl = tmp_bh[0];\n float tmp_bm = tmp_bk + tmp_bl;\n
|
|
float tmp_bo = pow(tmp_bm, (float)0.5);\n float tmp_bp = SampleCurve(uniform_d,tmp_bo);\n
|
|
float tmp_br = tmp_bp * (float)24;\n float tmp_bs = cos(tmp_br);\n
|
|
float3 tmp_bt = float3(tmp_bs, tmp_bs, tmp_bs);\n float3 tmp_bu
|
|
= tmp_bg * tmp_bt;\n float3 tmp_bv = tmp_bf + tmp_bu;\n
|
|
float tmp_bx = tmp_bg[2];\n float tmp_by = (float)0 - tmp_bx;\n
|
|
float tmp_bz = tmp_bg[0];\n float3 tmp_ca = float3(tmp_by, (float)0,
|
|
tmp_bz);\n float tmp_cb = sin(tmp_br);\n float3 tmp_cc
|
|
= float3(tmp_cb, tmp_cb, tmp_cb);\n float3 tmp_cd = tmp_ca * tmp_cc;\n
|
|
float3 tmp_ce = tmp_bv + tmp_cd;\n SetAttribute_CAC29747( /*inout
|
|
*/attributes.position, tmp_ce);\n }\n \n\r\n\t\t\r\n#if VFX_USE_ALIVE_CURRENT\r\n
|
|
if (attributes.alive)\r\n#endif \r\n {\r\n#if USE_DEAD_LIST\r\n\t
|
|
uint deadIndex = deadListIn.DecrementCounter();\r\n uint index =
|
|
deadListIn[deadIndex];\r\n#else\r\n uint index = particleIndex;\r\n#endif\r\n
|
|
attributeBuffer.Store3((index * 0x4 + 0x0) << 2,asuint(attributes.position));\n
|
|
attributeBuffer.Store((index * 0x2 + 0x80) << 2,asuint(attributes.angleZ));\n
|
|
attributeBuffer.Store((index * 0x2 + 0x81) << 2,asuint(attributes.seed));\n
|
|
attributeBuffer.Store((index * 0x1 + 0xC0) << 2,asuint(attributes.texIndex));\n
|
|
attributeBuffer.Store((index * 0x1 + 0xE0) << 2,asuint(attributes.particleId));\n
|
|
\n\r\n }\r\n }\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[Galaxy Clouds]Update Particle'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_TEXINDEX_CURRENT
|
|
1\n#define VFX_USE_PARTICLEID_CURRENT 1\n#define VFX_HAS_INDIRECT_DRAW 1\n#define
|
|
VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
|
|
float4 uniform_c;\n float deltaTime_a;\n float uniform_d;\n uint2
|
|
PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n float3 position;\n
|
|
float texIndex;\n uint particleId;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
|
|
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
|
|
attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint> deadListOut;\r\n#endif\r\n\r\n#if
|
|
VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint> indirectBuffer;\r\n#endif\r\n\r\n#if
|
|
HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#if VFX_USE_STRIPALIVE_CURRENT\r\nBuffer<uint>
|
|
attachedStripDataBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n
|
|
uint nbMax;\r\n\tuint dispatchWidth;\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
FlipbookPlay_0(inout float texIndex, float FrameRate, float deltaTime) /*mode:Constant
|
|
*/\n{\n texIndex += FrameRate * deltaTime;\n}\nvoid SetAttribute_CAC29747(inout
|
|
float3 position, float3 Position) /*attribute:position Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n{\n position = Position;\n}\n\n\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
|
|
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
|
|
: SV_GroupThreadID)\r\n{\r\n\tuint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP
|
|
+ groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n\tuint index = id;\r\n\tif
|
|
(id < nbMax)\r\n\t{\r\n Attributes attributes = (Attributes)0;\r\n\t\tSourceAttributes
|
|
sourceAttributes = (SourceAttributes)0;\r\n\r\n#if VFX_USE_ALIVE_CURRENT\r\n\t\t\r\n\t\tif
|
|
(attributes.alive)\r\n\t\t{\r\n\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\tattributes.texIndex = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0xC0) << 2));\n\t\t\tattributes.particleId = (attributeBuffer.Load((index
|
|
* 0x1 + 0xE0) << 2));\n\t\t\t\n\r\n\r\n// Initialize built-in needed attributes\r\n#if
|
|
VFX_USE_OLDPOSITION_CURRENT\r\n\t\t\tattributes.oldPosition = attributes.position;\r\n#endif\r\n#if
|
|
HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
|
|
stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t FlipbookPlay_0( /*inout
|
|
*/attributes.texIndex, (float)3, deltaTime_a);\n\t\t\t}\n\t\t\t{\n\t\t\t
|
|
float3 tmp_y = float3(0, 1, 0) * attributes.position;\n\t\t\t float tmp_z
|
|
= tmp_y[2];\n\t\t\t float tmp_ba = tmp_y[1];\n\t\t\t float tmp_bb = tmp_z
|
|
+ tmp_ba;\n\t\t\t float tmp_bc = tmp_y[0];\n\t\t\t float tmp_bd = tmp_bb
|
|
+ tmp_bc;\n\t\t\t float3 tmp_be = float3(tmp_bd, tmp_bd, tmp_bd);\n\t\t\t
|
|
float3 tmp_bf = float3(0, 1, 0) * tmp_be;\n\t\t\t float3 tmp_bg = attributes.position
|
|
- tmp_bf;\n\t\t\t float3 tmp_bh = attributes.position * attributes.position;\n\t\t\t
|
|
float tmp_bi = tmp_bh[2];\n\t\t\t float tmp_bj = tmp_bh[1];\n\t\t\t float
|
|
tmp_bk = tmp_bi + tmp_bj;\n\t\t\t float tmp_bl = tmp_bh[0];\n\t\t\t float
|
|
tmp_bm = tmp_bk + tmp_bl;\n\t\t\t float tmp_bo = pow(tmp_bm, (float)0.5);\n\t\t\t
|
|
float tmp_bp = SampleCurve(uniform_c,tmp_bo);\n\t\t\t float tmp_bq = tmp_bp
|
|
* deltaTime_a;\n\t\t\t uint tmp_br = attributes.particleId ^ asuint(uniform_d);\n\t\t\t
|
|
float tmp_bs = FixedRand(tmp_br);\n\t\t\t float tmp_bu = tmp_bs * (float)1.5;\n\t\t\t
|
|
float tmp_bv = (float)0.5 + tmp_bu;\n\t\t\t float tmp_bw = tmp_bq * tmp_bv;\n\t\t\t
|
|
float tmp_bx = cos(tmp_bw);\n\t\t\t float3 tmp_by = float3(tmp_bx, tmp_bx,
|
|
tmp_bx);\n\t\t\t float3 tmp_bz = tmp_bg * tmp_by;\n\t\t\t float3 tmp_ca
|
|
= tmp_bf + tmp_bz;\n\t\t\t float tmp_cc = tmp_bg[2];\n\t\t\t float tmp_cd
|
|
= (float)0 - tmp_cc;\n\t\t\t float tmp_ce = tmp_bg[0];\n\t\t\t float3
|
|
tmp_cf = float3(tmp_cd, (float)0, tmp_ce);\n\t\t\t float tmp_cg = sin(tmp_bw);\n\t\t\t
|
|
float3 tmp_ch = float3(tmp_cg, tmp_cg, tmp_cg);\n\t\t\t float3 tmp_ci =
|
|
tmp_cf * tmp_ch;\n\t\t\t float3 tmp_cj = tmp_ca + tmp_ci;\n\t\t\t SetAttribute_CAC29747(
|
|
/*inout */attributes.position, tmp_cj);\n\t\t\t}\n\t\t\t\n\r\n\r\n\t\t\tif
|
|
(attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store3((index * 0x4
|
|
+ 0x0) << 2,asuint(attributes.position));\n\t\t\t\tattributeBuffer.Store((index
|
|
* 0x1 + 0xC0) << 2,asuint(attributes.texIndex));\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\t\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n\r\n#if HAS_STRIPS\t\t\t\r\n\t\t\t\tuint relativeIndexInStrip
|
|
= GetRelativeIndex(index, stripData);\r\n\t\t\t\tInterlockedMin(STRIP_DATA(STRIP_MIN_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n\t\t\t\tInterlockedMax(STRIP_DATA(STRIP_MAX_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n#endif\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t\r\n#if
|
|
USE_DEAD_LIST && !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
|
|
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,
|
|
STRIP_MIN_ALIVE, index) == ~1) // Attached strip is no longer alive, recycle
|
|
the particle \r\n {\r\n uint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n attributes.stripAlive = false;\r\n
|
|
\r\n } \r\n }\r\n#endif\r\n#else\r\n\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\tattributes.texIndex
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0xC0) << 2));\n\t\tattributes.particleId
|
|
= (attributeBuffer.Load((index * 0x1 + 0xE0) << 2));\n\t\t\n\r\n\t\t\r\n#if
|
|
VFX_USE_OLDPOSITION_CURRENT\r\n\t\tattributes.oldPosition = attributes.position;\r\n#endif\r\n#if
|
|
HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
|
|
stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t FlipbookPlay_0( /*inout */attributes.texIndex,
|
|
(float)3, deltaTime_a);\n\t\t}\n\t\t{\n\t\t float3 tmp_y = float3(0, 1,
|
|
0) * attributes.position;\n\t\t float tmp_z = tmp_y[2];\n\t\t float tmp_ba
|
|
= tmp_y[1];\n\t\t float tmp_bb = tmp_z + tmp_ba;\n\t\t float tmp_bc =
|
|
tmp_y[0];\n\t\t float tmp_bd = tmp_bb + tmp_bc;\n\t\t float3 tmp_be =
|
|
float3(tmp_bd, tmp_bd, tmp_bd);\n\t\t float3 tmp_bf = float3(0, 1, 0) *
|
|
tmp_be;\n\t\t float3 tmp_bg = attributes.position - tmp_bf;\n\t\t float3
|
|
tmp_bh = attributes.position * attributes.position;\n\t\t float tmp_bi =
|
|
tmp_bh[2];\n\t\t float tmp_bj = tmp_bh[1];\n\t\t float tmp_bk = tmp_bi
|
|
+ tmp_bj;\n\t\t float tmp_bl = tmp_bh[0];\n\t\t float tmp_bm = tmp_bk
|
|
+ tmp_bl;\n\t\t float tmp_bo = pow(tmp_bm, (float)0.5);\n\t\t float tmp_bp
|
|
= SampleCurve(uniform_c,tmp_bo);\n\t\t float tmp_bq = tmp_bp * deltaTime_a;\n\t\t
|
|
uint tmp_br = attributes.particleId ^ asuint(uniform_d);\n\t\t float tmp_bs
|
|
= FixedRand(tmp_br);\n\t\t float tmp_bu = tmp_bs * (float)1.5;\n\t\t
|
|
float tmp_bv = (float)0.5 + tmp_bu;\n\t\t float tmp_bw = tmp_bq * tmp_bv;\n\t\t
|
|
float tmp_bx = cos(tmp_bw);\n\t\t float3 tmp_by = float3(tmp_bx, tmp_bx,
|
|
tmp_bx);\n\t\t float3 tmp_bz = tmp_bg * tmp_by;\n\t\t float3 tmp_ca =
|
|
tmp_bf + tmp_bz;\n\t\t float tmp_cc = tmp_bg[2];\n\t\t float tmp_cd =
|
|
(float)0 - tmp_cc;\n\t\t float tmp_ce = tmp_bg[0];\n\t\t float3 tmp_cf
|
|
= float3(tmp_cd, (float)0, tmp_ce);\n\t\t float tmp_cg = sin(tmp_bw);\n\t\t
|
|
float3 tmp_ch = float3(tmp_cg, tmp_cg, tmp_cg);\n\t\t float3 tmp_ci = tmp_cf
|
|
* tmp_ch;\n\t\t float3 tmp_cj = tmp_ca + tmp_ci;\n\t\t SetAttribute_CAC29747(
|
|
/*inout */attributes.position, tmp_cj);\n\t\t}\n\t\t\n\r\n\t\tattributeBuffer.Store3((index
|
|
* 0x4 + 0x0) << 2,asuint(attributes.position));\n\t\tattributeBuffer.Store((index
|
|
* 0x1 + 0xC0) << 2,asuint(attributes.texIndex));\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[Galaxy Stars]Initialize Particle'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_SEED_CURRENT
|
|
1\n#define VFX_USE_DIRECTION_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
|
|
1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
|
|
float4 uniform_b;\nCBUFFER_END\n\nstruct Attributes\n{\n float3 position;\n
|
|
uint seed;\n float3 direction;\n uint particleId;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
|
|
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
|
|
attributeBuffer;\r\nByteAddressBuffer sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n uint nbSpawned;\t\t\t\t\t// Numbers of particle
|
|
spawned\r\n uint spawnIndex;\t\t\t\t// Index of the first particle spawned\r\n
|
|
uint dispatchWidth;\r\n#else\r\n uint offsetInAdditionalOutput;\r\n\tuint
|
|
nbMax;\r\n#endif\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
|
|
deadListIn;\r\nByteAddressBuffer deadListCount; // This is bad to use a SRV
|
|
to fetch deadList count but Unity API currently prevent from copying to CB\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\nStructuredBuffer<uint> eventList;\r\nByteAddressBuffer
|
|
inputAdditional;\r\n#endif\r\n\r\n#if HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
PositionSphere_4A7(inout float3 position, inout uint seed, inout float3 direction,
|
|
float3 ArcSphere_sphere_center, float ArcSphere_sphere_radius, float ArcSphere_arc,
|
|
float volumeFactor) /*positionMode:ThicknessRelative spawnMode:Random */\n{\n
|
|
float cosPhi = 2.0f * RAND - 1.0f;float theta = ArcSphere_arc * RAND;\n
|
|
float rNorm = pow(volumeFactor + (1 - volumeFactor) * RAND, 1.0f / 3.0f);\n
|
|
\n float2 sincosTheta;\n sincos(theta, sincosTheta.x, sincosTheta.y);\n
|
|
sincosTheta *= sqrt(1.0f - cosPhi * cosPhi);\n \n direction = float3(sincosTheta,
|
|
cosPhi);\n position += direction * (rNorm * ArcSphere_sphere_radius) + ArcSphere_sphere_center;\n
|
|
\n}\nvoid SetAttribute_C707D7BF(inout float3 position, inout uint seed, float3
|
|
A, float3 B) /*attribute:position Composition:Add Source:Slot Random:PerComponent
|
|
channels:XYZ */\n{\n position += lerp(A,B,RAND3);\n}\nvoid SetAttribute_D238196D(inout
|
|
float3 position, float3 Position) /*attribute:position Composition:Multiply
|
|
Source:Slot Random:Off channels:XYZ */\n{\n position *= Position;\n}\nvoid
|
|
SetAttribute_CAC29747(inout float3 position, float3 Position) /*attribute:position
|
|
Composition:Overwrite Source:Slot Random:Off channels:XYZ */\n{\n position
|
|
= Position;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint
|
|
particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
|
|
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
|
|
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
|
|
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
|
|
= stripIndex * PARTICLE_PER_STRIP_COUNT + ((STRIP_DATA(STRIP_FIRST_INDEX, stripIndex)
|
|
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
|
|
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
|
|
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n
|
|
uint currentSpawnIndex = spawnIndex;\r\n#endif\r\n\r\n#if USE_DEAD_LIST\r\n
|
|
maxThreadId = min(maxThreadId, deadListCount.Load(0x0));\r\n#elif VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
maxThreadId = min(maxThreadId, nbMax); //otherwise, nbSpawned already clamped
|
|
on CPU\r\n#endif\r\n\r\n if (id < maxThreadId)\r\n {\r\n#if VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
int sourceIndex = eventList[id];\r\n#endif\r\n\t\tuint particleIndex = id +
|
|
currentSpawnIndex;\r\n\t\t\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n int
|
|
sourceIndex = 0;\n /*//Loop with 1 iteration generate a wrong IL Assembly
|
|
(and actually, useless code)\n uint currentSumSpawnCount = 0u;\n
|
|
for (sourceIndex=0; sourceIndex<1; sourceIndex++)\n {\n currentSumSpawnCount
|
|
+= uint(asfloat(sourceAttributeBuffer.Load((sourceIndex * 0x1 + 0x0) << 2)));\n
|
|
if (id < currentSumSpawnCount)\n {\n break;\n
|
|
}\n }\n */\n \n\r\n#endif\r\n\r\n\t\tAttributes attributes
|
|
= (Attributes)0;\r\n\t\tSourceAttributes sourceAttributes = (SourceAttributes)0;\r\n\t\t\r\n
|
|
attributes.position = float3(0, 0, 0);\n attributes.seed = (uint)0;\n
|
|
attributes.direction = float3(0, 0, 1);\n attributes.particleId = (uint)0;\n
|
|
\n\r\n#if VFX_USE_PARTICLEID_CURRENT\r\n attributes.particleId = particleIndex;\r\n#endif\r\n#if
|
|
VFX_USE_SEED_CURRENT\r\n attributes.seed = WangHash(particleIndex ^
|
|
systemSeed);\r\n#endif\r\n#if VFX_USE_SPAWNINDEX_CURRENT\r\n attributes.spawnIndex
|
|
= id;\r\n#endif\r\n#if HAS_STRIPS\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n\t\t\r\n#else\r\n
|
|
uint stripIndex = sourceIndex;\r\n#endif\r\n\t\tstripIndex = min(stripIndex,
|
|
STRIP_COUNT);\r\n\r\n if (!GetParticleIndex(particleIndex, stripIndex))\r\n
|
|
return;\r\n\r\n const StripData stripData = GetStripDataFromStripIndex(stripIndex,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n\t\tInitStripAttributes(particleIndex, attributes,
|
|
stripData);\r\n\t\t// TODO Change seed to be sure we're deterministic on random
|
|
with strip\r\n#endif\r\n \r\n {\n PositionSphere_4A7(
|
|
/*inout */attributes.position, /*inout */attributes.seed, /*inout */attributes.direction,
|
|
float3(0, 0, 0), (float)0.860000014, (float)6.28318548, (float)0.728999913);\n
|
|
}\n {\n SetAttribute_C707D7BF( /*inout */attributes.position,
|
|
/*inout */attributes.seed, float3(0, -1, 0), float3(0, 1, 0));\n }\n
|
|
{\n SetAttribute_D238196D( /*inout */attributes.position, float3(2,
|
|
0.200000003, 1));\n }\n {\n float3 tmp_w = float3(0,
|
|
1, 0) * attributes.position;\n float tmp_x = tmp_w[2];\n
|
|
float tmp_y = tmp_w[1];\n float tmp_z = tmp_x + tmp_y;\n
|
|
float tmp_ba = tmp_w[0];\n float tmp_bb = tmp_z + tmp_ba;\n
|
|
float3 tmp_bc = float3(tmp_bb, tmp_bb, tmp_bb);\n float3 tmp_bd
|
|
= float3(0, 1, 0) * tmp_bc;\n float3 tmp_be = attributes.position
|
|
- tmp_bd;\n float3 tmp_bf = attributes.position * attributes.position;\n
|
|
float tmp_bg = tmp_bf[2];\n float tmp_bh = tmp_bf[1];\n
|
|
float tmp_bi = tmp_bg + tmp_bh;\n float tmp_bj = tmp_bf[0];\n
|
|
float tmp_bk = tmp_bi + tmp_bj;\n float tmp_bm = pow(tmp_bk, (float)0.5);\n
|
|
float tmp_bn = SampleCurve(uniform_b,tmp_bm);\n float tmp_bp = tmp_bn
|
|
* (float)24;\n float tmp_bq = cos(tmp_bp);\n float3 tmp_br
|
|
= float3(tmp_bq, tmp_bq, tmp_bq);\n float3 tmp_bs = tmp_be * tmp_br;\n
|
|
float3 tmp_bt = tmp_bd + tmp_bs;\n float tmp_bv = tmp_be[2];\n
|
|
float tmp_bw = (float)0 - tmp_bv;\n float tmp_bx = tmp_be[0];\n
|
|
float3 tmp_by = float3(tmp_bw, (float)0, tmp_bx);\n float tmp_bz
|
|
= sin(tmp_bp);\n float3 tmp_ca = float3(tmp_bz, tmp_bz, tmp_bz);\n
|
|
float3 tmp_cb = tmp_by * tmp_ca;\n float3 tmp_cc = tmp_bt + tmp_cb;\n
|
|
SetAttribute_CAC29747( /*inout */attributes.position, tmp_cc);\n }\n
|
|
\n\r\n\t\t\r\n#if VFX_USE_ALIVE_CURRENT\r\n if (attributes.alive)\r\n#endif
|
|
\r\n {\r\n#if USE_DEAD_LIST\r\n\t uint deadIndex = deadListIn.DecrementCounter();\r\n
|
|
uint index = deadListIn[deadIndex];\r\n#else\r\n uint index = particleIndex;\r\n#endif\r\n
|
|
attributeBuffer.Store3((index * 0x4 + 0x0) << 2,asuint(attributes.position));\n
|
|
attributeBuffer.Store((index * 0x1 + 0xC00) << 2,asuint(attributes.particleId));\n
|
|
\n\r\n }\r\n }\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[Galaxy Stars]Update Particle'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
|
|
1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
|
|
float4 uniform_b;\n float uniform_c;\n float uniform_d;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
|
|
Attributes\n{\n float3 position;\n uint particleId;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
|
|
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
|
|
attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint> deadListOut;\r\n#endif\r\n\r\n#if
|
|
VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint> indirectBuffer;\r\n#endif\r\n\r\n#if
|
|
HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#if VFX_USE_STRIPALIVE_CURRENT\r\nBuffer<uint>
|
|
attachedStripDataBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n
|
|
uint nbMax;\r\n\tuint dispatchWidth;\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
SetAttribute_CAC29747(inout float3 position, float3 Position) /*attribute:position
|
|
Composition:Overwrite Source:Slot Random:Off channels:XYZ */\n{\n position
|
|
= Position;\n}\n\n\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
|
|
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n\tuint
|
|
id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP + groupId.y * dispatchWidth
|
|
* NB_THREADS_PER_GROUP;\r\n\tuint index = id;\r\n\tif (id < nbMax)\r\n\t{\r\n
|
|
Attributes attributes = (Attributes)0;\r\n\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\r\n\r\n#if VFX_USE_ALIVE_CURRENT\r\n\t\t\r\n\t\tif (attributes.alive)\r\n\t\t{\r\n\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\tattributes.particleId
|
|
= (attributeBuffer.Load((index * 0x1 + 0xC00) << 2));\n\t\t\t\n\r\n\r\n// Initialize
|
|
built-in needed attributes\r\n#if VFX_USE_OLDPOSITION_CURRENT\r\n\t\t\tattributes.oldPosition
|
|
= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
|
|
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
|
|
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t
|
|
float3 tmp_y = float3(0, 1, 0) * attributes.position;\n\t\t\t float tmp_z
|
|
= tmp_y[2];\n\t\t\t float tmp_ba = tmp_y[1];\n\t\t\t float tmp_bb = tmp_z
|
|
+ tmp_ba;\n\t\t\t float tmp_bc = tmp_y[0];\n\t\t\t float tmp_bd = tmp_bb
|
|
+ tmp_bc;\n\t\t\t float3 tmp_be = float3(tmp_bd, tmp_bd, tmp_bd);\n\t\t\t
|
|
float3 tmp_bf = float3(0, 1, 0) * tmp_be;\n\t\t\t float3 tmp_bg = attributes.position
|
|
- tmp_bf;\n\t\t\t float3 tmp_bh = attributes.position * attributes.position;\n\t\t\t
|
|
float tmp_bi = tmp_bh[2];\n\t\t\t float tmp_bj = tmp_bh[1];\n\t\t\t float
|
|
tmp_bk = tmp_bi + tmp_bj;\n\t\t\t float tmp_bl = tmp_bh[0];\n\t\t\t float
|
|
tmp_bm = tmp_bk + tmp_bl;\n\t\t\t float tmp_bo = pow(tmp_bm, (float)0.5);\n\t\t\t
|
|
float tmp_bp = SampleCurve(uniform_b,tmp_bo);\n\t\t\t float tmp_bq = tmp_bp
|
|
* uniform_c;\n\t\t\t uint tmp_br = attributes.particleId ^ asuint(uniform_d);\n\t\t\t
|
|
float tmp_bs = FixedRand(tmp_br);\n\t\t\t float tmp_bu = tmp_bs * (float)1.5;\n\t\t\t
|
|
float tmp_bv = (float)0.5 + tmp_bu;\n\t\t\t float tmp_bw = tmp_bq * tmp_bv;\n\t\t\t
|
|
float tmp_bx = cos(tmp_bw);\n\t\t\t float3 tmp_by = float3(tmp_bx, tmp_bx,
|
|
tmp_bx);\n\t\t\t float3 tmp_bz = tmp_bg * tmp_by;\n\t\t\t float3 tmp_ca
|
|
= tmp_bf + tmp_bz;\n\t\t\t float tmp_cc = tmp_bg[2];\n\t\t\t float tmp_cd
|
|
= (float)0 - tmp_cc;\n\t\t\t float tmp_ce = tmp_bg[0];\n\t\t\t float3
|
|
tmp_cf = float3(tmp_cd, (float)0, tmp_ce);\n\t\t\t float tmp_cg = sin(tmp_bw);\n\t\t\t
|
|
float3 tmp_ch = float3(tmp_cg, tmp_cg, tmp_cg);\n\t\t\t float3 tmp_ci =
|
|
tmp_cf * tmp_ch;\n\t\t\t float3 tmp_cj = tmp_ca + tmp_ci;\n\t\t\t SetAttribute_CAC29747(
|
|
/*inout */attributes.position, tmp_cj);\n\t\t\t}\n\t\t\t\n\r\n\r\n\t\t\tif
|
|
(attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store3((index * 0x4
|
|
+ 0x0) << 2,asuint(attributes.position));\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\t\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n\r\n#if HAS_STRIPS\t\t\t\r\n\t\t\t\tuint relativeIndexInStrip
|
|
= GetRelativeIndex(index, stripData);\r\n\t\t\t\tInterlockedMin(STRIP_DATA(STRIP_MIN_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n\t\t\t\tInterlockedMax(STRIP_DATA(STRIP_MAX_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n#endif\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t\r\n#if
|
|
USE_DEAD_LIST && !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
|
|
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,
|
|
STRIP_MIN_ALIVE, index) == ~1) // Attached strip is no longer alive, recycle
|
|
the particle \r\n {\r\n uint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n attributes.stripAlive = false;\r\n
|
|
\r\n } \r\n }\r\n#endif\r\n#else\r\n\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\tattributes.particleId
|
|
= (attributeBuffer.Load((index * 0x1 + 0xC00) << 2));\n\t\t\n\r\n\t\t\r\n#if
|
|
VFX_USE_OLDPOSITION_CURRENT\r\n\t\tattributes.oldPosition = attributes.position;\r\n#endif\r\n#if
|
|
HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
|
|
stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t float3 tmp_y = float3(0, 1,
|
|
0) * attributes.position;\n\t\t float tmp_z = tmp_y[2];\n\t\t float tmp_ba
|
|
= tmp_y[1];\n\t\t float tmp_bb = tmp_z + tmp_ba;\n\t\t float tmp_bc =
|
|
tmp_y[0];\n\t\t float tmp_bd = tmp_bb + tmp_bc;\n\t\t float3 tmp_be =
|
|
float3(tmp_bd, tmp_bd, tmp_bd);\n\t\t float3 tmp_bf = float3(0, 1, 0) *
|
|
tmp_be;\n\t\t float3 tmp_bg = attributes.position - tmp_bf;\n\t\t float3
|
|
tmp_bh = attributes.position * attributes.position;\n\t\t float tmp_bi =
|
|
tmp_bh[2];\n\t\t float tmp_bj = tmp_bh[1];\n\t\t float tmp_bk = tmp_bi
|
|
+ tmp_bj;\n\t\t float tmp_bl = tmp_bh[0];\n\t\t float tmp_bm = tmp_bk
|
|
+ tmp_bl;\n\t\t float tmp_bo = pow(tmp_bm, (float)0.5);\n\t\t float tmp_bp
|
|
= SampleCurve(uniform_b,tmp_bo);\n\t\t float tmp_bq = tmp_bp * uniform_c;\n\t\t
|
|
uint tmp_br = attributes.particleId ^ asuint(uniform_d);\n\t\t float tmp_bs
|
|
= FixedRand(tmp_br);\n\t\t float tmp_bu = tmp_bs * (float)1.5;\n\t\t
|
|
float tmp_bv = (float)0.5 + tmp_bu;\n\t\t float tmp_bw = tmp_bq * tmp_bv;\n\t\t
|
|
float tmp_bx = cos(tmp_bw);\n\t\t float3 tmp_by = float3(tmp_bx, tmp_bx,
|
|
tmp_bx);\n\t\t float3 tmp_bz = tmp_bg * tmp_by;\n\t\t float3 tmp_ca =
|
|
tmp_bf + tmp_bz;\n\t\t float tmp_cc = tmp_bg[2];\n\t\t float tmp_cd =
|
|
(float)0 - tmp_cc;\n\t\t float tmp_ce = tmp_bg[0];\n\t\t float3 tmp_cf
|
|
= float3(tmp_cd, (float)0, tmp_ce);\n\t\t float tmp_cg = sin(tmp_bw);\n\t\t
|
|
float3 tmp_ch = float3(tmp_cg, tmp_cg, tmp_cg);\n\t\t float3 tmp_ci = tmp_cf
|
|
* tmp_ch;\n\t\t float3 tmp_cj = tmp_ca + tmp_ci;\n\t\t SetAttribute_CAC29747(
|
|
/*inout */attributes.position, tmp_cj);\n\t\t}\n\t\t\n\r\n\t\tattributeBuffer.Store3((index
|
|
* 0x4 + 0x0) << 2,asuint(attributes.position));\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
|
|
- compute: 0
|
|
name: '[Galaxy Stars]Dots'
|
|
source: "Shader \"Hidden/VFX/MainMenu-Galaxy/Galaxy Stars/Dots\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
|
|
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Geometry+450\" \"IgnoreProjector\"=\"False\"
|
|
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
|
|
LEqual\n\t\tZWrite On\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
|
|
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
|
|
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION
|
|
(2)\n\t\t#define VFX_USE_POSITION_CURRENT 1\n\t\t#define VFX_USE_PARTICLEID_CURRENT
|
|
1\n\t\t#define VFX_USE_COLOR_CURRENT 1\n\t\t#define VFX_USE_ALPHA_CURRENT 1\n\t\t#define
|
|
VFX_USE_ALIVE_CURRENT 1\n\t\t#define VFX_USE_AXISX_CURRENT 1\n\t\t#define VFX_USE_AXISY_CURRENT
|
|
1\n\t\t#define VFX_USE_AXISZ_CURRENT 1\n\t\t#define VFX_USE_ANGLEX_CURRENT
|
|
1\n\t\t#define VFX_USE_ANGLEY_CURRENT 1\n\t\t#define VFX_USE_ANGLEZ_CURRENT
|
|
1\n\t\t#define VFX_USE_PIVOTX_CURRENT 1\n\t\t#define VFX_USE_PIVOTY_CURRENT
|
|
1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define VFX_USE_SIZE_CURRENT 1\n\t\t#define
|
|
VFX_USE_SCALEX_CURRENT 1\n\t\t#define VFX_USE_SCALEY_CURRENT 1\n\t\t#define
|
|
VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT 1\n\t\t#define
|
|
IS_OPAQUE_PARTICLE 1\n\t\t#define USE_ALPHA_TEST 1\n\t\t#define VFX_BYPASS_EXPOSURE
|
|
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
|
|
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
|
|
float Color_f;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
|
|
Attributes\n\t\t{\n\t\t float3 position;\n\t\t uint particleId;\n\t\t
|
|
float3 color;\n\t\t float alpha;\n\t\t bool alive;\n\t\t float3 axisX;\n\t\t
|
|
float3 axisY;\n\t\t float3 axisZ;\n\t\t float angleX;\n\t\t float
|
|
angleY;\n\t\t float angleZ;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t
|
|
float pivotZ;\n\t\t float size;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t
|
|
float scaleZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
|
|
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
|
|
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
|
|
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
|
|
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer
|
|
attributeBuffer;\t\n\t\t\n\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\tStructuredBuffer<uint>
|
|
indirectBuffer;\t\n\t\t#endif\t\n\t\t\n\t\t#if USE_DEAD_LIST_COUNT\n\t\tByteAddressBuffer
|
|
deadListCount;\n\t\t#endif\n\t\t\n\t\t#if HAS_STRIPS\n\t\tBuffer<uint> stripDataBuffer;\n\t\t#endif\n\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD || USE_MOTION_VECTORS_PASS\n\t\tByteAddressBuffer
|
|
elementToVFXBufferPrevious;\n\t\t#endif\n\t\t\n\t\tCBUFFER_START(outputParams)\n\t\t\tfloat
|
|
nbMax;\n\t\t\tfloat systemSeed;\n\t\tCBUFFER_END\n\t\t\n\t\t// Helper macros
|
|
to always use a valid instanceID\n\t\t#if defined(UNITY_STEREO_INSTANCING_ENABLED)\n\t\t\t#define
|
|
VFX_DECLARE_INSTANCE_ID UNITY_VERTEX_INPUT_INSTANCE_ID\n\t\t\t#define VFX_GET_INSTANCE_ID(i)
|
|
unity_InstanceID\n\t\t#else\n\t\t\t#define VFX_DECLARE_INSTANCE_ID uint
|
|
instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
|
|
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
|
|
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
|
|
USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION
|
|
|| VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha threshold\n\t\t\t\t// y: frame
|
|
blending factor\n\t\t\t\t// z: alpha\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3
|
|
builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
|
|
TEXCOORD3;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t
|
|
\n\t\t\t #if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t float3 posWS : TEXCOORD5;\n\t\t\t
|
|
#endif\n\t\t\t \n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.z\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t#define VFX_VARYING_FRAMEBLEND builtInInterpolants.y\n\t\t\t#define
|
|
VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy\n\t\t\t#define VFX_VARYING_UV
|
|
uv\n\t\t\t\n\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t#define VFX_VARYING_POSWS
|
|
posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
|
|
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
|
|
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_C707D62A(inout float3 position, float3 Position) /*attribute:position
|
|
Composition:Add Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t
|
|
position += Position;\n\t\t\t}\n\t\t\tvoid Orient_4(inout float3 axisX, inout
|
|
float3 axisY, inout float3 axisZ) /*mode:FaceCameraPlane axes:ZY */\n\t\t\t{\n\t\t\t
|
|
\n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t axisX =
|
|
viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE
|
|
// Need to remove potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t \n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_3278B229(inout float size, float Size) /*attribute:size Composition:Overwrite
|
|
Source:Slot Random:Off channels:X */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid
|
|
SubpixelAA(float3 position, inout float alpha, float size, inout float scaleX,
|
|
inout float scaleY)\n\t\t\t{\n\t\t\t \n\t\t\t float2 localSize = size
|
|
* float2(scaleX, scaleY);\n\t\t\t float clipPosW = TransformPositionVFXToClip(position).w;\n\t\t\t
|
|
float minSize = clipPosW / (0.5f * min(UNITY_MATRIX_P[0][0] * _ScreenParams.x,-UNITY_MATRIX_P[1][1]
|
|
* _ScreenParams.y)); // max size in one pixel\n\t\t\t float2 clampedSize
|
|
= max(localSize,minSize);\n\t\t\t float fade = (localSize.x * localSize.y)
|
|
/ (clampedSize.x * clampedSize.y);\n\t\t\t alpha *= fade;\n\t\t\t localSize
|
|
= clampedSize;\n\t\t\t scaleX = localSize.x / size;\n\t\t\t scaleY =
|
|
localSize.y / size;\n\t\t\t}\n\t\t\tvoid SetAttribute_FDD06EC7(inout float3
|
|
color, float3 Color) /*attribute:color Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t color = Color;\n\t\t\t}\n\t\t\tvoid AttributeFromCurve_75C2BB06(inout
|
|
float3 color, uint particleId, float Color, uint Seed) /*attribute:color Composition:Multiply
|
|
AlphaComposition:Overwrite SampleMode:RandomConstantPerParticle Mode:PerComponent
|
|
ColorMode:Color channels:XYZ */\n\t\t\t{\n\t\t\t float t = FIXED_RAND(Seed);\n\t\t\t
|
|
float4 value = 0.0f;\n\t\t\t value = SampleGradient(Color, t);\n\t\t\t
|
|
color *= value.rgb;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if defined(HAS_STRIPS)
|
|
&& !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD must be defined
|
|
when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.particleId = (attributeBuffer.Load((index
|
|
* 0x1 + 0xC00) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.particleId
|
|
= (attributeBuffer.Load((index * 0x1 + 0xC00) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_C707D62A( /*inout */attributes.position, float3(0, 0, 0));\n\t\t\t\t}\n\t\t\t\tOrient_4(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_3278B229( /*inout */attributes.size, (float)0.00400000019);\n\t\t\t\t}\n\t\t\t\tSubpixelAA(attributes.position,
|
|
/*inout */attributes.alpha, attributes.size, /*inout */attributes.scaleX,
|
|
/*inout */attributes.scaleY);\n\t\t\t\t{\n\t\t\t\t SetAttribute_FDD06EC7(
|
|
/*inout */attributes.color, float3(8.04188347, 109.905746, 511.999939));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
|
|
AttributeFromCurve_75C2BB06( /*inout */attributes.color, attributes.particleId,
|
|
Color_f, (uint)0);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if !HAS_STRIPS\n\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\tfloat
|
|
alphaThreshold = (float)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
|
|
alphaThreshold = (float)0.149629295;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
|
|
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
|
|
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
|
|
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
|
|
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
|
|
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
|
|
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
|
|
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
|
|
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
|
|
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
|
|
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
|
|
Depth pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"DepthForwardOnly\"
|
|
}\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define
|
|
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma target 4.5\n\t\t\t\n\t\t\tstruct
|
|
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4
|
|
uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if
|
|
USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION || VFX_USE_ALPHA_CURRENT\n\t\t\t\t//
|
|
x: alpha threshold\n\t\t\t\t// y: frame blending factor\n\t\t\t\t// z: alpha\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float3 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t// x: motion vectors scale X\n\t\t\t\t//
|
|
y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float2 builtInInterpolants2
|
|
: TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4
|
|
cPosPrevious : TEXCOORD3;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t
|
|
\n\t\t\t #if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t float3 posWS : TEXCOORD5;\n\t\t\t
|
|
#endif\n\t\t\t \n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.z\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t#define VFX_VARYING_FRAMEBLEND builtInInterpolants.y\n\t\t\t#define
|
|
VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy\n\t\t\t#define VFX_VARYING_UV
|
|
uv\n\t\t\t\n\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t#define VFX_VARYING_POSWS
|
|
posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
|
|
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
|
|
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_C707D62A(inout float3 position, float3 Position) /*attribute:position
|
|
Composition:Add Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t
|
|
position += Position;\n\t\t\t}\n\t\t\tvoid Orient_4(inout float3 axisX, inout
|
|
float3 axisY, inout float3 axisZ) /*mode:FaceCameraPlane axes:ZY */\n\t\t\t{\n\t\t\t
|
|
\n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t axisX =
|
|
viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE
|
|
// Need to remove potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t \n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_3278B229(inout float size, float Size) /*attribute:size Composition:Overwrite
|
|
Source:Slot Random:Off channels:X */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid
|
|
SubpixelAA(float3 position, inout float alpha, float size, inout float scaleX,
|
|
inout float scaleY)\n\t\t\t{\n\t\t\t \n\t\t\t float2 localSize = size
|
|
* float2(scaleX, scaleY);\n\t\t\t float clipPosW = TransformPositionVFXToClip(position).w;\n\t\t\t
|
|
float minSize = clipPosW / (0.5f * min(UNITY_MATRIX_P[0][0] * _ScreenParams.x,-UNITY_MATRIX_P[1][1]
|
|
* _ScreenParams.y)); // max size in one pixel\n\t\t\t float2 clampedSize
|
|
= max(localSize,minSize);\n\t\t\t float fade = (localSize.x * localSize.y)
|
|
/ (clampedSize.x * clampedSize.y);\n\t\t\t alpha *= fade;\n\t\t\t localSize
|
|
= clampedSize;\n\t\t\t scaleX = localSize.x / size;\n\t\t\t scaleY =
|
|
localSize.y / size;\n\t\t\t}\n\t\t\tvoid SetAttribute_FDD06EC7(inout float3
|
|
color, float3 Color) /*attribute:color Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t color = Color;\n\t\t\t}\n\t\t\tvoid AttributeFromCurve_75C2BB06(inout
|
|
float3 color, uint particleId, float Color, uint Seed) /*attribute:color Composition:Multiply
|
|
AlphaComposition:Overwrite SampleMode:RandomConstantPerParticle Mode:PerComponent
|
|
ColorMode:Color channels:XYZ */\n\t\t\t{\n\t\t\t float t = FIXED_RAND(Seed);\n\t\t\t
|
|
float4 value = 0.0f;\n\t\t\t value = SampleGradient(Color, t);\n\t\t\t
|
|
color *= value.rgb;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if defined(HAS_STRIPS)
|
|
&& !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD must be defined
|
|
when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.particleId = (attributeBuffer.Load((index
|
|
* 0x1 + 0xC00) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.particleId
|
|
= (attributeBuffer.Load((index * 0x1 + 0xC00) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_C707D62A( /*inout */attributes.position, float3(0, 0, 0));\n\t\t\t\t}\n\t\t\t\tOrient_4(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_3278B229( /*inout */attributes.size, (float)0.00400000019);\n\t\t\t\t}\n\t\t\t\tSubpixelAA(attributes.position,
|
|
/*inout */attributes.alpha, attributes.size, /*inout */attributes.scaleX,
|
|
/*inout */attributes.scaleY);\n\t\t\t\t{\n\t\t\t\t SetAttribute_FDD06EC7(
|
|
/*inout */attributes.color, float3(8.04188347, 109.905746, 511.999939));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
|
|
AttributeFromCurve_75C2BB06( /*inout */attributes.color, attributes.particleId,
|
|
Color_f, (uint)0);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if !HAS_STRIPS\n\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\tfloat
|
|
alphaThreshold = (float)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
|
|
alphaThreshold = (float)0.149629295;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
|
|
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
|
|
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
|
|
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
|
|
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
|
|
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
|
|
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
|
|
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
|
|
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
|
|
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
|
|
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
|
|
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
|
|
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
|
|
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :
|
|
SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_COLOR_INTERPOLATOR\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 color : COLOR0;\n\t\t\t\t#endif\n\t\t\t\t#if USE_SOFT_PARTICLE || USE_ALPHA_TEST
|
|
|| USE_FLIPBOOK_INTERPOLATION || USE_EXPOSURE_WEIGHT || WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t//
|
|
x: inverse soft particles fade distance\n\t\t\t\t// y: alpha threshold\n\t\t\t\t//
|
|
z: frame blending factor\n\t\t\t\t// w: exposure weight\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t\tfloat3
|
|
posWS : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
cPosPrevious : TEXCOORD4;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD5;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
SHADERGRAPH_NEEDS_NORMAL_FORWARD\n\t\t\t\tfloat3 normal : TEXCOORD6;\n\t\t\t\t#endif\n\t\t\t\t#if
|
|
SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t\t\tfloat3 tangent : TEXCOORD7;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t
|
|
\n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\tstruct
|
|
ps_output\n\t\t\t{\n\t\t\t\tfloat4 color : SV_Target0;\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
outMotionVector : SV_Target1;\n\t\t#endif\n\t\t\t};\n\t\t\n\t\t#define VFX_VARYING_PS_INPUTS
|
|
ps_input\n\t\t#define VFX_VARYING_POSCS pos\n\t\t#define VFX_VARYING_COLOR
|
|
color.rgb\n\t\t#define VFX_VARYING_ALPHA color.a\n\t\t#define VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
builtInInterpolants.x\n\t\t#define VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y\n\t\t#define
|
|
VFX_VARYING_FRAMEBLEND builtInInterpolants.z\n\t\t#define VFX_VARYING_MOTIONVECTORSCALE
|
|
builtInInterpolants2.xy\n\t\t#define VFX_VARYING_UV uv\n\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t#define
|
|
VFX_VARYING_POSWS posWS\n\t\t#endif\n\t\t#if USE_EXPOSURE_WEIGHT\n\t\t#define
|
|
VFX_VARYING_EXPOSUREWEIGHT builtInInterpolants.w\n\t\t#endif\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t#endif\n\t\t\n\t\t#define SHADERPASS SHADERPASS_FORWARD_UNLIT\n\t\t\t\n\t\t#if
|
|
SHADERGRAPH_NEEDS_NORMAL_FORWARD\n\t\t#define VFX_VARYING_NORMAL normal\n\t\t#endif\n\t\t#if
|
|
SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t#define VFX_VARYING_TANGENT tangent\n\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
|
|
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_C707D62A(inout float3 position, float3 Position) /*attribute:position
|
|
Composition:Add Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t
|
|
position += Position;\n\t\t\t}\n\t\t\tvoid Orient_4(inout float3 axisX, inout
|
|
float3 axisY, inout float3 axisZ) /*mode:FaceCameraPlane axes:ZY */\n\t\t\t{\n\t\t\t
|
|
\n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t axisX =
|
|
viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE
|
|
// Need to remove potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t \n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_3278B229(inout float size, float Size) /*attribute:size Composition:Overwrite
|
|
Source:Slot Random:Off channels:X */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid
|
|
SubpixelAA(float3 position, inout float alpha, float size, inout float scaleX,
|
|
inout float scaleY)\n\t\t\t{\n\t\t\t \n\t\t\t float2 localSize = size
|
|
* float2(scaleX, scaleY);\n\t\t\t float clipPosW = TransformPositionVFXToClip(position).w;\n\t\t\t
|
|
float minSize = clipPosW / (0.5f * min(UNITY_MATRIX_P[0][0] * _ScreenParams.x,-UNITY_MATRIX_P[1][1]
|
|
* _ScreenParams.y)); // max size in one pixel\n\t\t\t float2 clampedSize
|
|
= max(localSize,minSize);\n\t\t\t float fade = (localSize.x * localSize.y)
|
|
/ (clampedSize.x * clampedSize.y);\n\t\t\t alpha *= fade;\n\t\t\t localSize
|
|
= clampedSize;\n\t\t\t scaleX = localSize.x / size;\n\t\t\t scaleY =
|
|
localSize.y / size;\n\t\t\t}\n\t\t\tvoid SetAttribute_FDD06EC7(inout float3
|
|
color, float3 Color) /*attribute:color Composition:Overwrite Source:Slot Random:Off
|
|
channels:XYZ */\n\t\t\t{\n\t\t\t color = Color;\n\t\t\t}\n\t\t\tvoid AttributeFromCurve_75C2BB06(inout
|
|
float3 color, uint particleId, float Color, uint Seed) /*attribute:color Composition:Multiply
|
|
AlphaComposition:Overwrite SampleMode:RandomConstantPerParticle Mode:PerComponent
|
|
ColorMode:Color channels:XYZ */\n\t\t\t{\n\t\t\t float t = FIXED_RAND(Seed);\n\t\t\t
|
|
float4 value = 0.0f;\n\t\t\t value = SampleGradient(Color, t);\n\t\t\t
|
|
color *= value.rgb;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if defined(HAS_STRIPS)
|
|
&& !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD must be defined
|
|
when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.particleId = (attributeBuffer.Load((index
|
|
* 0x1 + 0xC00) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.particleId
|
|
= (attributeBuffer.Load((index * 0x1 + 0xC00) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_C707D62A( /*inout */attributes.position, float3(0, 0, 0));\n\t\t\t\t}\n\t\t\t\tOrient_4(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_3278B229( /*inout */attributes.size, (float)0.00400000019);\n\t\t\t\t}\n\t\t\t\tSubpixelAA(attributes.position,
|
|
/*inout */attributes.alpha, attributes.size, /*inout */attributes.scaleX,
|
|
/*inout */attributes.scaleY);\n\t\t\t\t{\n\t\t\t\t SetAttribute_FDD06EC7(
|
|
/*inout */attributes.color, float3(8.04188347, 109.905746, 511.999939));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
|
|
AttributeFromCurve_75C2BB06( /*inout */attributes.color, attributes.particleId,
|
|
Color_f, (uint)0);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if !HAS_STRIPS\n\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\tfloat
|
|
alphaThreshold = (float)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
|
|
alphaThreshold = (float)0.149629295;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t#if
|
|
VFX_SHADERGRAPH\n\t\t\t\n\t\t#endif\n\t\t\t\t\n\t\t\t#pragma fragment frag\n\t\t\tps_output
|
|
frag(ps_input i)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tps_output
|
|
o = (ps_output)0;\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
|
|
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
|
|
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
|
|
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
|
|
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
|
|
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
|
|
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
|
|
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
|
|
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
|
|
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
|
|
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
|
|
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
|
|
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
|
|
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t#if
|
|
VFX_SHADERGRAPH\n\t\t \n\t\t \n\t\t \n\t\t \n\t\t
|
|
#if HAS_SHADERGRAPH_PARAM_COLOR\n\t\t o.color.rgb = OUTSG..rgb;\n\t\t
|
|
#endif\n\t\t \n\t\t #if HAS_SHADERGRAPH_PARAM_ALPHA \n\t\t
|
|
o.color.a = OUTSG.;\n\t\t #endif\n\t\t#else\n\t\t\t\n\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR VFXGetTextureColor(VFX_SAMPLER(mainTexture),i)\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat4
|
|
color = VFXGetFragmentColor(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifndef VFX_TEXTURE_COLOR\n\t\t\t\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR float4(1.0,1.0,1.0,1.0)\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_DEFAULT\n\t\t\t\t\t\t\to.color = color * VFX_TEXTURE_COLOR;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_GRADIENTMAPPED\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\to.color = SampleGradient(gradient,
|
|
VFX_TEXTURE_COLOR.a * color.a) * float4(color.rgb,1.0);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\to.color
|
|
= VFXApplyPreExposure(o.color, i);\n\t\t#endif\n\t\t\n\t\t\t\to.color = VFXApplyFog(o.color,i);\n\t\t\t\tVFXClipFragmentColor(o.color.a,i);\n\t\t\t\to.color.a
|
|
= saturate(o.color.a);\n\t\t\t\to.color = VFXTransformFinalColor(o.color);\n\t\t\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t\n\t\t\t\t\t\tfloat2 velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w)
|
|
- (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\tVFXEncodeMotionVector(velocity * 0.5f,
|
|
encodedMotionVector);\n\t\t\t\t\t\t\n\t\t\t\to.outMotionVector = encodedMotionVector;\n\t\t
|
|
o.outMotionVector.a = o.color.a < i.VFX_VARYING_ALPHATHRESHOLD ? 0.0f : 1.0f;
|
|
//Independant clipping for motion vector pass\n\t\t#endif\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t}\r\n}\r\n"
|
|
- compute: 0
|
|
name: '[Galaxy Clouds]Clouds'
|
|
source: "Shader \"Hidden/VFX/MainMenu-Galaxy/Galaxy Clouds/Clouds\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
|
|
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+400\" \"IgnoreProjector\"=\"True\"
|
|
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
|
|
One OneMinusSrcAlpha , Zero OneMinusSrcAlpha\n\t\tZTest LEqual\n\t\tZWrite
|
|
Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define NB_THREADS_PER_GROUP
|
|
64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL (0)\n\t\t#define
|
|
VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION (2)\n\t\t#define
|
|
VFX_USE_POSITION_CURRENT 1\n\t\t#define VFX_USE_ANGLEZ_CURRENT 1\n\t\t#define
|
|
VFX_USE_SEED_CURRENT 1\n\t\t#define VFX_USE_TEXINDEX_CURRENT 1\n\t\t#define
|
|
VFX_USE_COLOR_CURRENT 1\n\t\t#define VFX_USE_ALPHA_CURRENT 1\n\t\t#define VFX_USE_ALIVE_CURRENT
|
|
1\n\t\t#define VFX_USE_AXISX_CURRENT 1\n\t\t#define VFX_USE_AXISY_CURRENT 1\n\t\t#define
|
|
VFX_USE_AXISZ_CURRENT 1\n\t\t#define VFX_USE_ANGLEX_CURRENT 1\n\t\t#define
|
|
VFX_USE_ANGLEY_CURRENT 1\n\t\t#define VFX_USE_PIVOTX_CURRENT 1\n\t\t#define
|
|
VFX_USE_PIVOTY_CURRENT 1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define
|
|
VFX_USE_SIZE_CURRENT 1\n\t\t#define VFX_USE_SCALEX_CURRENT 1\n\t\t#define VFX_USE_SCALEY_CURRENT
|
|
1\n\t\t#define VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT
|
|
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define USE_SOFT_PARTICLE 1\n\t\t#define
|
|
VFX_BLENDMODE_ALPHA 1\n\t\t#define VFX_HAS_INDIRECT_DRAW 1\n\t\t#define USE_FLIPBOOK
|
|
1\n\t\t#define USE_FLIPBOOK_INTERPOLATION 1\n\t\t#define HDRP_LIT 1\n\t\t#define
|
|
HDRP_MATERIAL_TYPE_SIMPLELIT_TRANSLUCENT 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP
|
|
1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_COLOR 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_ALPHA
|
|
1\n\t\t#define USE_NORMAL_MAP 1\n\t\t#define HDRP_USE_BASE_COLOR 1\n\t\t#define
|
|
USE_NORMAL_BENDING 1\n\t\t#define FORCE_NORMAL_VARYING 1\n\t\t#define VFX_PRIMITIVE_OCTAGON
|
|
1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
|
|
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\t\n\t\tstruct
|
|
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float angleZ;\n\t\t
|
|
uint seed;\n\t\t float texIndex;\n\t\t float3 color;\n\t\t float alpha;\n\t\t
|
|
bool alive;\n\t\t float3 axisX;\n\t\t float3 axisY;\n\t\t float3 axisZ;\n\t\t
|
|
float angleX;\n\t\t float angleY;\n\t\t float pivotX;\n\t\t float
|
|
pivotY;\n\t\t float pivotZ;\n\t\t float size;\n\t\t float scaleX;\n\t\t
|
|
float scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
|
|
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\tTexture2D
|
|
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
|
|
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
|
|
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
|
|
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer
|
|
attributeBuffer;\t\n\t\t\n\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\tStructuredBuffer<uint>
|
|
indirectBuffer;\t\n\t\t#endif\t\n\t\t\n\t\t#if USE_DEAD_LIST_COUNT\n\t\tByteAddressBuffer
|
|
deadListCount;\n\t\t#endif\n\t\t\n\t\t#if HAS_STRIPS\n\t\tBuffer<uint> stripDataBuffer;\n\t\t#endif\n\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD || USE_MOTION_VECTORS_PASS\n\t\tByteAddressBuffer
|
|
elementToVFXBufferPrevious;\n\t\t#endif\n\t\t\n\t\tCBUFFER_START(outputParams)\n\t\t\tfloat
|
|
nbMax;\n\t\t\tfloat systemSeed;\n\t\tCBUFFER_END\n\t\t\n\t\t// Helper macros
|
|
to always use a valid instanceID\n\t\t#if defined(UNITY_STEREO_INSTANCING_ENABLED)\n\t\t\t#define
|
|
VFX_DECLARE_INSTANCE_ID UNITY_VERTEX_INPUT_INSTANCE_ID\n\t\t\t#define VFX_GET_INSTANCE_ID(i)
|
|
unity_InstanceID\n\t\t#else\n\t\t\t#define VFX_DECLARE_INSTANCE_ID uint
|
|
instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
|
|
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
|
|
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
|
|
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
|
|
|| FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
|
|
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
|
|
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4
|
|
uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if
|
|
USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION || VFX_USE_ALPHA_CURRENT\n\t\t\t\t//
|
|
x: alpha threshold\n\t\t\t\t// y: frame blending factor\n\t\t\t\t// z: alpha\n\t\t\t\t//
|
|
w: smoothness\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float4 builtInInterpolants
|
|
: TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vector scale u\n\t\t\t\t// y: motion vector scale v\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
NEEDS_NORMAL\n\t\t\t\tfloat4 normal : TEXCOORD3; // normal scale is stored
|
|
in w\n\t\t\t\t#endif\n\t\t\t\t#if NEEDS_TANGENT\n\t\t\t\tfloat3 tangent : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t\t#if
|
|
USE_NORMAL_BENDING\n\t\t\t\tfloat2 bentFactors : TEXCOORD5;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
|
|
TEXCOORD6;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD7;\n\t\t\t\t#endif\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.z\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t#define VFX_VARYING_FRAMEBLEND builtInInterpolants.y\n\t\t\t#define
|
|
VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy\n\t\t\t#define VFX_VARYING_UV
|
|
uv\n\t\t\t\n\t\t\t#if NEEDS_NORMAL\n\t\t\t#define VFX_VARYING_NORMAL normal.xyz\n\t\t\t#endif\n\t\t\t#ifdef
|
|
WRITE_NORMAL_BUFFER\n\t\t\t#define VFX_VARYING_SMOOTHNESS builtInInterpolants.w\n\t\t\t#endif\n\t\t\t#if
|
|
NEEDS_TANGENT\n\t\t\t#define VFX_VARYING_TANGENT tangent\n\t\t\t#endif\n\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t#define VFX_VARYING_NORMALSCALE normal.w\n\t\t\t#endif\n\t\t\t#if
|
|
USE_NORMAL_BENDING\n\t\t\t#define VFX_VARYING_BENTFACTORS bentFactors\n\t\t\t#endif\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS
|
|
cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
|
|
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_FDD06EC7(inout float3 color, float3 Color) /*attribute:color Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t color = Color;\n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_3278B543(inout float size, inout uint seed, float A, float B)
|
|
/*attribute:size Composition:Overwrite Source:Slot Random:Uniform channels:X
|
|
*/\n\t\t\t{\n\t\t\t size = lerp(A,B,RAND);\n\t\t\t}\n\t\t\tvoid Orient_189(inout
|
|
float3 axisX, inout float3 axisY, inout float3 axisZ, float3 position) /*mode:FaceCameraPosition
|
|
axes:ZY */\n\t\t\t{\n\t\t\t \n\t\t\t if (unity_OrthoParams.w == 1.0f)
|
|
// Face plane for ortho\n\t\t\t {\n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t
|
|
axisX = viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t
|
|
#if VFX_LOCAL_SPACE // Need to remove potential scale in local transform\n\t\t\t
|
|
axisX = normalize(axisX);\n\t\t\t axisY = normalize(axisY);\n\t\t\t
|
|
axisZ = cross(axisX,axisY);\n\t\t\t #else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t
|
|
#endif\n\t\t\t }\n\t\t\t else\n\t\t\t {\n\t\t\t axisZ = normalize(position
|
|
- GetViewVFXPosition());\n\t\t\t axisX = normalize(cross(GetVFXToViewRotMatrix()[1].xyz,axisZ));\n\t\t\t
|
|
axisY = cross(axisZ,axisX);\n\t\t\t }\n\t\t\t \n\t\t\t}\n\t\t\tvoid CameraFade_18F(float3
|
|
position, inout float alpha, inout bool alive, float FadedDistance, float InvFadeDistance)
|
|
/*cullWhenFaded:True fadeMode:Alpha */\n\t\t\t{\n\t\t\t \n\t\t\t float
|
|
clipPosW = TransformPositionVFXToClip(position).w;\n\t\t\t float fade =
|
|
saturate((clipPosW - FadedDistance) * InvFadeDistance);\n\t\t\t alpha *=
|
|
fade;\n\t\t\t if(fade == 0.0) alive=false;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
|
|
defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD
|
|
must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.angleZ = asfloat(attributeBuffer.Load((index
|
|
* 0x2 + 0x80) << 2));\n\t\t\t\t\t\tattributes.seed = (attributeBuffer.Load((index
|
|
* 0x2 + 0x81) << 2));\n\t\t\t\t\t\tattributes.texIndex = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0xC0) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.size
|
|
= (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.angleZ
|
|
= asfloat(attributeBuffer.Load((index * 0x2 + 0x80) << 2));\n\t\t\t\t\t\tattributes.seed
|
|
= (attributeBuffer.Load((index * 0x2 + 0x81) << 2));\n\t\t\t\t\t\tattributes.texIndex
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0xC0) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.size
|
|
= (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_FDD06EC7( /*inout */attributes.color, float3(0.600000024, 0.600000024,
|
|
0.600000024));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_3278B543( /*inout
|
|
*/attributes.size, /*inout */attributes.seed, (float)0.5, (float)1.26999998);\n\t\t\t\t}\n\t\t\t\tOrient_189(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ,
|
|
attributes.position);\n\t\t\t\t{\n\t\t\t\t CameraFade_18F(attributes.position,
|
|
/*inout */attributes.alpha, /*inout */attributes.alive, (float)1, (float)0.5);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\tif (!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tfloat
|
|
cropFactor = (float)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t cropFactor = (float)0.293000013;\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\tfloat normalBendingFactor = (float)0;\n\t\t\t\t{\n\t\t\t\t
|
|
\n\t\t\t\t normalBendingFactor = (float)1;\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\tfloat invSoftParticlesFadeDistance
|
|
= (float)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t invSoftParticlesFadeDistance
|
|
= (float)9.99000931;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\tfloat2 flipBookSize =
|
|
(float2)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t flipBookSize =
|
|
float2(8, 8);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat2 invFlipBookSize
|
|
= (float2)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t invFlipBookSize
|
|
= float2(0.125, 0.125);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
|
|
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
|
|
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
|
|
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
|
|
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
|
|
\n\t\t\t\t diffusionProfileHash = (uint)1076719097;\n\t\t\t\t}\n\t\t\t\t\n
|
|
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
|
|
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
|
|
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
|
|
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
|
|
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
|
|
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
|
|
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
|
|
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
|
|
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
|
|
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
|
|
VFXGetHDRPLitData(out SurfaceData surfaceData, out BuiltinData builtinData,
|
|
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
|
|
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
|
|
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
|
|
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
|
|
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
|
|
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
|
|
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
|
|
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
|
|
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
|
|
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
|
|
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
|
|
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
|
|
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
|
|
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
|
|
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
|
|
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
|
|
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
|
|
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
|
|
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
|
|
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
|
|
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
|
|
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
|
|
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
|
|
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
|
|
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
|
|
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
|
|
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
|
|
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
|
|
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
|
|
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
|
|
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
|
|
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
|
|
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
|
|
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
|
|
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
|
|
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
|
|
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
|
|
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
|
|
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
|
|
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
|
|
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
|
|
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//
|
|
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"}\n\t\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#define LIGHTLOOP_TILE_PASS\n\t\t\t#define
|
|
_ENABLE_FOG_ON_TRANSPARENT\n\t\t\t#define _DISABLE_DECALS\n\t\t\t#define _BLENDMODE_ALPHA\n\t\t\t\n\n\t\t\t#pragma
|
|
multi_compile USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST \n\t\t\t#pragma multi_compile
|
|
SHADOW_LOW SHADOW_MEDIUM SHADOW_HIGH\n\t\t\t#pragma multi_compile _ DEBUG_DISPLAY\n\t\t\t//#pragma
|
|
enable_d3d11_debug_symbols\n\t\t\t\t\t\n\t\t\t#define HDRP_NEEDS_UVS (HDRP_USE_BASE_COLOR_MAP
|
|
|| HDRP_USE_MASK_MAP || USE_NORMAL_MAP || HDRP_USE_EMISSIVE_MAP)\n\t\t\t#define
|
|
HDRP_USE_EMISSIVE (HDRP_USE_EMISSIVE_MAP || HDRP_USE_EMISSIVE_COLOR || HDRP_USE_ADDITIONAL_EMISSIVE_COLOR)\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\tstruct
|
|
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
(VFX_NEEDS_COLOR_INTERPOLATOR && HDRP_USE_BASE_COLOR) || HDRP_USE_ADDITIONAL_BASE_COLOR\n\t\t\t\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 color : COLOR0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_SPECULAR\n\t\t\t\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float3 specularColor : COLOR1;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#if HDRP_USE_EMISSIVE\t\n\t\t\t\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 emissiveColor : COLOR2;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//
|
|
x: smoothness\n\t\t\t\t\t\t\t// y: metallic/thickness\n\t\t\t\t\t\t\t// z:
|
|
normal scale\n\t\t\t\t\t\t\t// w: emissive scale\n\t\t\t\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 materialProperties : TEXCOORD0;\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#if
|
|
USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD1;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD1;\t\n\t\t\t\t#endif\n\t\t\t\t#if USE_SOFT_PARTICLE || USE_ALPHA_TEST
|
|
|| USE_FLIPBOOK_INTERPOLATION || WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t//
|
|
x: inverse soft particles fade distance\n\t\t\t\t// y: alpha threshold\n\t\t\t\t//
|
|
z: frame blending factor\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3 builtInInterpolants
|
|
: TEXCOORD2;\n\t\t\t\t#endif\n\t\t\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vector scale u\n\t\t\t\t// y: motion vector scale v\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float3 normal : TEXCOORD4;\n\t\t\t\t#if USE_NORMAL_MAP || USE_NORMAL_BENDING
|
|
|| SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3
|
|
tangent : TEXCOORD5;\n\t\t\t\t#endif\n\t\t\t\t#if USE_NORMAL_BENDING\n\t\t\t\tfloat2
|
|
bentFactors : TEXCOORD6;\n\t\t\t\t#endif\n\t\t\n\t\t\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
cPosPrevious : TEXCOORD7;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD8;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3
|
|
posWS : TEXCOOR9; // Needed for fog\n\t\t \n\t\t \n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\n\t\t\t\t\t#if
|
|
(VFX_NEEDS_COLOR_INTERPOLATOR && HDRP_USE_BASE_COLOR) || HDRP_USE_ADDITIONAL_BASE_COLOR\n\t\t\t\t\t#define
|
|
VFX_VARYING_COLOR color.rgb\n\t\t\t\t\t#define VFX_VARYING_ALPHA color.a\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#define
|
|
VFX_VARYING_SMOOTHNESS materialProperties.x\n\t\t\t\t\t\n\t\t\t\t\t#if HDRP_MATERIAL_TYPE_STANDARD\n\t\t\t\t\t#define
|
|
VFX_VARYING_METALLIC materialProperties.y\n\t\t\t\t\t#elif HDRP_MATERIAL_TYPE_SPECULAR\n\t\t\t\t\t#define
|
|
VFX_VARYING_SPECULAR specularColor\n\t\t\t\t\t#elif HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t#define
|
|
VFX_VARYING_THICKNESS materialProperties.y\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t#define VFX_VARYING_NORMALSCALE materialProperties.z\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
|
|
HDRP_USE_EMISSIVE_MAP\n\t\t\t\t\t#define VFX_VARYING_EMISSIVESCALE materialProperties.w\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
|
|
HDRP_USE_EMISSIVE_COLOR || HDRP_USE_ADDITIONAL_EMISSIVE_COLOR\n\t\t\t\t\t#define
|
|
VFX_VARYING_EMISSIVE emissiveColor.rgb\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
|
|
USE_EXPOSURE_WEIGHT\n\t\t\t\t\t#define VFX_VARYING_EXPOSUREWEIGHT emissiveColor.a\n\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t#define VFX_VARYING_POSCS pos\n\t\t#define
|
|
VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE builtInInterpolants.x\n\t\t#define
|
|
VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y\n\t\t#define VFX_VARYING_FRAMEBLEND
|
|
builtInInterpolants.z\n\t\t#define VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy\n\t\t#define
|
|
VFX_VARYING_UV uv\n\t\t#define VFX_VARYING_NORMAL normal\n\t\t#if USE_NORMAL_MAP
|
|
|| USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t#define VFX_VARYING_TANGENT
|
|
tangent\n\t\t#endif\n\t\t#if USE_NORMAL_BENDING\n\t\t#define VFX_VARYING_BENTFACTORS
|
|
bentFactors\n\t\t#endif\n\t\t#define VFX_VARYING_POSWS posWS\n\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t#define VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS_PREVIOUS cPosPrevious\n\t\t#endif\n\t\t\n\t\t\n\t\t\t\n\t\t\t#if
|
|
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
|
|
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_FDD06EC7(inout float3 color, float3 Color) /*attribute:color Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t color = Color;\n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_3278B543(inout float size, inout uint seed, float A, float B)
|
|
/*attribute:size Composition:Overwrite Source:Slot Random:Uniform channels:X
|
|
*/\n\t\t\t{\n\t\t\t size = lerp(A,B,RAND);\n\t\t\t}\n\t\t\tvoid Orient_189(inout
|
|
float3 axisX, inout float3 axisY, inout float3 axisZ, float3 position) /*mode:FaceCameraPosition
|
|
axes:ZY */\n\t\t\t{\n\t\t\t \n\t\t\t if (unity_OrthoParams.w == 1.0f)
|
|
// Face plane for ortho\n\t\t\t {\n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t
|
|
axisX = viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t
|
|
#if VFX_LOCAL_SPACE // Need to remove potential scale in local transform\n\t\t\t
|
|
axisX = normalize(axisX);\n\t\t\t axisY = normalize(axisY);\n\t\t\t
|
|
axisZ = cross(axisX,axisY);\n\t\t\t #else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t
|
|
#endif\n\t\t\t }\n\t\t\t else\n\t\t\t {\n\t\t\t axisZ = normalize(position
|
|
- GetViewVFXPosition());\n\t\t\t axisX = normalize(cross(GetVFXToViewRotMatrix()[1].xyz,axisZ));\n\t\t\t
|
|
axisY = cross(axisZ,axisX);\n\t\t\t }\n\t\t\t \n\t\t\t}\n\t\t\tvoid CameraFade_18F(float3
|
|
position, inout float alpha, inout bool alive, float FadedDistance, float InvFadeDistance)
|
|
/*cullWhenFaded:True fadeMode:Alpha */\n\t\t\t{\n\t\t\t \n\t\t\t float
|
|
clipPosW = TransformPositionVFXToClip(position).w;\n\t\t\t float fade =
|
|
saturate((clipPosW - FadedDistance) * InvFadeDistance);\n\t\t\t alpha *=
|
|
fade;\n\t\t\t if(fade == 0.0) alive=false;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
|
|
defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD
|
|
must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.angleZ = asfloat(attributeBuffer.Load((index
|
|
* 0x2 + 0x80) << 2));\n\t\t\t\t\t\tattributes.seed = (attributeBuffer.Load((index
|
|
* 0x2 + 0x81) << 2));\n\t\t\t\t\t\tattributes.texIndex = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0xC0) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.size
|
|
= (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.angleZ
|
|
= asfloat(attributeBuffer.Load((index * 0x2 + 0x80) << 2));\n\t\t\t\t\t\tattributes.seed
|
|
= (attributeBuffer.Load((index * 0x2 + 0x81) << 2));\n\t\t\t\t\t\tattributes.texIndex
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0xC0) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.size
|
|
= (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_FDD06EC7( /*inout */attributes.color, float3(0.600000024, 0.600000024,
|
|
0.600000024));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_3278B543( /*inout
|
|
*/attributes.size, /*inout */attributes.seed, (float)0.5, (float)1.26999998);\n\t\t\t\t}\n\t\t\t\tOrient_189(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ,
|
|
attributes.position);\n\t\t\t\t{\n\t\t\t\t CameraFade_18F(attributes.position,
|
|
/*inout */attributes.alpha, /*inout */attributes.alive, (float)1, (float)0.5);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\tif (!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tfloat
|
|
cropFactor = (float)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t cropFactor = (float)0.293000013;\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\tfloat normalBendingFactor = (float)0;\n\t\t\t\t{\n\t\t\t\t
|
|
\n\t\t\t\t normalBendingFactor = (float)1;\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\tfloat invSoftParticlesFadeDistance
|
|
= (float)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t invSoftParticlesFadeDistance
|
|
= (float)9.99000931;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\tfloat2 flipBookSize =
|
|
(float2)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t flipBookSize =
|
|
float2(8, 8);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat2 invFlipBookSize
|
|
= (float2)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t invFlipBookSize
|
|
= float2(0.125, 0.125);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifndef
|
|
VFX_SHADERGRAPH\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_SMOOTHNESS\n\t\t\t\t\t\t\t\t\tfloat
|
|
smoothness = (float)0;\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
|
|
smoothness = (float)0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_SMOOTHNESS
|
|
= smoothness;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_STANDARD\n\t\t\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_METALLIC\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_METALLIC
|
|
= metallic;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#elif HDRP_MATERIAL_TYPE_SPECULAR\n\t\t\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_SPECULAR\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_SPECULAR
|
|
= specularColor;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#elif HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_THICKNESS\n\t\t\t\t\t\t\t\t\tfloat thickness = (float)0;\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t
|
|
\n\t\t\t\t\t\t\t\t\t thickness = (float)0.5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_THICKNESS
|
|
= thickness;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tfloat
|
|
normalScale = (float)0;\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
|
|
normalScale = (float)0.335795105;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_NORMALSCALE
|
|
= normalScale;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#if
|
|
HDRP_USE_EMISSIVE_MAP\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_EMISSIVESCALE\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_EMISSIVESCALE
|
|
= emissiveScale;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EMISSIVE\n\t\t\t\t\t\t\t\t\t#if HDRP_USE_EMISSIVE_COLOR\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_EMISSIVE
|
|
= attributes.color;\n\t\t\t\t\t\t\t\t\t#elif HDRP_USE_ADDITIONAL_EMISSIVE_COLOR\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_EMISSIVE
|
|
= emissiveColor;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#if
|
|
HDRP_USE_ADDITIONAL_BASE_COLOR\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_COLOR\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= baseColor;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_FORWARD\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
|
|
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
|
|
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
|
|
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
|
|
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
|
|
\n\t\t\t\t diffusionProfileHash = (uint)1076719097;\n\t\t\t\t}\n\t\t\t\t\n
|
|
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
|
|
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
|
|
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
|
|
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
|
|
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
|
|
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
|
|
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
|
|
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
|
|
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
|
|
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
|
|
VFXGetHDRPLitData(out SurfaceData surfaceData, out BuiltinData builtinData,
|
|
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
|
|
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
|
|
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\t\n\t\t
|
|
\n\t\t\t\t\t\t\t\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t,
|
|
out float4 outColor : SV_Target0\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t, bool
|
|
frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t,
|
|
out float4 outMotionVector : SV_Target1\n\t\t\t#endif\n\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
|
|
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
|
|
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
|
|
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
|
|
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
|
|
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
|
|
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
|
|
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
|
|
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
|
|
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
|
|
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
|
|
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
|
|
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
|
|
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t
|
|
\n\t\t #ifdef VFX_SHADERGRAPH\n\t\t \n\t\t \n\t\t
|
|
\n\t\t SurfaceData surface;\n\t\t BuiltinData builtin;\n\t\t
|
|
surface = (SurfaceData)0;\n\t\t builtin = (BuiltinData)0;\n\t\t
|
|
\n\t\t surface.materialFeatures = MATERIALFEATUREFLAGS_LIT_STANDARD;\n\t\t
|
|
surface.specularOcclusion = 1.0f;\n\t\t surface.ambientOcclusion
|
|
= 1.0f;\n\t\t surface.subsurfaceMask = 1.0f;\n\t\t \n\t\t
|
|
#if HAS_SHADERGRAPH_PARAM_ALPHA\n\t\t builtin.opacity = OUTSG.;\n\t\t
|
|
VFXClipFragmentColor(builtin.opacity,i);\n\t\t #endif\n\t\t
|
|
\n\t\t #if HAS_SHADERGRAPH_PARAM_SMOOTHNESS\n\t\t
|
|
surface.perceptualSmoothness = OUTSG.;\n\t\t #endif\n\t\t
|
|
#if HAS_SHADERGRAPH_PARAM_METALLIC\n\t\t surface.metallic =
|
|
OUTSG.;\n\t\t #endif\n\t\t #if HAS_SHADERGRAPH_PARAM_BASECOLOR\n\t\t
|
|
surface.baseColor = OUTSG.;\n\t\t #endif\n\t\t \n\t\t
|
|
#if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t float3 n = OUTSG.;\n\t\t
|
|
normalWS = mul(n,tbn);\n\t\t #endif\n\t\t \n\t\t
|
|
surface.normalWS = normalWS;\n\t\t \n\t\t #if HAS_SHADERGRAPH_PARAM_EMISSIVE\n\t\t
|
|
builtin.emissiveColor = OUTSG.;\n\t\t #endif\n\t\t\n\t\t
|
|
\n\t\t outColor = VFXGetPixelOutputForwardShaderGraph(surface, builtin,i);\n\t\t
|
|
#else\n\t\t outColor = VFXGetPixelOutputForward(i,normalWS,uvData);\n\t\t
|
|
#endif\n\t\t\t\t\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t\n\t\t\t\t\t\tfloat2
|
|
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
|
|
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\tVFXEncodeMotionVector(velocity * 0.5f,
|
|
encodedMotionVector);\n\t\t\t\t\t\t\n\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\toutMotionVector.a
|
|
= outColor.a < i.VFX_VARYING_ALPHATHRESHOLD ? 0.0f : 1.0f; //Independant clipping
|
|
for motion vector pass\n\t\t#endif\n\t\t\t}\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t}\r\n}\r\n"
|
|
- compute: 0
|
|
name: '[Galaxy Stars]Corners'
|
|
source: "Shader \"Hidden/VFX/MainMenu-Galaxy/Galaxy Stars/Corners\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
|
|
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
|
|
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
|
|
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
|
|
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
|
|
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION
|
|
(2)\n\t\t#define VFX_USE_POSITION_CURRENT 1\n\t\t#define VFX_USE_PARTICLEID_CURRENT
|
|
1\n\t\t#define VFX_USE_COLOR_CURRENT 1\n\t\t#define VFX_USE_ALPHA_CURRENT 1\n\t\t#define
|
|
VFX_USE_ALIVE_CURRENT 1\n\t\t#define VFX_USE_AXISX_CURRENT 1\n\t\t#define VFX_USE_AXISY_CURRENT
|
|
1\n\t\t#define VFX_USE_AXISZ_CURRENT 1\n\t\t#define VFX_USE_ANGLEX_CURRENT
|
|
1\n\t\t#define VFX_USE_ANGLEY_CURRENT 1\n\t\t#define VFX_USE_ANGLEZ_CURRENT
|
|
1\n\t\t#define VFX_USE_PIVOTX_CURRENT 1\n\t\t#define VFX_USE_PIVOTY_CURRENT
|
|
1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define VFX_USE_SIZE_CURRENT 1\n\t\t#define
|
|
VFX_USE_SCALEX_CURRENT 1\n\t\t#define VFX_USE_SCALEY_CURRENT 1\n\t\t#define
|
|
VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT 1\n\t\t#define
|
|
IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define VFX_BYPASS_EXPOSURE
|
|
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
|
|
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
|
|
float4 uniform_b;\n\t\t float uniform_c;\n\t\t float uniform_d;\n\t\t
|
|
uint2 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t
|
|
float3 position;\n\t\t uint particleId;\n\t\t float3 color;\n\t\t
|
|
float alpha;\n\t\t bool alive;\n\t\t float3 axisX;\n\t\t float3 axisY;\n\t\t
|
|
float3 axisZ;\n\t\t float angleX;\n\t\t float angleY;\n\t\t float
|
|
angleZ;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t float pivotZ;\n\t\t
|
|
float size;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct
|
|
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D mainTexture;\n\t\tSamplerState
|
|
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
|
|
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
|
|
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
|
|
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer
|
|
attributeBuffer;\t\n\t\t\n\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\tStructuredBuffer<uint>
|
|
indirectBuffer;\t\n\t\t#endif\t\n\t\t\n\t\t#if USE_DEAD_LIST_COUNT\n\t\tByteAddressBuffer
|
|
deadListCount;\n\t\t#endif\n\t\t\n\t\t#if HAS_STRIPS\n\t\tBuffer<uint> stripDataBuffer;\n\t\t#endif\n\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD || USE_MOTION_VECTORS_PASS\n\t\tByteAddressBuffer
|
|
elementToVFXBufferPrevious;\n\t\t#endif\n\t\t\n\t\tCBUFFER_START(outputParams)\n\t\t\tfloat
|
|
nbMax;\n\t\t\tfloat systemSeed;\n\t\tCBUFFER_END\n\t\t\n\t\t// Helper macros
|
|
to always use a valid instanceID\n\t\t#if defined(UNITY_STEREO_INSTANCING_ENABLED)\n\t\t\t#define
|
|
VFX_DECLARE_INSTANCE_ID UNITY_VERTEX_INPUT_INSTANCE_ID\n\t\t\t#define VFX_GET_INSTANCE_ID(i)
|
|
unity_InstanceID\n\t\t#else\n\t\t\t#define VFX_DECLARE_INSTANCE_ID uint
|
|
instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
|
|
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
|
|
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
|
|
USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION
|
|
|| VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha threshold\n\t\t\t\t// y: frame
|
|
blending factor\n\t\t\t\t// z: alpha\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3
|
|
builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
|
|
TEXCOORD3;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t
|
|
\n\t\t\t #if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t float3 posWS : TEXCOORD5;\n\t\t\t
|
|
#endif\n\t\t\t \n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.z\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t#define VFX_VARYING_FRAMEBLEND builtInInterpolants.y\n\t\t\t#define
|
|
VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy\n\t\t\t#define VFX_VARYING_UV
|
|
uv\n\t\t\t\n\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t#define VFX_VARYING_POSWS
|
|
posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
|
|
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
|
|
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
Orient_4(inout float3 axisX, inout float3 axisY, inout float3 axisZ) /*mode:FaceCameraPlane
|
|
axes:ZY */\n\t\t\t{\n\t\t\t \n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t
|
|
axisX = viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE
|
|
// Need to remove potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t \n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_3278B22F(inout float size, float Size) /*attribute:size Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_FDD06EC7(inout float3 color, float3 Color) /*attribute:color Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t color = Color;\n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_CEEAF35C(inout float alpha, float Alpha) /*attribute:alpha Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t alpha = Alpha;\n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_ED2BDC15(inout bool alive, bool Alive) /*attribute:alive Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t alive = Alive;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
|
|
defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD
|
|
must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.particleId = (attributeBuffer.Load((index
|
|
* 0x1 + 0xC00) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.particleId
|
|
= (attributeBuffer.Load((index * 0x1 + 0xC00) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\tOrient_4(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_3278B22F( /*inout */attributes.size, (float)0.0500000007);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_FDD06EC7( /*inout */attributes.color, float3(0.499328464, 2.90518379,
|
|
8.67015743));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t uint tmp_y = attributes.particleId
|
|
^ asuint(uniform_d);\n\t\t\t\t float tmp_z = FixedRand(tmp_y);\n\t\t\t\t
|
|
float tmp_bb = tmp_z * (float)180;\n\t\t\t\t float tmp_bc = uniform_c +
|
|
tmp_bb;\n\t\t\t\t float tmp_bd = tmp_bc / (float)180;\n\t\t\t\t float
|
|
tmp_be = frac(tmp_bd);\n\t\t\t\t float tmp_bf = tmp_be * (float)180;\n\t\t\t\t
|
|
float tmp_bg = SampleCurve(uniform_b,tmp_bf);\n\t\t\t\t SetAttribute_CEEAF35C(
|
|
/*inout */attributes.alpha, tmp_bg);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t bool
|
|
tmp_z = attributes.alpha > (float)0;\n\t\t\t\t SetAttribute_ED2BDC15( /*inout
|
|
*/attributes.alive, tmp_z);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if !HAS_STRIPS\n\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
|
|
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
|
|
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
|
|
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
|
|
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
|
|
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
|
|
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
|
|
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
|
|
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
|
|
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
|
|
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
|
|
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
|
|
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
|
|
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :
|
|
SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_COLOR_INTERPOLATOR\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 color : COLOR0;\n\t\t\t\t#endif\n\t\t\t\t#if USE_SOFT_PARTICLE || USE_ALPHA_TEST
|
|
|| USE_FLIPBOOK_INTERPOLATION || USE_EXPOSURE_WEIGHT || WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t//
|
|
x: inverse soft particles fade distance\n\t\t\t\t// y: alpha threshold\n\t\t\t\t//
|
|
z: frame blending factor\n\t\t\t\t// w: exposure weight\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t\tfloat3
|
|
posWS : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
cPosPrevious : TEXCOORD4;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD5;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
SHADERGRAPH_NEEDS_NORMAL_FORWARD\n\t\t\t\tfloat3 normal : TEXCOORD6;\n\t\t\t\t#endif\n\t\t\t\t#if
|
|
SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t\t\tfloat3 tangent : TEXCOORD7;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t
|
|
\n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\tstruct
|
|
ps_output\n\t\t\t{\n\t\t\t\tfloat4 color : SV_Target0;\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
outMotionVector : SV_Target1;\n\t\t#endif\n\t\t\t};\n\t\t\n\t\t#define VFX_VARYING_PS_INPUTS
|
|
ps_input\n\t\t#define VFX_VARYING_POSCS pos\n\t\t#define VFX_VARYING_COLOR
|
|
color.rgb\n\t\t#define VFX_VARYING_ALPHA color.a\n\t\t#define VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
builtInInterpolants.x\n\t\t#define VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y\n\t\t#define
|
|
VFX_VARYING_FRAMEBLEND builtInInterpolants.z\n\t\t#define VFX_VARYING_MOTIONVECTORSCALE
|
|
builtInInterpolants2.xy\n\t\t#define VFX_VARYING_UV uv\n\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t#define
|
|
VFX_VARYING_POSWS posWS\n\t\t#endif\n\t\t#if USE_EXPOSURE_WEIGHT\n\t\t#define
|
|
VFX_VARYING_EXPOSUREWEIGHT builtInInterpolants.w\n\t\t#endif\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t#endif\n\t\t\n\t\t#define SHADERPASS SHADERPASS_FORWARD_UNLIT\n\t\t\t\n\t\t#if
|
|
SHADERGRAPH_NEEDS_NORMAL_FORWARD\n\t\t#define VFX_VARYING_NORMAL normal\n\t\t#endif\n\t\t#if
|
|
SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t#define VFX_VARYING_TANGENT tangent\n\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
|
|
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
Orient_4(inout float3 axisX, inout float3 axisY, inout float3 axisZ) /*mode:FaceCameraPlane
|
|
axes:ZY */\n\t\t\t{\n\t\t\t \n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t
|
|
axisX = viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE
|
|
// Need to remove potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t \n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_3278B22F(inout float size, float Size) /*attribute:size Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_FDD06EC7(inout float3 color, float3 Color) /*attribute:color Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t color = Color;\n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_CEEAF35C(inout float alpha, float Alpha) /*attribute:alpha Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t alpha = Alpha;\n\t\t\t}\n\t\t\tvoid
|
|
SetAttribute_ED2BDC15(inout bool alive, bool Alive) /*attribute:alive Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t alive = Alive;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
|
|
defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD
|
|
must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.particleId = (attributeBuffer.Load((index
|
|
* 0x1 + 0xC00) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.particleId
|
|
= (attributeBuffer.Load((index * 0x1 + 0xC00) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\tOrient_4(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_3278B22F( /*inout */attributes.size, (float)0.0500000007);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_FDD06EC7( /*inout */attributes.color, float3(0.499328464, 2.90518379,
|
|
8.67015743));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t uint tmp_y = attributes.particleId
|
|
^ asuint(uniform_d);\n\t\t\t\t float tmp_z = FixedRand(tmp_y);\n\t\t\t\t
|
|
float tmp_bb = tmp_z * (float)180;\n\t\t\t\t float tmp_bc = uniform_c +
|
|
tmp_bb;\n\t\t\t\t float tmp_bd = tmp_bc / (float)180;\n\t\t\t\t float
|
|
tmp_be = frac(tmp_bd);\n\t\t\t\t float tmp_bf = tmp_be * (float)180;\n\t\t\t\t
|
|
float tmp_bg = SampleCurve(uniform_b,tmp_bf);\n\t\t\t\t SetAttribute_CEEAF35C(
|
|
/*inout */attributes.alpha, tmp_bg);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t bool
|
|
tmp_z = attributes.alpha > (float)0;\n\t\t\t\t SetAttribute_ED2BDC15( /*inout
|
|
*/attributes.alive, tmp_z);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if !HAS_STRIPS\n\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t#if
|
|
VFX_SHADERGRAPH\n\t\t\t\n\t\t#endif\n\t\t\t\t\n\t\t\t#pragma fragment frag\n\t\t\tps_output
|
|
frag(ps_input i)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tps_output
|
|
o = (ps_output)0;\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
|
|
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
|
|
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
|
|
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
|
|
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
|
|
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
|
|
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
|
|
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
|
|
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
|
|
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
|
|
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
|
|
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
|
|
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
|
|
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t#if
|
|
VFX_SHADERGRAPH\n\t\t \n\t\t \n\t\t \n\t\t \n\t\t
|
|
#if HAS_SHADERGRAPH_PARAM_COLOR\n\t\t o.color.rgb = OUTSG..rgb;\n\t\t
|
|
#endif\n\t\t \n\t\t #if HAS_SHADERGRAPH_PARAM_ALPHA \n\t\t
|
|
o.color.a = OUTSG.;\n\t\t #endif\n\t\t#else\n\t\t\t\n\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR VFXGetTextureColor(VFX_SAMPLER(mainTexture),i)\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat4
|
|
color = VFXGetFragmentColor(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifndef VFX_TEXTURE_COLOR\n\t\t\t\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR float4(1.0,1.0,1.0,1.0)\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_DEFAULT\n\t\t\t\t\t\t\to.color = color * VFX_TEXTURE_COLOR;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_GRADIENTMAPPED\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\to.color = SampleGradient(gradient,
|
|
VFX_TEXTURE_COLOR.a * color.a) * float4(color.rgb,1.0);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\to.color
|
|
= VFXApplyPreExposure(o.color, i);\n\t\t#endif\n\t\t\n\t\t\t\to.color = VFXApplyFog(o.color,i);\n\t\t\t\tVFXClipFragmentColor(o.color.a,i);\n\t\t\t\to.color.a
|
|
= saturate(o.color.a);\n\t\t\t\to.color = VFXTransformFinalColor(o.color);\n\t\t\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t\n\t\t\t\t\t\tfloat2 velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w)
|
|
- (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\tVFXEncodeMotionVector(velocity * 0.5f,
|
|
encodedMotionVector);\n\t\t\t\t\t\t\n\t\t\t\to.outMotionVector = encodedMotionVector;\n\t\t
|
|
o.outMotionVector.a = o.color.a < i.VFX_VARYING_ALPHATHRESHOLD ? 0.0f : 1.0f;
|
|
//Independant clipping for motion vector pass\n\t\t#endif\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t}\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[Core Glow]Initialize Particle'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_LIFETIME_CURRENT 1\n#define VFX_USE_SEED_CURRENT
|
|
1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define
|
|
VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\n\nstruct
|
|
Attributes\n{\n float lifetime;\n uint seed;\n bool alive;\n float
|
|
age;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST
|
|
(VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\nByteAddressBuffer
|
|
sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
uint nbSpawned;\t\t\t\t\t// Numbers of particle spawned\r\n uint spawnIndex;\t\t\t\t//
|
|
Index of the first particle spawned\r\n uint dispatchWidth;\r\n#else\r\n
|
|
uint offsetInAdditionalOutput;\r\n\tuint nbMax;\r\n#endif\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#if
|
|
USE_DEAD_LIST\r\nRWStructuredBuffer<uint> deadListIn;\r\nByteAddressBuffer
|
|
deadListCount; // This is bad to use a SRV to fetch deadList count but Unity
|
|
API currently prevent from copying to CB\r\n#endif\r\n\r\n#if VFX_USE_SPAWNER_FROM_GPU\r\nStructuredBuffer<uint>
|
|
eventList;\r\nByteAddressBuffer inputAdditional;\r\n#endif\r\n\r\n#if HAS_STRIPS\r\nRWBuffer<uint>
|
|
stripDataBuffer;\r\n#endif\r\n\r\n#include \"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
SetAttribute_F01429A3(inout float lifetime, inout uint seed, float A, float
|
|
B) /*attribute:lifetime Composition:Overwrite Source:Slot Random:Uniform channels:XYZ
|
|
*/\n{\n lifetime = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
|
|
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
|
|
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
|
|
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
|
|
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
|
|
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
|
|
= stripIndex * PARTICLE_PER_STRIP_COUNT + ((STRIP_DATA(STRIP_FIRST_INDEX, stripIndex)
|
|
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
|
|
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
|
|
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n
|
|
uint currentSpawnIndex = spawnIndex;\r\n#endif\r\n\r\n#if USE_DEAD_LIST\r\n
|
|
maxThreadId = min(maxThreadId, deadListCount.Load(0x0));\r\n#elif VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
maxThreadId = min(maxThreadId, nbMax); //otherwise, nbSpawned already clamped
|
|
on CPU\r\n#endif\r\n\r\n if (id < maxThreadId)\r\n {\r\n#if VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
int sourceIndex = eventList[id];\r\n#endif\r\n\t\tuint particleIndex = id +
|
|
currentSpawnIndex;\r\n\t\t\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n int
|
|
sourceIndex = 0;\n /*//Loop with 1 iteration generate a wrong IL Assembly
|
|
(and actually, useless code)\n uint currentSumSpawnCount = 0u;\n
|
|
for (sourceIndex=0; sourceIndex<1; sourceIndex++)\n {\n currentSumSpawnCount
|
|
+= uint(asfloat(sourceAttributeBuffer.Load((sourceIndex * 0x1 + 0x0) << 2)));\n
|
|
if (id < currentSumSpawnCount)\n {\n break;\n
|
|
}\n }\n */\n \n\r\n#endif\r\n\r\n\t\tAttributes attributes
|
|
= (Attributes)0;\r\n\t\tSourceAttributes sourceAttributes = (SourceAttributes)0;\r\n\t\t\r\n
|
|
attributes.lifetime = (float)1;\n attributes.seed = (uint)0;\n
|
|
attributes.alive = (bool)true;\n attributes.age = (float)0;\n
|
|
\n\r\n#if VFX_USE_PARTICLEID_CURRENT\r\n attributes.particleId = particleIndex;\r\n#endif\r\n#if
|
|
VFX_USE_SEED_CURRENT\r\n attributes.seed = WangHash(particleIndex ^
|
|
systemSeed);\r\n#endif\r\n#if VFX_USE_SPAWNINDEX_CURRENT\r\n attributes.spawnIndex
|
|
= id;\r\n#endif\r\n#if HAS_STRIPS\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n\t\t\r\n#else\r\n
|
|
uint stripIndex = sourceIndex;\r\n#endif\r\n\t\tstripIndex = min(stripIndex,
|
|
STRIP_COUNT);\r\n\r\n if (!GetParticleIndex(particleIndex, stripIndex))\r\n
|
|
return;\r\n\r\n const StripData stripData = GetStripDataFromStripIndex(stripIndex,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n\t\tInitStripAttributes(particleIndex, attributes,
|
|
stripData);\r\n\t\t// TODO Change seed to be sure we're deterministic on random
|
|
with strip\r\n#endif\r\n \r\n {\n SetAttribute_F01429A3(
|
|
/*inout */attributes.lifetime, /*inout */attributes.seed, (float)1, (float)3);\n
|
|
}\n \n\r\n\t\t\r\n#if VFX_USE_ALIVE_CURRENT\r\n if (attributes.alive)\r\n#endif
|
|
\r\n {\r\n#if USE_DEAD_LIST\r\n\t uint deadIndex = deadListIn.DecrementCounter();\r\n
|
|
uint index = deadListIn[deadIndex];\r\n#else\r\n uint index = particleIndex;\r\n#endif\r\n
|
|
attributeBuffer.Store((index * 0x1 + 0x0) << 2,asuint(attributes.lifetime));\n
|
|
attributeBuffer.Store((index * 0x2 + 0x20) << 2,uint(attributes.alive));\n
|
|
attributeBuffer.Store((index * 0x2 + 0x21) << 2,asuint(attributes.age));\n
|
|
\n\r\n }\r\n }\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[Core Glow]Update Particle'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_LIFETIME_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT
|
|
1\n#define VFX_USE_AGE_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
|
|
float deltaTime_a;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
|
|
float lifetime;\n bool alive;\n float age;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
|
|
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
|
|
attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint> deadListOut;\r\n#endif\r\n\r\n#if
|
|
VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint> indirectBuffer;\r\n#endif\r\n\r\n#if
|
|
HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#if VFX_USE_STRIPALIVE_CURRENT\r\nBuffer<uint>
|
|
attachedStripDataBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n
|
|
uint nbMax;\r\n\tuint dispatchWidth;\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
Age(inout float age, float deltaTime)\n{\n age += deltaTime;\n}\nvoid Reap(float
|
|
age, float lifetime, inout bool alive)\n{\n if(age > lifetime) { alive =
|
|
false; }\n}\n\n\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
|
|
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n\tuint
|
|
id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP + groupId.y * dispatchWidth
|
|
* NB_THREADS_PER_GROUP;\r\n\tuint index = id;\r\n\tif (id < nbMax)\r\n\t{\r\n
|
|
Attributes attributes = (Attributes)0;\r\n\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\r\n\r\n#if VFX_USE_ALIVE_CURRENT\r\n\t\tattributes.alive
|
|
= (attributeBuffer.Load((index * 0x2 + 0x20) << 2));\n\t\t\n\r\n\t\tif (attributes.alive)\r\n\t\t{\r\n\t\t\tattributes.lifetime
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0x0) << 2));\n\t\t\tattributes.age
|
|
= asfloat(attributeBuffer.Load((index * 0x2 + 0x21) << 2));\n\t\t\t\n\r\n\r\n//
|
|
Initialize built-in needed attributes\r\n#if VFX_USE_OLDPOSITION_CURRENT\r\n\t\t\tattributes.oldPosition
|
|
= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
|
|
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
|
|
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\tAge(
|
|
/*inout */attributes.age, deltaTime_a);\n\t\t\tReap(attributes.age, attributes.lifetime,
|
|
/*inout */attributes.alive);\n\t\t\t\n\r\n\r\n\t\t\tif (attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store((index
|
|
* 0x2 + 0x21) << 2,asuint(attributes.age));\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\t\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n\r\n#if HAS_STRIPS\t\t\t\r\n\t\t\t\tuint relativeIndexInStrip
|
|
= GetRelativeIndex(index, stripData);\r\n\t\t\t\tInterlockedMin(STRIP_DATA(STRIP_MIN_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n\t\t\t\tInterlockedMax(STRIP_DATA(STRIP_MAX_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n#endif\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store((index
|
|
* 0x2 + 0x20) << 2,uint(attributes.alive));\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
|
|
&& !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
|
|
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,
|
|
STRIP_MIN_ALIVE, index) == ~1) // Attached strip is no longer alive, recycle
|
|
the particle \r\n {\r\n uint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n attributes.stripAlive = false;\r\n
|
|
\r\n } \r\n }\r\n#endif\r\n#else\r\n\t\tattributes.lifetime
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0x0) << 2));\n\t\tattributes.alive
|
|
= (attributeBuffer.Load((index * 0x2 + 0x20) << 2));\n\t\tattributes.age =
|
|
asfloat(attributeBuffer.Load((index * 0x2 + 0x21) << 2));\n\t\t\n\r\n\t\t\r\n#if
|
|
VFX_USE_OLDPOSITION_CURRENT\r\n\t\tattributes.oldPosition = attributes.position;\r\n#endif\r\n#if
|
|
HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
|
|
stripData);\r\n#endif\r\n\t\t\r\n\t\tAge( /*inout */attributes.age, deltaTime_a);\n\t\tReap(attributes.age,
|
|
attributes.lifetime, /*inout */attributes.alive);\n\t\t\n\r\n\t\tattributeBuffer.Store((index
|
|
* 0x2 + 0x20) << 2,uint(attributes.alive));\n\t\tattributeBuffer.Store((index
|
|
* 0x2 + 0x21) << 2,asuint(attributes.age));\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
|
|
- compute: 0
|
|
name: '[Core Glow]Glow'
|
|
source: "Shader \"Hidden/VFX/MainMenu-Galaxy/Core Glow/Glow\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
|
|
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+400\" \"IgnoreProjector\"=\"True\"
|
|
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
|
|
SrcAlpha One , Zero One\n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
|
|
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
|
|
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION
|
|
(2)\n\t\t#define VFX_USE_LIFETIME_CURRENT 1\n\t\t#define VFX_USE_POSITION_CURRENT
|
|
1\n\t\t#define VFX_USE_COLOR_CURRENT 1\n\t\t#define VFX_USE_ALPHA_CURRENT 1\n\t\t#define
|
|
VFX_USE_ALIVE_CURRENT 1\n\t\t#define VFX_USE_AXISX_CURRENT 1\n\t\t#define VFX_USE_AXISY_CURRENT
|
|
1\n\t\t#define VFX_USE_AXISZ_CURRENT 1\n\t\t#define VFX_USE_ANGLEX_CURRENT
|
|
1\n\t\t#define VFX_USE_ANGLEY_CURRENT 1\n\t\t#define VFX_USE_ANGLEZ_CURRENT
|
|
1\n\t\t#define VFX_USE_PIVOTX_CURRENT 1\n\t\t#define VFX_USE_PIVOTY_CURRENT
|
|
1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define VFX_USE_SIZE_CURRENT 1\n\t\t#define
|
|
VFX_USE_SCALEX_CURRENT 1\n\t\t#define VFX_USE_SCALEY_CURRENT 1\n\t\t#define
|
|
VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_USE_AGE_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT
|
|
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define USE_SOFT_PARTICLE 1\n\t\t#define
|
|
VFX_BLENDMODE_ADD 1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_OCTAGON
|
|
1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
|
|
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
|
|
float gradient_d;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
|
|
Attributes\n\t\t{\n\t\t float lifetime;\n\t\t float3 position;\n\t\t
|
|
float3 color;\n\t\t float alpha;\n\t\t bool alive;\n\t\t float3 axisX;\n\t\t
|
|
float3 axisY;\n\t\t float3 axisZ;\n\t\t float angleX;\n\t\t float
|
|
angleY;\n\t\t float angleZ;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t
|
|
float pivotZ;\n\t\t float size;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t
|
|
float scaleZ;\n\t\t float age;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
|
|
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
|
|
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
|
|
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
|
|
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer
|
|
attributeBuffer;\t\n\t\t\n\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\tStructuredBuffer<uint>
|
|
indirectBuffer;\t\n\t\t#endif\t\n\t\t\n\t\t#if USE_DEAD_LIST_COUNT\n\t\tByteAddressBuffer
|
|
deadListCount;\n\t\t#endif\n\t\t\n\t\t#if HAS_STRIPS\n\t\tBuffer<uint> stripDataBuffer;\n\t\t#endif\n\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD || USE_MOTION_VECTORS_PASS\n\t\tByteAddressBuffer
|
|
elementToVFXBufferPrevious;\n\t\t#endif\n\t\t\n\t\tCBUFFER_START(outputParams)\n\t\t\tfloat
|
|
nbMax;\n\t\t\tfloat systemSeed;\n\t\tCBUFFER_END\n\t\t\n\t\t// Helper macros
|
|
to always use a valid instanceID\n\t\t#if defined(UNITY_STEREO_INSTANCING_ENABLED)\n\t\t\t#define
|
|
VFX_DECLARE_INSTANCE_ID UNITY_VERTEX_INPUT_INSTANCE_ID\n\t\t\t#define VFX_GET_INSTANCE_ID(i)
|
|
unity_InstanceID\n\t\t#else\n\t\t\t#define VFX_DECLARE_INSTANCE_ID uint
|
|
instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
|
|
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
|
|
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
|
|
USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION
|
|
|| VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha threshold\n\t\t\t\t// y: frame
|
|
blending factor\n\t\t\t\t// z: alpha\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3
|
|
builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
|
|
TEXCOORD3;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t
|
|
\n\t\t\t #if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t float3 posWS : TEXCOORD5;\n\t\t\t
|
|
#endif\n\t\t\t \n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.z\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t#define VFX_VARYING_FRAMEBLEND builtInInterpolants.y\n\t\t\t#define
|
|
VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy\n\t\t\t#define VFX_VARYING_UV
|
|
uv\n\t\t\t\n\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t#define VFX_VARYING_POSWS
|
|
posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
|
|
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
|
|
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_48A7BEFB(inout float angleZ, float Angle) /*attribute:angle Composition:Overwrite
|
|
Source:Slot Random:Off channels:Z */\n\t\t\t{\n\t\t\t angleZ = Angle.x;\n\t\t\t}\n\t\t\tvoid
|
|
Orient_189(inout float3 axisX, inout float3 axisY, inout float3 axisZ, float3
|
|
position) /*mode:FaceCameraPosition axes:ZY */\n\t\t\t{\n\t\t\t \n\t\t\t
|
|
if (unity_OrthoParams.w == 1.0f) // Face plane for ortho\n\t\t\t {\n\t\t\t
|
|
float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t axisX = viewRot[0].xyz;\n\t\t\t
|
|
axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE // Need to remove
|
|
potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t
|
|
}\n\t\t\t else\n\t\t\t {\n\t\t\t axisZ = normalize(position -
|
|
GetViewVFXPosition());\n\t\t\t axisX = normalize(cross(GetVFXToViewRotMatrix()[1].xyz,axisZ));\n\t\t\t
|
|
axisY = cross(axisZ,axisX);\n\t\t\t }\n\t\t\t \n\t\t\t}\n\t\t\tvoid SetAttribute_3278B22F(inout
|
|
float size, float Size) /*attribute:size Composition:Overwrite Source:Slot
|
|
Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid
|
|
ColorOverLife_733E3(float age, float lifetime, inout float3 color, inout float
|
|
alpha, float gradient) /*mode:ColorAndAlpha ColorComposition:Multiply AlphaComposition:Multiply
|
|
*/\n\t\t\t{\n\t\t\t \n\t\t\t float4 sampledColor = SampleGradient(gradient,
|
|
age/lifetime);\n\t\t\t color *= sampledColor.rgb;\n\t\t\t alpha *= sampledColor.a;\n\t\t\t
|
|
\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error
|
|
VFX_PRIMITIVE_QUAD must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct
|
|
vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= float3(0, 0, 0);\n\t\t\t\t\n\n\t\t\t\treturn attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3
|
|
GetStripTangent(float3 currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.lifetime = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0x0) << 2));\n\t\t\t\t\t\tattributes.position = float3(0, 0, 0);\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.alive
|
|
= (attributeBuffer.Load((index * 0x2 + 0x20) << 2));\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\tattributes.age = asfloat(attributeBuffer.Load((index
|
|
* 0x2 + 0x21) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (attributeBuffer.Load((index * 0x2 + 0x20) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\t\t\tif (!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.lifetime
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0x0) << 2));\n\t\t\t\t\t\tattributes.position
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.axisX = float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY
|
|
= float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ = float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleY = (float)0;\n\t\t\t\t\t\tattributes.angleZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.size
|
|
= (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.age
|
|
= asfloat(attributeBuffer.Load((index * 0x2 + 0x21) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_48A7BEFB( /*inout */attributes.angleZ, (float)90);\n\t\t\t\t}\n\t\t\t\tOrient_189(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ,
|
|
attributes.position);\n\t\t\t\t{\n\t\t\t\t SetAttribute_3278B22F( /*inout
|
|
*/attributes.size, (float)0.100000001);\n\t\t\t\t}\n\t\t\t\tColorOverLife_733E3(attributes.age,
|
|
attributes.lifetime, /*inout */attributes.color, /*inout */attributes.alpha,
|
|
gradient_d);\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if !HAS_STRIPS\n\t\t\t\tif (!attributes.alive)\n\t\t\t\t\treturn
|
|
o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x =
|
|
(float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tfloat
|
|
cropFactor = (float)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t cropFactor = (float)0.293000013;\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\tfloat invSoftParticlesFadeDistance
|
|
= (float)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t invSoftParticlesFadeDistance
|
|
= (float)1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
|
|
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
|
|
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
|
|
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
|
|
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
|
|
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
|
|
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
|
|
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
|
|
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
|
|
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
|
|
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
|
|
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
|
|
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
|
|
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :
|
|
SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_COLOR_INTERPOLATOR\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 color : COLOR0;\n\t\t\t\t#endif\n\t\t\t\t#if USE_SOFT_PARTICLE || USE_ALPHA_TEST
|
|
|| USE_FLIPBOOK_INTERPOLATION || USE_EXPOSURE_WEIGHT || WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t//
|
|
x: inverse soft particles fade distance\n\t\t\t\t// y: alpha threshold\n\t\t\t\t//
|
|
z: frame blending factor\n\t\t\t\t// w: exposure weight\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t\tfloat3
|
|
posWS : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
cPosPrevious : TEXCOORD4;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD5;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
SHADERGRAPH_NEEDS_NORMAL_FORWARD\n\t\t\t\tfloat3 normal : TEXCOORD6;\n\t\t\t\t#endif\n\t\t\t\t#if
|
|
SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t\t\tfloat3 tangent : TEXCOORD7;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t
|
|
\n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\tstruct
|
|
ps_output\n\t\t\t{\n\t\t\t\tfloat4 color : SV_Target0;\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
outMotionVector : SV_Target1;\n\t\t#endif\n\t\t\t};\n\t\t\n\t\t#define VFX_VARYING_PS_INPUTS
|
|
ps_input\n\t\t#define VFX_VARYING_POSCS pos\n\t\t#define VFX_VARYING_COLOR
|
|
color.rgb\n\t\t#define VFX_VARYING_ALPHA color.a\n\t\t#define VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
builtInInterpolants.x\n\t\t#define VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y\n\t\t#define
|
|
VFX_VARYING_FRAMEBLEND builtInInterpolants.z\n\t\t#define VFX_VARYING_MOTIONVECTORSCALE
|
|
builtInInterpolants2.xy\n\t\t#define VFX_VARYING_UV uv\n\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t#define
|
|
VFX_VARYING_POSWS posWS\n\t\t#endif\n\t\t#if USE_EXPOSURE_WEIGHT\n\t\t#define
|
|
VFX_VARYING_EXPOSUREWEIGHT builtInInterpolants.w\n\t\t#endif\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t#endif\n\t\t\n\t\t#define SHADERPASS SHADERPASS_FORWARD_UNLIT\n\t\t\t\n\t\t#if
|
|
SHADERGRAPH_NEEDS_NORMAL_FORWARD\n\t\t#define VFX_VARYING_NORMAL normal\n\t\t#endif\n\t\t#if
|
|
SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t#define VFX_VARYING_TANGENT tangent\n\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
|
|
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_48A7BEFB(inout float angleZ, float Angle) /*attribute:angle Composition:Overwrite
|
|
Source:Slot Random:Off channels:Z */\n\t\t\t{\n\t\t\t angleZ = Angle.x;\n\t\t\t}\n\t\t\tvoid
|
|
Orient_189(inout float3 axisX, inout float3 axisY, inout float3 axisZ, float3
|
|
position) /*mode:FaceCameraPosition axes:ZY */\n\t\t\t{\n\t\t\t \n\t\t\t
|
|
if (unity_OrthoParams.w == 1.0f) // Face plane for ortho\n\t\t\t {\n\t\t\t
|
|
float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t axisX = viewRot[0].xyz;\n\t\t\t
|
|
axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE // Need to remove
|
|
potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t
|
|
}\n\t\t\t else\n\t\t\t {\n\t\t\t axisZ = normalize(position -
|
|
GetViewVFXPosition());\n\t\t\t axisX = normalize(cross(GetVFXToViewRotMatrix()[1].xyz,axisZ));\n\t\t\t
|
|
axisY = cross(axisZ,axisX);\n\t\t\t }\n\t\t\t \n\t\t\t}\n\t\t\tvoid SetAttribute_3278B22F(inout
|
|
float size, float Size) /*attribute:size Composition:Overwrite Source:Slot
|
|
Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid
|
|
ColorOverLife_733E3(float age, float lifetime, inout float3 color, inout float
|
|
alpha, float gradient) /*mode:ColorAndAlpha ColorComposition:Multiply AlphaComposition:Multiply
|
|
*/\n\t\t\t{\n\t\t\t \n\t\t\t float4 sampledColor = SampleGradient(gradient,
|
|
age/lifetime);\n\t\t\t color *= sampledColor.rgb;\n\t\t\t alpha *= sampledColor.a;\n\t\t\t
|
|
\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error
|
|
VFX_PRIMITIVE_QUAD must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct
|
|
vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= float3(0, 0, 0);\n\t\t\t\t\n\n\t\t\t\treturn attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3
|
|
GetStripTangent(float3 currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.lifetime = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0x0) << 2));\n\t\t\t\t\t\tattributes.position = float3(0, 0, 0);\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.alive
|
|
= (attributeBuffer.Load((index * 0x2 + 0x20) << 2));\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\tattributes.age = asfloat(attributeBuffer.Load((index
|
|
* 0x2 + 0x21) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (attributeBuffer.Load((index * 0x2 + 0x20) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\t\t\tif (!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.lifetime
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0x0) << 2));\n\t\t\t\t\t\tattributes.position
|
|
= float3(0, 0, 0);\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.axisX = float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY
|
|
= float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ = float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleY = (float)0;\n\t\t\t\t\t\tattributes.angleZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.size
|
|
= (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX = (float)1;\n\t\t\t\t\t\tattributes.scaleY
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleZ = (float)1;\n\t\t\t\t\t\tattributes.age
|
|
= asfloat(attributeBuffer.Load((index * 0x2 + 0x21) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_48A7BEFB( /*inout */attributes.angleZ, (float)90);\n\t\t\t\t}\n\t\t\t\tOrient_189(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ,
|
|
attributes.position);\n\t\t\t\t{\n\t\t\t\t SetAttribute_3278B22F( /*inout
|
|
*/attributes.size, (float)0.100000001);\n\t\t\t\t}\n\t\t\t\tColorOverLife_733E3(attributes.age,
|
|
attributes.lifetime, /*inout */attributes.color, /*inout */attributes.alpha,
|
|
gradient_d);\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if !HAS_STRIPS\n\t\t\t\tif (!attributes.alive)\n\t\t\t\t\treturn
|
|
o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x =
|
|
(float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tfloat
|
|
cropFactor = (float)0;\n\t\t\t\t{\n\t\t\t\t \n\t\t\t\t cropFactor = (float)0.293000013;\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\tfloat invSoftParticlesFadeDistance
|
|
= (float)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t invSoftParticlesFadeDistance
|
|
= (float)1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t#if
|
|
VFX_SHADERGRAPH\n\t\t\t\n\t\t#endif\n\t\t\t\t\n\t\t\t#pragma fragment frag\n\t\t\tps_output
|
|
frag(ps_input i)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tps_output
|
|
o = (ps_output)0;\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
|
|
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
|
|
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
|
|
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
|
|
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
|
|
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
|
|
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
|
|
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
|
|
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
|
|
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
|
|
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
|
|
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
|
|
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
|
|
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t#if
|
|
VFX_SHADERGRAPH\n\t\t \n\t\t \n\t\t \n\t\t \n\t\t
|
|
#if HAS_SHADERGRAPH_PARAM_COLOR\n\t\t o.color.rgb = OUTSG..rgb;\n\t\t
|
|
#endif\n\t\t \n\t\t #if HAS_SHADERGRAPH_PARAM_ALPHA \n\t\t
|
|
o.color.a = OUTSG.;\n\t\t #endif\n\t\t#else\n\t\t\t\n\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR VFXGetTextureColor(VFX_SAMPLER(mainTexture),i)\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat4
|
|
color = VFXGetFragmentColor(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifndef VFX_TEXTURE_COLOR\n\t\t\t\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR float4(1.0,1.0,1.0,1.0)\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_DEFAULT\n\t\t\t\t\t\t\to.color = color * VFX_TEXTURE_COLOR;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_GRADIENTMAPPED\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\to.color = SampleGradient(gradient,
|
|
VFX_TEXTURE_COLOR.a * color.a) * float4(color.rgb,1.0);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\to.color
|
|
= VFXApplyPreExposure(o.color, i);\n\t\t#endif\n\t\t\n\t\t\t\to.color = VFXApplyFog(o.color,i);\n\t\t\t\tVFXClipFragmentColor(o.color.a,i);\n\t\t\t\to.color.a
|
|
= saturate(o.color.a);\n\t\t\t\to.color = VFXTransformFinalColor(o.color);\n\t\t\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t\n\t\t\t\t\t\tfloat2 velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w)
|
|
- (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\tVFXEncodeMotionVector(velocity * 0.5f,
|
|
encodedMotionVector);\n\t\t\t\t\t\t\n\t\t\t\to.outMotionVector = encodedMotionVector;\n\t\t
|
|
o.outMotionVector.a = o.color.a < i.VFX_VARYING_ALPHATHRESHOLD ? 0.0f : 1.0f;
|
|
//Independant clipping for motion vector pass\n\t\t#endif\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t}\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[System 1]Initialize Particle'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_AGE_CURRENT 1\n#define VFX_USE_SEED_CURRENT
|
|
1\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_RATECOUNT_C_CURRENT
|
|
1\n#define VFX_USE_PARTICLEID_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\n\nstruct
|
|
Attributes\n{\n float age;\n uint seed;\n float3 position;\n float
|
|
rateCount_c;\n uint particleId;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
|
|
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
|
|
attributeBuffer;\r\nByteAddressBuffer sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n uint nbSpawned;\t\t\t\t\t// Numbers of particle
|
|
spawned\r\n uint spawnIndex;\t\t\t\t// Index of the first particle spawned\r\n
|
|
uint dispatchWidth;\r\n#else\r\n uint offsetInAdditionalOutput;\r\n\tuint
|
|
nbMax;\r\n#endif\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
|
|
deadListIn;\r\nByteAddressBuffer deadListCount; // This is bad to use a SRV
|
|
to fetch deadList count but Unity API currently prevent from copying to CB\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\nStructuredBuffer<uint> eventList;\r\nByteAddressBuffer
|
|
inputAdditional;\r\n#endif\r\n\r\n#if HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
SetAttribute_99ECB5C7(inout float age, inout uint seed, float A, float B) /*attribute:age
|
|
Composition:Overwrite Source:Slot Random:Uniform channels:XYZ */\n{\n age
|
|
= lerp(A,B,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout
|
|
uint particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
|
|
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
|
|
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
|
|
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
|
|
= stripIndex * PARTICLE_PER_STRIP_COUNT + ((STRIP_DATA(STRIP_FIRST_INDEX, stripIndex)
|
|
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
|
|
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
|
|
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n
|
|
uint currentSpawnIndex = spawnIndex;\r\n#endif\r\n\r\n#if USE_DEAD_LIST\r\n
|
|
maxThreadId = min(maxThreadId, deadListCount.Load(0x0));\r\n#elif VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
maxThreadId = min(maxThreadId, nbMax); //otherwise, nbSpawned already clamped
|
|
on CPU\r\n#endif\r\n\r\n if (id < maxThreadId)\r\n {\r\n#if VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
int sourceIndex = eventList[id];\r\n#endif\r\n\t\tuint particleIndex = id +
|
|
currentSpawnIndex;\r\n\t\t\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n int
|
|
sourceIndex = 0;\n /*//Loop with 1 iteration generate a wrong IL Assembly
|
|
(and actually, useless code)\n uint currentSumSpawnCount = 0u;\n
|
|
for (sourceIndex=0; sourceIndex<1; sourceIndex++)\n {\n currentSumSpawnCount
|
|
+= uint(asfloat(sourceAttributeBuffer.Load((sourceIndex * 0x1 + 0x0) << 2)));\n
|
|
if (id < currentSumSpawnCount)\n {\n break;\n
|
|
}\n }\n */\n \n\r\n#endif\r\n\r\n\t\tAttributes attributes
|
|
= (Attributes)0;\r\n\t\tSourceAttributes sourceAttributes = (SourceAttributes)0;\r\n\t\t\r\n
|
|
attributes.age = (float)0;\n attributes.seed = (uint)0;\n attributes.position
|
|
= float3(0, 0, 0);\n attributes.rateCount_c = (float)0;\n attributes.particleId
|
|
= (uint)0;\n \n\r\n#if VFX_USE_PARTICLEID_CURRENT\r\n attributes.particleId
|
|
= particleIndex;\r\n#endif\r\n#if VFX_USE_SEED_CURRENT\r\n attributes.seed
|
|
= WangHash(particleIndex ^ systemSeed);\r\n#endif\r\n#if VFX_USE_SPAWNINDEX_CURRENT\r\n
|
|
attributes.spawnIndex = id;\r\n#endif\r\n#if HAS_STRIPS\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n\t\t\r\n#else\r\n
|
|
uint stripIndex = sourceIndex;\r\n#endif\r\n\t\tstripIndex = min(stripIndex,
|
|
STRIP_COUNT);\r\n\r\n if (!GetParticleIndex(particleIndex, stripIndex))\r\n
|
|
return;\r\n\r\n const StripData stripData = GetStripDataFromStripIndex(stripIndex,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n\t\tInitStripAttributes(particleIndex, attributes,
|
|
stripData);\r\n\t\t// TODO Change seed to be sure we're deterministic on random
|
|
with strip\r\n#endif\r\n \r\n {\n SetAttribute_99ECB5C7(
|
|
/*inout */attributes.age, /*inout */attributes.seed, (float)0, (float)32);\n
|
|
}\n \n\r\n\t\t\r\n#if VFX_USE_ALIVE_CURRENT\r\n if (attributes.alive)\r\n#endif
|
|
\r\n {\r\n#if USE_DEAD_LIST\r\n\t uint deadIndex = deadListIn.DecrementCounter();\r\n
|
|
uint index = deadListIn[deadIndex];\r\n#else\r\n uint index = particleIndex;\r\n#endif\r\n
|
|
attributeBuffer.Store((index * 0x3 + 0x0) << 2,asuint(attributes.age));\n
|
|
attributeBuffer.Store((index * 0x3 + 0x1) << 2,asuint(attributes.seed));\n
|
|
attributeBuffer.Store3((index * 0x4 + 0x30) << 2,asuint(attributes.position));\n
|
|
attributeBuffer.Store((index * 0x3 + 0x2) << 2,asuint(attributes.rateCount_c));\n
|
|
attributeBuffer.Store((index * 0x1 + 0x70) << 2,asuint(attributes.particleId));\n
|
|
\n\r\n }\r\n }\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[System 1]Update Particle'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_AGE_CURRENT 1\n#define VFX_USE_SEED_CURRENT
|
|
1\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_RATECOUNT_C_CURRENT
|
|
1\n#define VFX_USE_EVENTCOUNT_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
|
|
1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
|
|
float uniform_b;\n float uniform_c;\n float uniform_d;\n float uniform_e;\n
|
|
float uniform_f;\n float uniform_g;\n float uniform_h;\n float uniform_i;\nCBUFFER_END\n\nstruct
|
|
Attributes\n{\n float age;\n uint seed;\n float3 position;\n float
|
|
rateCount_c;\n uint eventCount;\n uint particleId;\n};\n\nstruct SourceAttributes\n{\n};\n\nAppendStructuredBuffer<uint>
|
|
eventListOut_a;\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT &&
|
|
!HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
|
|
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint>
|
|
indirectBuffer;\r\n#endif\r\n\r\n#if HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#if
|
|
VFX_USE_STRIPALIVE_CURRENT\r\nBuffer<uint> attachedStripDataBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n
|
|
uint nbMax;\r\n\tuint dispatchWidth;\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
SetAttribute_CAC29747(inout float3 position, float3 Position) /*attribute:position
|
|
Composition:Overwrite Source:Slot Random:Off channels:XYZ */\n{\n position
|
|
= Position;\n}\nvoid SetAttribute_9631F7C0(inout float age, float Age) /*attribute:age
|
|
Composition:Add Source:Slot Random:Off channels:XYZ */\n{\n age += Age;\n}\nvoid
|
|
GPUEventRate_1(inout float rateCount_c, inout uint eventCount, float Rate,
|
|
float deltaTime) /*mode:OverTime clampToOne:True */\n{\n rateCount_c +=
|
|
deltaTime * Rate;\n uint count = floor(rateCount_c);\n rateCount_c =
|
|
frac(rateCount_c);\n eventCount = count;\n eventCount = min(eventCount,1);\n
|
|
\n}\nvoid Age(inout float age, float deltaTime)\n{\n age += deltaTime;\n}\n\n\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
|
|
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
|
|
: SV_GroupThreadID)\r\n{\r\n\tuint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP
|
|
+ groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n\tuint index = id;\r\n\tif
|
|
(id < nbMax)\r\n\t{\r\n Attributes attributes = (Attributes)0;\r\n\t\tSourceAttributes
|
|
sourceAttributes = (SourceAttributes)0;\r\n\r\n#if VFX_USE_ALIVE_CURRENT\r\n\t\t\r\n\t\tif
|
|
(attributes.alive)\r\n\t\t{\r\n\t\t\tattributes.age = asfloat(attributeBuffer.Load((index
|
|
* 0x3 + 0x0) << 2));\n\t\t\tattributes.seed = (attributeBuffer.Load((index
|
|
* 0x3 + 0x1) << 2));\n\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x30) << 2));\n\t\t\tattributes.rateCount_c = asfloat(attributeBuffer.Load((index
|
|
* 0x3 + 0x2) << 2));\n\t\t\tattributes.eventCount = (uint)0;\n\t\t\tuint eventCount_a
|
|
= 0u;\n\t\t\tattributes.particleId = (attributeBuffer.Load((index * 0x1 + 0x70)
|
|
<< 2));\n\t\t\t\n\r\n\r\n// Initialize built-in needed attributes\r\n#if VFX_USE_OLDPOSITION_CURRENT\r\n\t\t\tattributes.oldPosition
|
|
= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
|
|
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
|
|
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t
|
|
uint tmp_bg = attributes.particleId ^ asuint(uniform_b);\n\t\t\t float tmp_bh
|
|
= FixedRand(tmp_bg);\n\t\t\t float tmp_bj = tmp_bh * (float)2;\n\t\t\t
|
|
float tmp_bk = (float)-1 + tmp_bj;\n\t\t\t uint tmp_bl = attributes.particleId
|
|
^ asuint(uniform_c);\n\t\t\t float tmp_bm = FixedRand(tmp_bl);\n\t\t\t
|
|
float tmp_bn = tmp_bm * (float)2;\n\t\t\t float tmp_bo = (float)-1 + tmp_bn;\n\t\t\t
|
|
uint tmp_bp = attributes.particleId ^ asuint(uniform_d);\n\t\t\t float tmp_bq
|
|
= FixedRand(tmp_bp);\n\t\t\t float tmp_br = tmp_bq * (float)2;\n\t\t\t
|
|
float tmp_bs = (float)-1 + tmp_br;\n\t\t\t float3 tmp_bt = float3(tmp_bk,
|
|
tmp_bo, tmp_bs);\n\t\t\t float3 tmp_bv = tmp_bt * tmp_bt;\n\t\t\t float
|
|
tmp_bw = tmp_bv[2];\n\t\t\t float tmp_bx = tmp_bv[1];\n\t\t\t float tmp_by
|
|
= tmp_bw + tmp_bx;\n\t\t\t float tmp_bz = tmp_bv[0];\n\t\t\t float tmp_ca
|
|
= tmp_by + tmp_bz;\n\t\t\t float tmp_cc = pow(tmp_ca, (float)0.5);\n\t\t\t
|
|
float tmp_cd = (float)1 / tmp_cc;\n\t\t\t float3 tmp_ce = float3(tmp_cd,
|
|
tmp_cd, tmp_cd);\n\t\t\t float3 tmp_cf = tmp_bt * tmp_ce;\n\t\t\t float3
|
|
tmp_ch = max(tmp_cf, float3(-1, -1, -1));\n\t\t\t float3 tmp_cj = min(tmp_ch,
|
|
float3(1, 1, 1));\n\t\t\t float3 tmp_ck = tmp_cj - float3(-1, -1, -1);\n\t\t\t
|
|
float3 tmp_cm = tmp_ck / float3(2, 2, 2);\n\t\t\t float3 tmp_co = tmp_cm
|
|
* float3(0.200000003, 0, 0.200000003);\n\t\t\t float3 tmp_cp = float3(-0.100000001,
|
|
1, -0.100000001) + tmp_co;\n\t\t\t float3 tmp_cq = tmp_cp * tmp_cp;\n\t\t\t
|
|
float tmp_cr = tmp_cq[2];\n\t\t\t float tmp_cs = tmp_cq[1];\n\t\t\t float
|
|
tmp_ct = tmp_cr + tmp_cs;\n\t\t\t float tmp_cu = tmp_cq[0];\n\t\t\t float
|
|
tmp_cv = tmp_ct + tmp_cu;\n\t\t\t float tmp_cw = pow(tmp_cv, (float)0.5);\n\t\t\t
|
|
float tmp_cx = (float)1 / tmp_cw;\n\t\t\t float3 tmp_cy = float3(tmp_cx,
|
|
tmp_cx, tmp_cx);\n\t\t\t float3 tmp_cz = tmp_cp * tmp_cy;\n\t\t\t uint
|
|
tmp_db = attributes.particleId ^ asuint(uniform_e);\n\t\t\t float tmp_dc
|
|
= FixedRand(tmp_db);\n\t\t\t float tmp_dd = tmp_dc * (float)2;\n\t\t\t
|
|
float tmp_de = (float)-1 + tmp_dd;\n\t\t\t uint tmp_df = attributes.particleId
|
|
^ asuint(uniform_f);\n\t\t\t float tmp_dg = FixedRand(tmp_df);\n\t\t\t
|
|
float tmp_dh = tmp_dg * (float)2;\n\t\t\t float tmp_di = (float)-1 + tmp_dh;\n\t\t\t
|
|
uint tmp_dj = attributes.particleId ^ asuint(uniform_g);\n\t\t\t float tmp_dk
|
|
= FixedRand(tmp_dj);\n\t\t\t float tmp_dl = tmp_dk * (float)2;\n\t\t\t
|
|
float tmp_dm = (float)-1 + tmp_dl;\n\t\t\t float3 tmp_dn = float3(tmp_de,
|
|
tmp_di, tmp_dm);\n\t\t\t float3 tmp_do = max(tmp_dn, float3(-1, -1, -1));\n\t\t\t
|
|
float3 tmp_dp = min(tmp_do, float3(1, 1, 1));\n\t\t\t float3 tmp_dq = tmp_dp
|
|
- float3(-1, -1, -1);\n\t\t\t float3 tmp_dr = tmp_dq / float3(2, 2, 2);\n\t\t\t
|
|
float3 tmp_dt = tmp_dr * float3(2, 0.200000003, 2);\n\t\t\t float3 tmp_du
|
|
= float3(-1, -0.100000001, -1) + tmp_dt;\n\t\t\t float3 tmp_dv = tmp_cz
|
|
* tmp_du;\n\t\t\t float tmp_dw = tmp_dv[2];\n\t\t\t float tmp_dx = tmp_dv[1];\n\t\t\t
|
|
float tmp_dy = tmp_dw + tmp_dx;\n\t\t\t float tmp_dz = tmp_dv[0];\n\t\t\t
|
|
float tmp_ea = tmp_dy + tmp_dz;\n\t\t\t float3 tmp_eb = float3(tmp_ea, tmp_ea,
|
|
tmp_ea);\n\t\t\t float3 tmp_ec = tmp_cz * tmp_eb;\n\t\t\t float3 tmp_ed
|
|
= tmp_du - tmp_ec;\n\t\t\t float tmp_ef = attributes.age * (float)0.100000001;\n\t\t\t
|
|
float tmp_eg = cos(tmp_ef);\n\t\t\t float3 tmp_eh = float3(tmp_eg, tmp_eg,
|
|
tmp_eg);\n\t\t\t float3 tmp_ei = tmp_ed * tmp_eh;\n\t\t\t float3 tmp_ej
|
|
= tmp_ec + tmp_ei;\n\t\t\t float tmp_ek = tmp_ed[1];\n\t\t\t float tmp_el
|
|
= tmp_cz[2];\n\t\t\t float tmp_em = tmp_ek * tmp_el;\n\t\t\t float tmp_en
|
|
= tmp_ed[2];\n\t\t\t float tmp_eo = tmp_cz[1];\n\t\t\t float tmp_ep =
|
|
tmp_en * tmp_eo;\n\t\t\t float tmp_eq = tmp_em - tmp_ep;\n\t\t\t float
|
|
tmp_er = tmp_cz[0];\n\t\t\t float tmp_es = tmp_en * tmp_er;\n\t\t\t float
|
|
tmp_et = tmp_ed[0];\n\t\t\t float tmp_eu = tmp_et * tmp_el;\n\t\t\t float
|
|
tmp_ev = tmp_es - tmp_eu;\n\t\t\t float tmp_ew = tmp_et * tmp_eo;\n\t\t\t
|
|
float tmp_ex = tmp_ek * tmp_er;\n\t\t\t float tmp_ey = tmp_ew - tmp_ex;\n\t\t\t
|
|
float3 tmp_ez = float3(tmp_eq, tmp_ev, tmp_ey);\n\t\t\t float tmp_fa = sin(tmp_ef);\n\t\t\t
|
|
float3 tmp_fb = float3(tmp_fa, tmp_fa, tmp_fa);\n\t\t\t float3 tmp_fc =
|
|
tmp_ez * tmp_fb;\n\t\t\t float3 tmp_fd = tmp_ej + tmp_fc;\n\t\t\t float3
|
|
tmp_ff = tmp_fd * float3(1.45000005, 1, 1);\n\t\t\t SetAttribute_CAC29747(
|
|
/*inout */attributes.position, tmp_ff);\n\t\t\t}\n\t\t\t{\n\t\t\t uint tmp_bf
|
|
= attributes.particleId ^ asuint(uniform_h);\n\t\t\t float tmp_bg = FixedRand(tmp_bf);\n\t\t\t
|
|
float tmp_bi = tmp_bg * (float)0.300000012;\n\t\t\t float tmp_bj = (float)0.100000001
|
|
+ tmp_bi;\n\t\t\t float tmp_bk = tmp_bj * uniform_i;\n\t\t\t SetAttribute_9631F7C0(
|
|
/*inout */attributes.age, tmp_bk);\n\t\t\t}\n\t\t\t{\n\t\t\t attributes.eventCount
|
|
= 0u;\n\t\t\t GPUEventRate_1( /*inout */attributes.rateCount_c, /*inout
|
|
*/attributes.eventCount, (float)30, uniform_i);\n\t\t\t eventCount_a +=
|
|
attributes.eventCount;\n\t\t\t}\n\t\t\tAge( /*inout */attributes.age, uniform_i);\n\t\t\t\n\r\n\r\n\t\t\tif
|
|
(attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store((index * 0x3
|
|
+ 0x0) << 2,asuint(attributes.age));\n\t\t\t\tattributeBuffer.Store((index
|
|
* 0x3 + 0x1) << 2,asuint(attributes.seed));\n\t\t\t\tattributeBuffer.Store3((index
|
|
* 0x4 + 0x30) << 2,asuint(attributes.position));\n\t\t\t\tattributeBuffer.Store((index
|
|
* 0x3 + 0x2) << 2,asuint(attributes.rateCount_c));\n\t\t\t\tfor (uint i = 0;
|
|
i < eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\t\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n\r\n#if HAS_STRIPS\t\t\t\r\n\t\t\t\tuint relativeIndexInStrip
|
|
= GetRelativeIndex(index, stripData);\r\n\t\t\t\tInterlockedMin(STRIP_DATA(STRIP_MIN_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n\t\t\t\tInterlockedMax(STRIP_DATA(STRIP_MAX_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n#endif\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tfor
|
|
(uint i = 0; i < eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if
|
|
USE_DEAD_LIST && !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
|
|
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,
|
|
STRIP_MIN_ALIVE, index) == ~1) // Attached strip is no longer alive, recycle
|
|
the particle \r\n {\r\n uint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n attributes.stripAlive = false;\r\n
|
|
\r\n } \r\n }\r\n#endif\r\n#else\r\n\t\tattributes.age
|
|
= asfloat(attributeBuffer.Load((index * 0x3 + 0x0) << 2));\n\t\tattributes.seed
|
|
= (attributeBuffer.Load((index * 0x3 + 0x1) << 2));\n\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x30) << 2));\n\t\tattributes.rateCount_c
|
|
= asfloat(attributeBuffer.Load((index * 0x3 + 0x2) << 2));\n\t\tattributes.eventCount
|
|
= (uint)0;\n\t\tuint eventCount_a = 0u;\n\t\tattributes.particleId = (attributeBuffer.Load((index
|
|
* 0x1 + 0x70) << 2));\n\t\t\n\r\n\t\t\r\n#if VFX_USE_OLDPOSITION_CURRENT\r\n\t\tattributes.oldPosition
|
|
= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
|
|
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
|
|
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t
|
|
uint tmp_bg = attributes.particleId ^ asuint(uniform_b);\n\t\t float tmp_bh
|
|
= FixedRand(tmp_bg);\n\t\t float tmp_bj = tmp_bh * (float)2;\n\t\t float
|
|
tmp_bk = (float)-1 + tmp_bj;\n\t\t uint tmp_bl = attributes.particleId ^
|
|
asuint(uniform_c);\n\t\t float tmp_bm = FixedRand(tmp_bl);\n\t\t float
|
|
tmp_bn = tmp_bm * (float)2;\n\t\t float tmp_bo = (float)-1 + tmp_bn;\n\t\t
|
|
uint tmp_bp = attributes.particleId ^ asuint(uniform_d);\n\t\t float tmp_bq
|
|
= FixedRand(tmp_bp);\n\t\t float tmp_br = tmp_bq * (float)2;\n\t\t float
|
|
tmp_bs = (float)-1 + tmp_br;\n\t\t float3 tmp_bt = float3(tmp_bk, tmp_bo,
|
|
tmp_bs);\n\t\t float3 tmp_bv = tmp_bt * tmp_bt;\n\t\t float tmp_bw =
|
|
tmp_bv[2];\n\t\t float tmp_bx = tmp_bv[1];\n\t\t float tmp_by = tmp_bw
|
|
+ tmp_bx;\n\t\t float tmp_bz = tmp_bv[0];\n\t\t float tmp_ca = tmp_by
|
|
+ tmp_bz;\n\t\t float tmp_cc = pow(tmp_ca, (float)0.5);\n\t\t float tmp_cd
|
|
= (float)1 / tmp_cc;\n\t\t float3 tmp_ce = float3(tmp_cd, tmp_cd, tmp_cd);\n\t\t
|
|
float3 tmp_cf = tmp_bt * tmp_ce;\n\t\t float3 tmp_ch = max(tmp_cf, float3(-1,
|
|
-1, -1));\n\t\t float3 tmp_cj = min(tmp_ch, float3(1, 1, 1));\n\t\t float3
|
|
tmp_ck = tmp_cj - float3(-1, -1, -1);\n\t\t float3 tmp_cm = tmp_ck / float3(2,
|
|
2, 2);\n\t\t float3 tmp_co = tmp_cm * float3(0.200000003, 0, 0.200000003);\n\t\t
|
|
float3 tmp_cp = float3(-0.100000001, 1, -0.100000001) + tmp_co;\n\t\t float3
|
|
tmp_cq = tmp_cp * tmp_cp;\n\t\t float tmp_cr = tmp_cq[2];\n\t\t float
|
|
tmp_cs = tmp_cq[1];\n\t\t float tmp_ct = tmp_cr + tmp_cs;\n\t\t float
|
|
tmp_cu = tmp_cq[0];\n\t\t float tmp_cv = tmp_ct + tmp_cu;\n\t\t float
|
|
tmp_cw = pow(tmp_cv, (float)0.5);\n\t\t float tmp_cx = (float)1 / tmp_cw;\n\t\t
|
|
float3 tmp_cy = float3(tmp_cx, tmp_cx, tmp_cx);\n\t\t float3 tmp_cz = tmp_cp
|
|
* tmp_cy;\n\t\t uint tmp_db = attributes.particleId ^ asuint(uniform_e);\n\t\t
|
|
float tmp_dc = FixedRand(tmp_db);\n\t\t float tmp_dd = tmp_dc * (float)2;\n\t\t
|
|
float tmp_de = (float)-1 + tmp_dd;\n\t\t uint tmp_df = attributes.particleId
|
|
^ asuint(uniform_f);\n\t\t float tmp_dg = FixedRand(tmp_df);\n\t\t float
|
|
tmp_dh = tmp_dg * (float)2;\n\t\t float tmp_di = (float)-1 + tmp_dh;\n\t\t
|
|
uint tmp_dj = attributes.particleId ^ asuint(uniform_g);\n\t\t float tmp_dk
|
|
= FixedRand(tmp_dj);\n\t\t float tmp_dl = tmp_dk * (float)2;\n\t\t float
|
|
tmp_dm = (float)-1 + tmp_dl;\n\t\t float3 tmp_dn = float3(tmp_de, tmp_di,
|
|
tmp_dm);\n\t\t float3 tmp_do = max(tmp_dn, float3(-1, -1, -1));\n\t\t
|
|
float3 tmp_dp = min(tmp_do, float3(1, 1, 1));\n\t\t float3 tmp_dq = tmp_dp
|
|
- float3(-1, -1, -1);\n\t\t float3 tmp_dr = tmp_dq / float3(2, 2, 2);\n\t\t
|
|
float3 tmp_dt = tmp_dr * float3(2, 0.200000003, 2);\n\t\t float3 tmp_du
|
|
= float3(-1, -0.100000001, -1) + tmp_dt;\n\t\t float3 tmp_dv = tmp_cz *
|
|
tmp_du;\n\t\t float tmp_dw = tmp_dv[2];\n\t\t float tmp_dx = tmp_dv[1];\n\t\t
|
|
float tmp_dy = tmp_dw + tmp_dx;\n\t\t float tmp_dz = tmp_dv[0];\n\t\t
|
|
float tmp_ea = tmp_dy + tmp_dz;\n\t\t float3 tmp_eb = float3(tmp_ea, tmp_ea,
|
|
tmp_ea);\n\t\t float3 tmp_ec = tmp_cz * tmp_eb;\n\t\t float3 tmp_ed =
|
|
tmp_du - tmp_ec;\n\t\t float tmp_ef = attributes.age * (float)0.100000001;\n\t\t
|
|
float tmp_eg = cos(tmp_ef);\n\t\t float3 tmp_eh = float3(tmp_eg, tmp_eg,
|
|
tmp_eg);\n\t\t float3 tmp_ei = tmp_ed * tmp_eh;\n\t\t float3 tmp_ej =
|
|
tmp_ec + tmp_ei;\n\t\t float tmp_ek = tmp_ed[1];\n\t\t float tmp_el =
|
|
tmp_cz[2];\n\t\t float tmp_em = tmp_ek * tmp_el;\n\t\t float tmp_en =
|
|
tmp_ed[2];\n\t\t float tmp_eo = tmp_cz[1];\n\t\t float tmp_ep = tmp_en
|
|
* tmp_eo;\n\t\t float tmp_eq = tmp_em - tmp_ep;\n\t\t float tmp_er =
|
|
tmp_cz[0];\n\t\t float tmp_es = tmp_en * tmp_er;\n\t\t float tmp_et =
|
|
tmp_ed[0];\n\t\t float tmp_eu = tmp_et * tmp_el;\n\t\t float tmp_ev =
|
|
tmp_es - tmp_eu;\n\t\t float tmp_ew = tmp_et * tmp_eo;\n\t\t float tmp_ex
|
|
= tmp_ek * tmp_er;\n\t\t float tmp_ey = tmp_ew - tmp_ex;\n\t\t float3
|
|
tmp_ez = float3(tmp_eq, tmp_ev, tmp_ey);\n\t\t float tmp_fa = sin(tmp_ef);\n\t\t
|
|
float3 tmp_fb = float3(tmp_fa, tmp_fa, tmp_fa);\n\t\t float3 tmp_fc = tmp_ez
|
|
* tmp_fb;\n\t\t float3 tmp_fd = tmp_ej + tmp_fc;\n\t\t float3 tmp_ff
|
|
= tmp_fd * float3(1.45000005, 1, 1);\n\t\t SetAttribute_CAC29747( /*inout
|
|
*/attributes.position, tmp_ff);\n\t\t}\n\t\t{\n\t\t uint tmp_bf = attributes.particleId
|
|
^ asuint(uniform_h);\n\t\t float tmp_bg = FixedRand(tmp_bf);\n\t\t float
|
|
tmp_bi = tmp_bg * (float)0.300000012;\n\t\t float tmp_bj = (float)0.100000001
|
|
+ tmp_bi;\n\t\t float tmp_bk = tmp_bj * uniform_i;\n\t\t SetAttribute_9631F7C0(
|
|
/*inout */attributes.age, tmp_bk);\n\t\t}\n\t\t{\n\t\t attributes.eventCount
|
|
= 0u;\n\t\t GPUEventRate_1( /*inout */attributes.rateCount_c, /*inout */attributes.eventCount,
|
|
(float)30, uniform_i);\n\t\t eventCount_a += attributes.eventCount;\n\t\t}\n\t\tAge(
|
|
/*inout */attributes.age, uniform_i);\n\t\t\n\r\n\t\tattributeBuffer.Store((index
|
|
* 0x3 + 0x0) << 2,asuint(attributes.age));\n\t\tattributeBuffer.Store((index
|
|
* 0x3 + 0x1) << 2,asuint(attributes.seed));\n\t\tattributeBuffer.Store3((index
|
|
* 0x4 + 0x30) << 2,asuint(attributes.position));\n\t\tattributeBuffer.Store((index
|
|
* 0x3 + 0x2) << 2,asuint(attributes.rateCount_c));\n\t\tfor (uint i = 0; i
|
|
< eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
|
|
- compute: 0
|
|
name: '[System 1]Output Particle Quad'
|
|
source: "Shader \"Hidden/VFX/MainMenu/System 1/Output Particle Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
|
|
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Geometry+450\" \"IgnoreProjector\"=\"False\"
|
|
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
|
|
LEqual\n\t\tZWrite On\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
|
|
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
|
|
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION
|
|
(2)\n\t\t#define VFX_USE_POSITION_CURRENT 1\n\t\t#define VFX_USE_COLOR_CURRENT
|
|
1\n\t\t#define VFX_USE_ALPHA_CURRENT 1\n\t\t#define VFX_USE_ALIVE_CURRENT 1\n\t\t#define
|
|
VFX_USE_AXISX_CURRENT 1\n\t\t#define VFX_USE_AXISY_CURRENT 1\n\t\t#define VFX_USE_AXISZ_CURRENT
|
|
1\n\t\t#define VFX_USE_ANGLEX_CURRENT 1\n\t\t#define VFX_USE_ANGLEY_CURRENT
|
|
1\n\t\t#define VFX_USE_ANGLEZ_CURRENT 1\n\t\t#define VFX_USE_PIVOTX_CURRENT
|
|
1\n\t\t#define VFX_USE_PIVOTY_CURRENT 1\n\t\t#define VFX_USE_PIVOTZ_CURRENT
|
|
1\n\t\t#define VFX_USE_SIZE_CURRENT 1\n\t\t#define VFX_USE_SCALEX_CURRENT 1\n\t\t#define
|
|
VFX_USE_SCALEY_CURRENT 1\n\t\t#define VFX_USE_SCALEZ_CURRENT 1\n\t\t#define
|
|
VFX_COLORMAPPING_DEFAULT 1\n\t\t#define IS_OPAQUE_PARTICLE 1\n\t\t#define USE_ALPHA_TEST
|
|
1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_SHADERGRAPH 1\n\t\t#define
|
|
HAS_SHADERGRAPH_PARAM_COLOR 1\n\t\t#define HAS_SHADERGRAPH_PARAM_ALPHA 1\n\t\t#define
|
|
HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
|
|
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\t\n\t\tstruct
|
|
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float3 color;\n\t\t
|
|
float alpha;\n\t\t bool alive;\n\t\t float3 axisX;\n\t\t float3 axisY;\n\t\t
|
|
float3 axisZ;\n\t\t float angleX;\n\t\t float angleY;\n\t\t float
|
|
angleZ;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t float pivotZ;\n\t\t
|
|
float size;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct
|
|
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\t\n\n\t\t\n\t\t#define VFX_NEEDS_COLOR_INTERPOLATOR
|
|
(VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if HAS_STRIPS\n\t\t#define
|
|
VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define VFX_OPTIONAL_INTERPOLATION
|
|
nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer attributeBuffer;\t\n\t\t\n\t\t#if
|
|
VFX_HAS_INDIRECT_DRAW\n\t\tStructuredBuffer<uint> indirectBuffer;\t\n\t\t#endif\t\n\t\t\n\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\tByteAddressBuffer deadListCount;\n\t\t#endif\n\t\t\n\t\t#if
|
|
HAS_STRIPS\n\t\tBuffer<uint> stripDataBuffer;\n\t\t#endif\n\t\t\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD
|
|
|| USE_MOTION_VECTORS_PASS\n\t\tByteAddressBuffer elementToVFXBufferPrevious;\n\t\t#endif\n\t\t\n\t\tCBUFFER_START(outputParams)\n\t\t\tfloat
|
|
nbMax;\n\t\t\tfloat systemSeed;\n\t\tCBUFFER_END\n\t\t\n\t\t// Helper macros
|
|
to always use a valid instanceID\n\t\t#if defined(UNITY_STEREO_INSTANCING_ENABLED)\n\t\t\t#define
|
|
VFX_DECLARE_INSTANCE_ID UNITY_VERTEX_INPUT_INSTANCE_ID\n\t\t\t#define VFX_GET_INSTANCE_ID(i)
|
|
unity_InstanceID\n\t\t#else\n\t\t\t#define VFX_DECLARE_INSTANCE_ID uint
|
|
instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
|
|
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
|
|
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
|
|
USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION
|
|
|| VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha threshold\n\t\t\t\t// y: frame
|
|
blending factor\n\t\t\t\t// z: alpha\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3
|
|
builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
|
|
TEXCOORD3;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t
|
|
\n\t\t\t #if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t float3 posWS : TEXCOORD5;\n\t\t\t
|
|
#endif\n\t\t\t VFX_OPTIONAL_INTERPOLATION float3 VFXColor : NORMAL0;\n\t\t\t
|
|
VFX_OPTIONAL_INTERPOLATION float VFXAlpha : NORMAL1;\n\t\t\t VFX_OPTIONAL_INTERPOLATION
|
|
float _Threshold : NORMAL2;\n\t\t\t \n\n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.z\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t#define VFX_VARYING_FRAMEBLEND builtInInterpolants.y\n\t\t\t#define
|
|
VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy\n\t\t\t#define VFX_VARYING_UV
|
|
uv\n\t\t\t\n\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t#define VFX_VARYING_POSWS
|
|
posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
|
|
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
|
|
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_3278B22F(inout float size, float Size) /*attribute:size Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid
|
|
Orient_4(inout float3 axisX, inout float3 axisY, inout float3 axisZ) /*mode:FaceCameraPlane
|
|
axes:ZY */\n\t\t\t{\n\t\t\t \n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t
|
|
axisX = viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE
|
|
// Need to remove potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t \n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
|
|
defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD
|
|
must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x30) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x30) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x30) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_3278B22F( /*inout */attributes.size, (float)0.00999999978);\n\t\t\t\t}\n\t\t\t\tOrient_4(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\tif (!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t float3 VFXColor__ = (float3)0;{\n\t\t\t \n\t\t\t
|
|
VFXColor__ = float3(12, 512, 1234);\n\t\t\t }\n\t\t\t o.VFXColor = VFXColor__;float
|
|
VFXAlpha__ = (float)0;{\n\t\t\t \n\t\t\t VFXAlpha__ = (float)1;\n\t\t\t
|
|
}\n\t\t\t o.VFXAlpha = VFXAlpha__;float _Threshold__ = (float)0;{\n\t\t\t
|
|
\n\t\t\t _Threshold__ = (float)0.899999976;\n\t\t\t }\n\t\t\t
|
|
o._Threshold = _Threshold__;\n\n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/EntityLighting.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinGIUtilities.hlsl\"\n\t\t\t\t\t#ifndef
|
|
SHADERPASS\n\t\t\t\t\t#error Shaderpass should be defined at this stage.\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl\"\n\t\t\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl\"\n\t\t\t//
|
|
Node: Remap\n\t\t\tvoid Unity_Remap_float2(float2 In, float2 InMinMax, float2
|
|
OutMinMax, out float2 Out)\n\t\t\t{\n\t\t\t Out = OutMinMax.x + (In - InMinMax.x)
|
|
* (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Dot Product\n\t\t\tvoid Unity_DotProduct_float2(float2 A, float2 B, out
|
|
float Out)\n\t\t\t{\n\t\t\t Out = dot(A, B);\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Square Root\n\t\t\tvoid Unity_SquareRoot_float(float In, out float Out)\n\t\t\t{\n\t\t\t
|
|
Out = sqrt(In);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Step\n\t\t\tvoid Unity_Step_float(float
|
|
Edge, float In, out float Out)\n\t\t\t{\n\t\t\t Out = step(Edge, In);\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Multiply\n\t\t\tvoid Unity_Multiply_float(float A, float B, out float
|
|
Out)\n\t\t\t{\n\t\t\t Out = A * B;\n\t\t\t}\n\t\t\t\n\t\t\tstruct SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9\n\t\t\t{\n\t\t\t
|
|
half4 uv0;\n\t\t\t};\n\t\t\t\n\t\t\tstruct SG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9\n\t\t\t{\n\t\t\t
|
|
float Alpha_4;\n\t\t\t float AlphaThreshold_7;\n\t\t\t};\n\t\t\t\n\t\t\tSG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
SG_Evaluate_c8cd82ff2698f8e4eb4b505774d8a9a9(\n\t\t\t SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
IN,\n\t\t\t /* Property: (VFX) Alpha */ float VFXAlpha,\n\t\t\t /* Property:
|
|
Threshold */ float _Threshold)\n\t\t\t{\n\t\t\t // Node: UV\n\t\t\t float4
|
|
_UV_624D0B95_Out_0 = IN.uv0;\n\t\t\t\n\t\t\t // Node: Split\n\t\t\t float
|
|
_Split_F72C52F4_R_1 = _UV_624D0B95_Out_0[0];\n\t\t\t float _Split_F72C52F4_G_2
|
|
= _UV_624D0B95_Out_0[1];\n\t\t\t float _Split_F72C52F4_B_3 = _UV_624D0B95_Out_0[2];\n\t\t\t
|
|
float _Split_F72C52F4_A_4 = _UV_624D0B95_Out_0[3];\n\t\t\t\n\t\t\t // Node:
|
|
Vector 2\n\t\t\t float2 _Vector2_4C5AB5F6_Out_0 = float2(_Split_F72C52F4_R_1,
|
|
_Split_F72C52F4_G_2);\n\t\t\t\n\t\t\t // Node: Remap\n\t\t\t float2 _Remap_BEBBCFA1_Out_3;\n\t\t\t
|
|
Unity_Remap_float2(_Vector2_4C5AB5F6_Out_0, float2 (0, 1), float2 (-1, 1),
|
|
_Remap_BEBBCFA1_Out_3);\n\t\t\t\n\t\t\t // Node: Dot Product\n\t\t\t
|
|
float _DotProduct_FFC79A22_Out_2;\n\t\t\t Unity_DotProduct_float2(_Remap_BEBBCFA1_Out_3,
|
|
_Remap_BEBBCFA1_Out_3, _DotProduct_FFC79A22_Out_2);\n\t\t\t\n\t\t\t // Node:
|
|
Square Root\n\t\t\t float _SquareRoot_F97AD020_Out_1;\n\t\t\t Unity_SquareRoot_float(_DotProduct_FFC79A22_Out_2,
|
|
_SquareRoot_F97AD020_Out_1);\n\t\t\t\n\t\t\t // Node: Property\n\t\t\t
|
|
float _Property_B28C2AE_Out_0 = _Threshold;\n\t\t\t\n\t\t\t // Node: Step\n\t\t\t
|
|
float _Step_BB24B596_Out_2;\n\t\t\t Unity_Step_float(_SquareRoot_F97AD020_Out_1,
|
|
_Property_B28C2AE_Out_0, _Step_BB24B596_Out_2);\n\t\t\t\n\t\t\t // Node:
|
|
Property\n\t\t\t float _Property_BFFB8B67_Out_0 = VFXAlpha;\n\t\t\t\n\t\t\t
|
|
// Node: Multiply\n\t\t\t float _Multiply_2006926D_Out_2;\n\t\t\t Unity_Multiply_float(_Step_BB24B596_Out_2,
|
|
_Property_BFFB8B67_Out_0, _Multiply_2006926D_Out_2);\n\t\t\t\n\t\t\t //
|
|
Visual Effect Master\n\t\t\t SG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
OUT;\n\t\t\t OUT.Alpha_4 = _Multiply_2006926D_Out_2;\n\t\t\t OUT.AlphaThreshold_7
|
|
= 0.001;\n\t\t\t return OUT;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#pragma fragment
|
|
frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
|
|
#ifdef VFX_SHADERGRAPH\n\t\t\t float3 VFXColor = i.VFXColor;float VFXAlpha
|
|
= i.VFXAlpha;float _Threshold = i._Threshold;\n\t\t\t \n\t\t\t
|
|
//Call Shader Graph\n\t\t\t SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
INSG = (SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9)0;\n\t\t\t INSG.uv0.xy
|
|
= i.uv;\n\t\t\t \n\t\t\t SG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
OUTSG = SG_Evaluate_c8cd82ff2698f8e4eb4b505774d8a9a9(INSG,VFXAlpha, _Threshold);\n\t\t\t
|
|
#if (USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t
|
|
i.VFX_VARYING_ALPHATHRESHOLD = OUTSG.AlphaThreshold_7;\n\t\t\t #endif\n\t\t\t
|
|
\n\n\t\t\t \n\t\t\t float alpha = OUTSG.Alpha_4;\n\t\t\t #else\n\t\t\t
|
|
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
|
|
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
|
|
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
|
|
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
|
|
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
|
|
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
|
|
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
|
|
Depth pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"DepthForwardOnly\"
|
|
}\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define
|
|
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma target 4.5\n\t\t\t\n\t\t\tstruct
|
|
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4
|
|
uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if
|
|
USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION || VFX_USE_ALPHA_CURRENT\n\t\t\t\t//
|
|
x: alpha threshold\n\t\t\t\t// y: frame blending factor\n\t\t\t\t// z: alpha\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float3 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t// x: motion vectors scale X\n\t\t\t\t//
|
|
y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float2 builtInInterpolants2
|
|
: TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4
|
|
cPosPrevious : TEXCOORD3;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t
|
|
\n\t\t\t #if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t float3 posWS : TEXCOORD5;\n\t\t\t
|
|
#endif\n\t\t\t VFX_OPTIONAL_INTERPOLATION float3 VFXColor : NORMAL0;\n\t\t\t
|
|
VFX_OPTIONAL_INTERPOLATION float VFXAlpha : NORMAL1;\n\t\t\t VFX_OPTIONAL_INTERPOLATION
|
|
float _Threshold : NORMAL2;\n\t\t\t \n\n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.z\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t#define VFX_VARYING_FRAMEBLEND builtInInterpolants.y\n\t\t\t#define
|
|
VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy\n\t\t\t#define VFX_VARYING_UV
|
|
uv\n\t\t\t\n\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t#define VFX_VARYING_POSWS
|
|
posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
|
|
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
|
|
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_3278B22F(inout float size, float Size) /*attribute:size Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid
|
|
Orient_4(inout float3 axisX, inout float3 axisY, inout float3 axisZ) /*mode:FaceCameraPlane
|
|
axes:ZY */\n\t\t\t{\n\t\t\t \n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t
|
|
axisX = viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE
|
|
// Need to remove potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t \n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
|
|
defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD
|
|
must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x30) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x30) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x30) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_3278B22F( /*inout */attributes.size, (float)0.00999999978);\n\t\t\t\t}\n\t\t\t\tOrient_4(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\tif (!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t float3 VFXColor__ = (float3)0;{\n\t\t\t \n\t\t\t
|
|
VFXColor__ = float3(12, 512, 1234);\n\t\t\t }\n\t\t\t o.VFXColor = VFXColor__;float
|
|
VFXAlpha__ = (float)0;{\n\t\t\t \n\t\t\t VFXAlpha__ = (float)1;\n\t\t\t
|
|
}\n\t\t\t o.VFXAlpha = VFXAlpha__;float _Threshold__ = (float)0;{\n\t\t\t
|
|
\n\t\t\t _Threshold__ = (float)0.899999976;\n\t\t\t }\n\t\t\t
|
|
o._Threshold = _Threshold__;\n\n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/EntityLighting.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinGIUtilities.hlsl\"\n\t\t\t\t\t#ifndef
|
|
SHADERPASS\n\t\t\t\t\t#error Shaderpass should be defined at this stage.\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl\"\n\t\t\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl\"\n\t\t\t//
|
|
Node: Remap\n\t\t\tvoid Unity_Remap_float2(float2 In, float2 InMinMax, float2
|
|
OutMinMax, out float2 Out)\n\t\t\t{\n\t\t\t Out = OutMinMax.x + (In - InMinMax.x)
|
|
* (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Dot Product\n\t\t\tvoid Unity_DotProduct_float2(float2 A, float2 B, out
|
|
float Out)\n\t\t\t{\n\t\t\t Out = dot(A, B);\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Square Root\n\t\t\tvoid Unity_SquareRoot_float(float In, out float Out)\n\t\t\t{\n\t\t\t
|
|
Out = sqrt(In);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Step\n\t\t\tvoid Unity_Step_float(float
|
|
Edge, float In, out float Out)\n\t\t\t{\n\t\t\t Out = step(Edge, In);\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Multiply\n\t\t\tvoid Unity_Multiply_float(float A, float B, out float
|
|
Out)\n\t\t\t{\n\t\t\t Out = A * B;\n\t\t\t}\n\t\t\t\n\t\t\tstruct SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9\n\t\t\t{\n\t\t\t
|
|
half4 uv0;\n\t\t\t};\n\t\t\t\n\t\t\tstruct SG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9\n\t\t\t{\n\t\t\t
|
|
float Alpha_4;\n\t\t\t float AlphaThreshold_7;\n\t\t\t};\n\t\t\t\n\t\t\tSG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
SG_Evaluate_c8cd82ff2698f8e4eb4b505774d8a9a9(\n\t\t\t SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
IN,\n\t\t\t /* Property: (VFX) Alpha */ float VFXAlpha,\n\t\t\t /* Property:
|
|
Threshold */ float _Threshold)\n\t\t\t{\n\t\t\t // Node: UV\n\t\t\t float4
|
|
_UV_624D0B95_Out_0 = IN.uv0;\n\t\t\t\n\t\t\t // Node: Split\n\t\t\t float
|
|
_Split_F72C52F4_R_1 = _UV_624D0B95_Out_0[0];\n\t\t\t float _Split_F72C52F4_G_2
|
|
= _UV_624D0B95_Out_0[1];\n\t\t\t float _Split_F72C52F4_B_3 = _UV_624D0B95_Out_0[2];\n\t\t\t
|
|
float _Split_F72C52F4_A_4 = _UV_624D0B95_Out_0[3];\n\t\t\t\n\t\t\t // Node:
|
|
Vector 2\n\t\t\t float2 _Vector2_4C5AB5F6_Out_0 = float2(_Split_F72C52F4_R_1,
|
|
_Split_F72C52F4_G_2);\n\t\t\t\n\t\t\t // Node: Remap\n\t\t\t float2 _Remap_BEBBCFA1_Out_3;\n\t\t\t
|
|
Unity_Remap_float2(_Vector2_4C5AB5F6_Out_0, float2 (0, 1), float2 (-1, 1),
|
|
_Remap_BEBBCFA1_Out_3);\n\t\t\t\n\t\t\t // Node: Dot Product\n\t\t\t
|
|
float _DotProduct_FFC79A22_Out_2;\n\t\t\t Unity_DotProduct_float2(_Remap_BEBBCFA1_Out_3,
|
|
_Remap_BEBBCFA1_Out_3, _DotProduct_FFC79A22_Out_2);\n\t\t\t\n\t\t\t // Node:
|
|
Square Root\n\t\t\t float _SquareRoot_F97AD020_Out_1;\n\t\t\t Unity_SquareRoot_float(_DotProduct_FFC79A22_Out_2,
|
|
_SquareRoot_F97AD020_Out_1);\n\t\t\t\n\t\t\t // Node: Property\n\t\t\t
|
|
float _Property_B28C2AE_Out_0 = _Threshold;\n\t\t\t\n\t\t\t // Node: Step\n\t\t\t
|
|
float _Step_BB24B596_Out_2;\n\t\t\t Unity_Step_float(_SquareRoot_F97AD020_Out_1,
|
|
_Property_B28C2AE_Out_0, _Step_BB24B596_Out_2);\n\t\t\t\n\t\t\t // Node:
|
|
Property\n\t\t\t float _Property_BFFB8B67_Out_0 = VFXAlpha;\n\t\t\t\n\t\t\t
|
|
// Node: Multiply\n\t\t\t float _Multiply_2006926D_Out_2;\n\t\t\t Unity_Multiply_float(_Step_BB24B596_Out_2,
|
|
_Property_BFFB8B67_Out_0, _Multiply_2006926D_Out_2);\n\t\t\t\n\t\t\t //
|
|
Visual Effect Master\n\t\t\t SG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
OUT;\n\t\t\t OUT.Alpha_4 = _Multiply_2006926D_Out_2;\n\t\t\t OUT.AlphaThreshold_7
|
|
= 0.001;\n\t\t\t return OUT;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#pragma fragment
|
|
frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
|
|
#ifdef VFX_SHADERGRAPH\n\t\t\t float3 VFXColor = i.VFXColor;float VFXAlpha
|
|
= i.VFXAlpha;float _Threshold = i._Threshold;\n\t\t\t \n\t\t\t
|
|
//Call Shader Graph\n\t\t\t SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
INSG = (SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9)0;\n\t\t\t INSG.uv0.xy
|
|
= i.uv;\n\t\t\t \n\t\t\t SG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
OUTSG = SG_Evaluate_c8cd82ff2698f8e4eb4b505774d8a9a9(INSG,VFXAlpha, _Threshold);\n\t\t\t
|
|
#if (USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t
|
|
i.VFX_VARYING_ALPHATHRESHOLD = OUTSG.AlphaThreshold_7;\n\t\t\t #endif\n\t\t\t
|
|
\n\n\t\t\t \n\t\t\t float alpha = OUTSG.Alpha_4;\n\t\t\t #else\n\t\t\t
|
|
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
|
|
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
|
|
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
|
|
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
|
|
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
|
|
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
|
|
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
|
|
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
|
|
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
|
|
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :
|
|
SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_COLOR_INTERPOLATOR\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 color : COLOR0;\n\t\t\t\t#endif\n\t\t\t\t#if USE_SOFT_PARTICLE || USE_ALPHA_TEST
|
|
|| USE_FLIPBOOK_INTERPOLATION || USE_EXPOSURE_WEIGHT || WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t//
|
|
x: inverse soft particles fade distance\n\t\t\t\t// y: alpha threshold\n\t\t\t\t//
|
|
z: frame blending factor\n\t\t\t\t// w: exposure weight\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t\tfloat3
|
|
posWS : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
cPosPrevious : TEXCOORD4;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD5;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
SHADERGRAPH_NEEDS_NORMAL_FORWARD\n\t\t\t\tfloat3 normal : TEXCOORD6;\n\t\t\t\t#endif\n\t\t\t\t#if
|
|
SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t\t\tfloat3 tangent : TEXCOORD7;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t
|
|
VFX_OPTIONAL_INTERPOLATION float3 VFXColor : NORMAL0;\n\t\t VFX_OPTIONAL_INTERPOLATION
|
|
float VFXAlpha : NORMAL1;\n\t\t VFX_OPTIONAL_INTERPOLATION float _Threshold
|
|
: NORMAL2;\n\t\t \n\n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\tstruct
|
|
ps_output\n\t\t\t{\n\t\t\t\tfloat4 color : SV_Target0;\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
outMotionVector : SV_Target1;\n\t\t#endif\n\t\t\t};\n\t\t\n\t\t#define VFX_VARYING_PS_INPUTS
|
|
ps_input\n\t\t#define VFX_VARYING_POSCS pos\n\t\t#define VFX_VARYING_COLOR
|
|
color.rgb\n\t\t#define VFX_VARYING_ALPHA color.a\n\t\t#define VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
builtInInterpolants.x\n\t\t#define VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y\n\t\t#define
|
|
VFX_VARYING_FRAMEBLEND builtInInterpolants.z\n\t\t#define VFX_VARYING_MOTIONVECTORSCALE
|
|
builtInInterpolants2.xy\n\t\t#define VFX_VARYING_UV uv\n\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t#define
|
|
VFX_VARYING_POSWS posWS\n\t\t#endif\n\t\t#if USE_EXPOSURE_WEIGHT\n\t\t#define
|
|
VFX_VARYING_EXPOSUREWEIGHT builtInInterpolants.w\n\t\t#endif\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t#endif\n\t\t\n\t\t#define SHADERPASS SHADERPASS_FORWARD_UNLIT\n\t\t\t\n\t\t#if
|
|
SHADERGRAPH_NEEDS_NORMAL_FORWARD\n\t\t#define VFX_VARYING_NORMAL normal\n\t\t#endif\n\t\t#if
|
|
SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t#define VFX_VARYING_TANGENT tangent\n\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
|
|
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_3278B22F(inout float size, float Size) /*attribute:size Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid
|
|
Orient_4(inout float3 axisX, inout float3 axisY, inout float3 axisZ) /*mode:FaceCameraPlane
|
|
axes:ZY */\n\t\t\t{\n\t\t\t \n\t\t\t float3x3 viewRot = GetVFXToViewRotMatrix();\n\t\t\t
|
|
axisX = viewRot[0].xyz;\n\t\t\t axisY = viewRot[1].xyz;\n\t\t\t #if VFX_LOCAL_SPACE
|
|
// Need to remove potential scale in local transform\n\t\t\t axisX = normalize(axisX);\n\t\t\t
|
|
axisY = normalize(axisY);\n\t\t\t axisZ = cross(axisX,axisY);\n\t\t\t
|
|
#else\n\t\t\t axisZ = -viewRot[2].xyz;\n\t\t\t #endif\n\t\t\t \n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
|
|
defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD
|
|
must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x30) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x30) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.alive = (bool)true;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tattributes.alive
|
|
= (bool)true;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if !HAS_STRIPS\n\t\t\t\t\t\tif
|
|
(!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x30) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.scaleX
|
|
= (float)1;\n\t\t\t\t\t\tattributes.scaleY = (float)1;\n\t\t\t\t\t\tattributes.scaleZ
|
|
= (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_3278B22F( /*inout */attributes.size, (float)0.00999999978);\n\t\t\t\t}\n\t\t\t\tOrient_4(
|
|
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\tif (!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t float3 VFXColor__ = (float3)0;{\n\t\t\t \n\t\t\t
|
|
VFXColor__ = float3(12, 512, 1234);\n\t\t\t }\n\t\t\t o.VFXColor = VFXColor__;float
|
|
VFXAlpha__ = (float)0;{\n\t\t\t \n\t\t\t VFXAlpha__ = (float)1;\n\t\t\t
|
|
}\n\t\t\t o.VFXAlpha = VFXAlpha__;float _Threshold__ = (float)0;{\n\t\t\t
|
|
\n\t\t\t _Threshold__ = (float)0.899999976;\n\t\t\t }\n\t\t\t
|
|
o._Threshold = _Threshold__;\n\n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t#if
|
|
VFX_SHADERGRAPH\n\t\t\t\n\t\t\t\t\t#include \"Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/EntityLighting.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinGIUtilities.hlsl\"\n\t\t\t\t\t#ifndef
|
|
SHADERPASS\n\t\t\t\t\t#error Shaderpass should be defined at this stage.\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl\"\n\t\t\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl\"\n\t\t\t//
|
|
Node: Remap\n\t\t\tvoid Unity_Remap_float2(float2 In, float2 InMinMax, float2
|
|
OutMinMax, out float2 Out)\n\t\t\t{\n\t\t\t Out = OutMinMax.x + (In - InMinMax.x)
|
|
* (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Dot Product\n\t\t\tvoid Unity_DotProduct_float2(float2 A, float2 B, out
|
|
float Out)\n\t\t\t{\n\t\t\t Out = dot(A, B);\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Square Root\n\t\t\tvoid Unity_SquareRoot_float(float In, out float Out)\n\t\t\t{\n\t\t\t
|
|
Out = sqrt(In);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Step\n\t\t\tvoid Unity_Step_float(float
|
|
Edge, float In, out float Out)\n\t\t\t{\n\t\t\t Out = step(Edge, In);\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Multiply\n\t\t\tvoid Unity_Multiply_float(float A, float B, out float
|
|
Out)\n\t\t\t{\n\t\t\t Out = A * B;\n\t\t\t}\n\t\t\t\n\t\t\tstruct SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9\n\t\t\t{\n\t\t\t
|
|
half4 uv0;\n\t\t\t};\n\t\t\t\n\t\t\tstruct SG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9\n\t\t\t{\n\t\t\t
|
|
float3 Color_6;\n\t\t\t float Alpha_4;\n\t\t\t float AlphaThreshold_7;\n\t\t\t};\n\t\t\t\n\t\t\tSG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
SG_Evaluate_c8cd82ff2698f8e4eb4b505774d8a9a9(\n\t\t\t SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
IN,\n\t\t\t /* Property: (VFX) Color */ float3 VFXColor,\n\t\t\t /* Property:
|
|
(VFX) Alpha */ float VFXAlpha,\n\t\t\t /* Property: Threshold */ float _Threshold)\n\t\t\t{\n\t\t\t
|
|
// Node: Property\n\t\t\t float3 _Property_65163FC_Out_0 = VFXColor;\n\t\t\t\n\t\t\t
|
|
// Node: UV\n\t\t\t float4 _UV_624D0B95_Out_0 = IN.uv0;\n\t\t\t\n\t\t\t
|
|
// Node: Split\n\t\t\t float _Split_F72C52F4_R_1 = _UV_624D0B95_Out_0[0];\n\t\t\t
|
|
float _Split_F72C52F4_G_2 = _UV_624D0B95_Out_0[1];\n\t\t\t float _Split_F72C52F4_B_3
|
|
= _UV_624D0B95_Out_0[2];\n\t\t\t float _Split_F72C52F4_A_4 = _UV_624D0B95_Out_0[3];\n\t\t\t\n\t\t\t
|
|
// Node: Vector 2\n\t\t\t float2 _Vector2_4C5AB5F6_Out_0 = float2(_Split_F72C52F4_R_1,
|
|
_Split_F72C52F4_G_2);\n\t\t\t\n\t\t\t // Node: Remap\n\t\t\t float2 _Remap_BEBBCFA1_Out_3;\n\t\t\t
|
|
Unity_Remap_float2(_Vector2_4C5AB5F6_Out_0, float2 (0, 1), float2 (-1, 1),
|
|
_Remap_BEBBCFA1_Out_3);\n\t\t\t\n\t\t\t // Node: Dot Product\n\t\t\t
|
|
float _DotProduct_FFC79A22_Out_2;\n\t\t\t Unity_DotProduct_float2(_Remap_BEBBCFA1_Out_3,
|
|
_Remap_BEBBCFA1_Out_3, _DotProduct_FFC79A22_Out_2);\n\t\t\t\n\t\t\t // Node:
|
|
Square Root\n\t\t\t float _SquareRoot_F97AD020_Out_1;\n\t\t\t Unity_SquareRoot_float(_DotProduct_FFC79A22_Out_2,
|
|
_SquareRoot_F97AD020_Out_1);\n\t\t\t\n\t\t\t // Node: Property\n\t\t\t
|
|
float _Property_B28C2AE_Out_0 = _Threshold;\n\t\t\t\n\t\t\t // Node: Step\n\t\t\t
|
|
float _Step_BB24B596_Out_2;\n\t\t\t Unity_Step_float(_SquareRoot_F97AD020_Out_1,
|
|
_Property_B28C2AE_Out_0, _Step_BB24B596_Out_2);\n\t\t\t\n\t\t\t // Node:
|
|
Property\n\t\t\t float _Property_BFFB8B67_Out_0 = VFXAlpha;\n\t\t\t\n\t\t\t
|
|
// Node: Multiply\n\t\t\t float _Multiply_2006926D_Out_2;\n\t\t\t Unity_Multiply_float(_Step_BB24B596_Out_2,
|
|
_Property_BFFB8B67_Out_0, _Multiply_2006926D_Out_2);\n\t\t\t\n\t\t\t //
|
|
Visual Effect Master\n\t\t\t SG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
OUT;\n\t\t\t OUT.Color_6 = _Property_65163FC_Out_0;\n\t\t\t OUT.Alpha_4
|
|
= _Multiply_2006926D_Out_2;\n\t\t\t OUT.AlphaThreshold_7 = 0.001;\n\t\t\t
|
|
return OUT;\n\t\t\t}\n\t\t\t\n\n\t\t#endif\n\t\t\t\t\n\t\t\t#pragma fragment
|
|
frag\n\t\t\tps_output frag(ps_input i)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tps_output
|
|
o = (ps_output)0;\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
|
|
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
|
|
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
|
|
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
|
|
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
|
|
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
|
|
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
|
|
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
|
|
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
|
|
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
|
|
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
|
|
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
|
|
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
|
|
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t#if
|
|
VFX_SHADERGRAPH\n\t\t float3 VFXColor = i.VFXColor;float VFXAlpha =
|
|
i.VFXAlpha;float _Threshold = i._Threshold;\n\t\t \n\t\t //Call
|
|
Shader Graph\n\t\t SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9 INSG =
|
|
(SG_Input_c8cd82ff2698f8e4eb4b505774d8a9a9)0;\n\t\t INSG.uv0.xy = i.uv;\n\t\t
|
|
\n\t\t SG_Output_c8cd82ff2698f8e4eb4b505774d8a9a9 OUTSG = SG_Evaluate_c8cd82ff2698f8e4eb4b505774d8a9a9(INSG,VFXColor,
|
|
VFXAlpha, _Threshold);\n\t\t #if (USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD)
|
|
&& defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t i.VFX_VARYING_ALPHATHRESHOLD
|
|
= OUTSG.AlphaThreshold_7;\n\t\t #endif\n\t\t \n\n\t\t
|
|
\n\t\t #if HAS_SHADERGRAPH_PARAM_COLOR\n\t\t o.color.rgb
|
|
= OUTSG.Color_6.rgb;\n\t\t #endif\n\t\t \n\t\t #if HAS_SHADERGRAPH_PARAM_ALPHA
|
|
\n\t\t o.color.a = OUTSG.Alpha_4;\n\t\t #endif\n\t\t#else\n\t\t\t\n\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR VFXGetTextureColor(VFX_SAMPLER(mainTexture),i)\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat4
|
|
color = VFXGetFragmentColor(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifndef VFX_TEXTURE_COLOR\n\t\t\t\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR float4(1.0,1.0,1.0,1.0)\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_DEFAULT\n\t\t\t\t\t\t\to.color = color * VFX_TEXTURE_COLOR;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_GRADIENTMAPPED\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\to.color = SampleGradient(gradient,
|
|
VFX_TEXTURE_COLOR.a * color.a) * float4(color.rgb,1.0);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\to.color
|
|
= VFXApplyPreExposure(o.color, i);\n\t\t#endif\n\t\t\n\t\t\t\to.color = VFXApplyFog(o.color,i);\n\t\t\t\tVFXClipFragmentColor(o.color.a,i);\n\t\t\t\to.color.a
|
|
= saturate(o.color.a);\n\t\t\t\to.color = VFXTransformFinalColor(o.color);\n\t\t\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t\n\t\t\t\t\t\tfloat2 velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w)
|
|
- (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\tVFXEncodeMotionVector(velocity * 0.5f,
|
|
encodedMotionVector);\n\t\t\t\t\t\t\n\t\t\t\to.outMotionVector = encodedMotionVector;\n\t\t
|
|
o.outMotionVector.a = o.color.a < i.VFX_VARYING_ALPHATHRESHOLD ? 0.0f : 1.0f;
|
|
//Independant clipping for motion vector pass\n\t\t#endif\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t}\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[System 2]Initialize Particle Strip'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_LIFETIME_CURRENT
|
|
1\n#define VFX_USE_AGE_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT 1\n#define
|
|
VFX_USE_POSITION_SOURCE 1\n#define STRIP_COUNT 16u\n#define PARTICLE_PER_STRIP_COUNT
|
|
512u\n#define VFX_USE_SPAWNER_FROM_GPU 1\n#define HAS_STRIPS 1\n#define VFX_LOCAL_SPACE
|
|
1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\n\nstruct
|
|
Attributes\n{\n float3 position;\n float lifetime;\n float age;\n
|
|
bool alive;\n};\n\nstruct SourceAttributes\n{\n float3 position;\n};\n\n\n\r\n\r\n#define
|
|
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
|
|
attributeBuffer;\r\nByteAddressBuffer sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n uint nbSpawned;\t\t\t\t\t// Numbers of particle
|
|
spawned\r\n uint spawnIndex;\t\t\t\t// Index of the first particle spawned\r\n
|
|
uint dispatchWidth;\r\n#else\r\n uint offsetInAdditionalOutput;\r\n\tuint
|
|
nbMax;\r\n#endif\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
|
|
deadListIn;\r\nByteAddressBuffer deadListCount; // This is bad to use a SRV
|
|
to fetch deadList count but Unity API currently prevent from copying to CB\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\nStructuredBuffer<uint> eventList;\r\nByteAddressBuffer
|
|
inputAdditional;\r\n#endif\r\n\r\n#if HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
SetAttribute_CAC02F9E(inout float3 position, float3 Value) /*attribute:position
|
|
Composition:Overwrite Source:Source Random:Off channels:XYZ */\n{\n position
|
|
= Value;\n}\nvoid SetAttribute_F0142CB9(inout float lifetime, float Lifetime)
|
|
/*attribute:lifetime Composition:Overwrite Source:Slot Random:Off channels:XYZ
|
|
*/\n{\n lifetime = Lifetime;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout
|
|
uint particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
|
|
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
|
|
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
|
|
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
|
|
= stripIndex * PARTICLE_PER_STRIP_COUNT + ((STRIP_DATA(STRIP_FIRST_INDEX, stripIndex)
|
|
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
|
|
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
|
|
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
|
|
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
|
|
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
|
|
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n
|
|
uint currentSpawnIndex = spawnIndex;\r\n#endif\r\n\r\n#if USE_DEAD_LIST\r\n
|
|
maxThreadId = min(maxThreadId, deadListCount.Load(0x0));\r\n#elif VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
maxThreadId = min(maxThreadId, nbMax); //otherwise, nbSpawned already clamped
|
|
on CPU\r\n#endif\r\n\r\n if (id < maxThreadId)\r\n {\r\n#if VFX_USE_SPAWNER_FROM_GPU\r\n
|
|
int sourceIndex = eventList[id];\r\n#endif\r\n\t\tuint particleIndex = id +
|
|
currentSpawnIndex;\r\n\t\t\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n \r\n#endif\r\n\r\n\t\tAttributes
|
|
attributes = (Attributes)0;\r\n\t\tSourceAttributes sourceAttributes = (SourceAttributes)0;\r\n\t\t\r\n
|
|
attributes.position = float3(0, 0, 0);\n attributes.lifetime = (float)1;\n
|
|
attributes.age = (float)0;\n attributes.alive = (bool)true;\n
|
|
sourceAttributes.position = asfloat(sourceAttributeBuffer.Load3((sourceIndex
|
|
* 0x4 + 0x30) << 2));\n \n\r\n#if VFX_USE_PARTICLEID_CURRENT\r\n
|
|
attributes.particleId = particleIndex;\r\n#endif\r\n#if VFX_USE_SEED_CURRENT\r\n
|
|
attributes.seed = WangHash(particleIndex ^ systemSeed);\r\n#endif\r\n#if VFX_USE_SPAWNINDEX_CURRENT\r\n
|
|
attributes.spawnIndex = id;\r\n#endif\r\n#if HAS_STRIPS\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n\t\t\r\n#else\r\n
|
|
uint stripIndex = sourceIndex;\r\n#endif\r\n\t\tstripIndex = min(stripIndex,
|
|
STRIP_COUNT);\r\n\r\n if (!GetParticleIndex(particleIndex, stripIndex))\r\n
|
|
return;\r\n\r\n const StripData stripData = GetStripDataFromStripIndex(stripIndex,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n\t\tInitStripAttributes(particleIndex, attributes,
|
|
stripData);\r\n\t\t// TODO Change seed to be sure we're deterministic on random
|
|
with strip\r\n#endif\r\n \r\n {\n float3 tmp_q = sourceAttributes.position;\n
|
|
SetAttribute_CAC02F9E( /*inout */attributes.position, tmp_q);\n }\n
|
|
{\n SetAttribute_F0142CB9( /*inout */attributes.lifetime, (float)16);\n
|
|
}\n \n\r\n\t\t\r\n#if VFX_USE_ALIVE_CURRENT\r\n if (attributes.alive)\r\n#endif
|
|
\r\n {\r\n#if USE_DEAD_LIST\r\n\t uint deadIndex = deadListIn.DecrementCounter();\r\n
|
|
uint index = deadListIn[deadIndex];\r\n#else\r\n uint index = particleIndex;\r\n#endif\r\n
|
|
attributeBuffer.Store3((index * 0x4 + 0x0) << 2,asuint(attributes.position));\n
|
|
attributeBuffer.Store((index * 0x1 + 0x8000) << 2,asuint(attributes.lifetime));\n
|
|
attributeBuffer.Store((index * 0x1 + 0xA000) << 2,asuint(attributes.age));\n
|
|
attributeBuffer.Store((index * 0x1 + 0xC000) << 2,uint(attributes.alive));\n
|
|
\n\r\n }\r\n }\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[System 2]Update Particle Strip'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_LIFETIME_CURRENT 1\n#define VFX_USE_AGE_CURRENT
|
|
1\n#define VFX_USE_ALIVE_CURRENT 1\n#define STRIP_COUNT 16u\n#define PARTICLE_PER_STRIP_COUNT
|
|
512u\n#define HAS_STRIPS 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
|
|
float deltaTime_a;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
|
|
float lifetime;\n float age;\n bool alive;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
|
|
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
|
|
attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint> deadListOut;\r\n#endif\r\n\r\n#if
|
|
VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint> indirectBuffer;\r\n#endif\r\n\r\n#if
|
|
HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#if VFX_USE_STRIPALIVE_CURRENT\r\nBuffer<uint>
|
|
attachedStripDataBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n
|
|
uint nbMax;\r\n\tuint dispatchWidth;\r\n\tuint systemSeed;\r\nCBUFFER_END\r\n\r\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
|
|
Age(inout float age, float deltaTime)\n{\n age += deltaTime;\n}\nvoid Reap(float
|
|
age, float lifetime, inout bool alive)\n{\n if(age > lifetime) { alive =
|
|
false; }\n}\n\n\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
|
|
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n\tuint
|
|
id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP + groupId.y * dispatchWidth
|
|
* NB_THREADS_PER_GROUP;\r\n\tuint index = id;\r\n\tif (id < nbMax)\r\n\t{\r\n
|
|
Attributes attributes = (Attributes)0;\r\n\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\r\n\r\n#if VFX_USE_ALIVE_CURRENT\r\n\t\tattributes.alive
|
|
= (attributeBuffer.Load((index * 0x1 + 0xC000) << 2));\n\t\t\n\r\n\t\tif (attributes.alive)\r\n\t\t{\r\n\t\t\tattributes.lifetime
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0x8000) << 2));\n\t\t\tattributes.age
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0xA000) << 2));\n\t\t\t\n\r\n\r\n//
|
|
Initialize built-in needed attributes\r\n#if VFX_USE_OLDPOSITION_CURRENT\r\n\t\t\tattributes.oldPosition
|
|
= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
|
|
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
|
|
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\tAge(
|
|
/*inout */attributes.age, deltaTime_a);\n\t\t\tReap(attributes.age, attributes.lifetime,
|
|
/*inout */attributes.alive);\n\t\t\t\n\r\n\r\n\t\t\tif (attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store((index
|
|
* 0x1 + 0xA000) << 2,asuint(attributes.age));\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\t\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n\r\n#if HAS_STRIPS\t\t\t\r\n\t\t\t\tuint relativeIndexInStrip
|
|
= GetRelativeIndex(index, stripData);\r\n\t\t\t\tInterlockedMin(STRIP_DATA(STRIP_MIN_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n\t\t\t\tInterlockedMax(STRIP_DATA(STRIP_MAX_ALIVE,
|
|
stripData.stripIndex), relativeIndexInStrip);\r\n#endif\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store((index
|
|
* 0x1 + 0xC000) << 2,uint(attributes.alive));\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
|
|
&& !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
|
|
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,
|
|
STRIP_MIN_ALIVE, index) == ~1) // Attached strip is no longer alive, recycle
|
|
the particle \r\n {\r\n uint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
|
|
= index;\r\n attributes.stripAlive = false;\r\n
|
|
\r\n } \r\n }\r\n#endif\r\n#else\r\n\t\tattributes.lifetime
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0x8000) << 2));\n\t\tattributes.age
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0xA000) << 2));\n\t\tattributes.alive
|
|
= (attributeBuffer.Load((index * 0x1 + 0xC000) << 2));\n\t\t\n\r\n\t\t\r\n#if
|
|
VFX_USE_OLDPOSITION_CURRENT\r\n\t\tattributes.oldPosition = attributes.position;\r\n#endif\r\n#if
|
|
HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
|
|
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
|
|
stripData);\r\n#endif\r\n\t\t\r\n\t\tAge( /*inout */attributes.age, deltaTime_a);\n\t\tReap(attributes.age,
|
|
attributes.lifetime, /*inout */attributes.alive);\n\t\t\n\r\n\t\tattributeBuffer.Store((index
|
|
* 0x1 + 0xA000) << 2,asuint(attributes.age));\n\t\tattributeBuffer.Store((index
|
|
* 0x1 + 0xC000) << 2,uint(attributes.alive));\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
|
|
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
|
|
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
|
|
- compute: 0
|
|
name: '[System 2]Output ParticleStrip Quad'
|
|
source: "Shader \"Hidden/VFX/MainMenu/System 2/Output ParticleStrip Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
|
|
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
|
|
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
|
|
SrcAlpha OneMinusSrcAlpha \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
|
|
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
|
|
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION
|
|
(2)\n\t\t#define VFX_USE_POSITION_CURRENT 1\n\t\t#define VFX_USE_LIFETIME_CURRENT
|
|
1\n\t\t#define VFX_USE_COLOR_CURRENT 1\n\t\t#define VFX_USE_ALPHA_CURRENT 1\n\t\t#define
|
|
VFX_USE_AXISX_CURRENT 1\n\t\t#define VFX_USE_AXISY_CURRENT 1\n\t\t#define VFX_USE_AXISZ_CURRENT
|
|
1\n\t\t#define VFX_USE_ANGLEX_CURRENT 1\n\t\t#define VFX_USE_ANGLEY_CURRENT
|
|
1\n\t\t#define VFX_USE_ANGLEZ_CURRENT 1\n\t\t#define VFX_USE_PIVOTX_CURRENT
|
|
1\n\t\t#define VFX_USE_PIVOTY_CURRENT 1\n\t\t#define VFX_USE_PIVOTZ_CURRENT
|
|
1\n\t\t#define VFX_USE_SIZE_CURRENT 1\n\t\t#define VFX_USE_AGE_CURRENT 1\n\t\t#define
|
|
STRIP_COUNT 16u\n\t\t#define PARTICLE_PER_STRIP_COUNT 512u\n\t\t#define VFX_COLORMAPPING_DEFAULT
|
|
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ALPHA 1\n\t\t#define
|
|
VFX_BYPASS_EXPOSURE 1\n\t\t#define HAS_STRIPS 1\n\t\t#define VFX_SHADERGRAPH
|
|
1\n\t\t#define HAS_SHADERGRAPH_PARAM_COLOR 1\n\t\t#define HAS_SHADERGRAPH_PARAM_ALPHA
|
|
1\n\t\t#define VFX_STRIPS_UV_STRECHED 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
|
|
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
|
|
float4 uniform_b;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t
|
|
float3 position;\n\t\t float lifetime;\n\t\t float3 color;\n\t\t float
|
|
alpha;\n\t\t float3 axisX;\n\t\t float3 axisY;\n\t\t float3 axisZ;\n\t\t
|
|
float angleX;\n\t\t float angleY;\n\t\t float angleZ;\n\t\t float
|
|
pivotX;\n\t\t float pivotY;\n\t\t float pivotZ;\n\t\t float size;\n\t\t
|
|
float age;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\t\n\n\t\t\n\t\t#define
|
|
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
|
|
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
|
|
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer
|
|
attributeBuffer;\t\n\t\t\n\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\tStructuredBuffer<uint>
|
|
indirectBuffer;\t\n\t\t#endif\t\n\t\t\n\t\t#if USE_DEAD_LIST_COUNT\n\t\tByteAddressBuffer
|
|
deadListCount;\n\t\t#endif\n\t\t\n\t\t#if HAS_STRIPS\n\t\tBuffer<uint> stripDataBuffer;\n\t\t#endif\n\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD || USE_MOTION_VECTORS_PASS\n\t\tByteAddressBuffer
|
|
elementToVFXBufferPrevious;\n\t\t#endif\n\t\t\n\t\tCBUFFER_START(outputParams)\n\t\t\tfloat
|
|
nbMax;\n\t\t\tfloat systemSeed;\n\t\tCBUFFER_END\n\t\t\n\t\t// Helper macros
|
|
to always use a valid instanceID\n\t\t#if defined(UNITY_STEREO_INSTANCING_ENABLED)\n\t\t\t#define
|
|
VFX_DECLARE_INSTANCE_ID UNITY_VERTEX_INPUT_INSTANCE_ID\n\t\t\t#define VFX_GET_INSTANCE_ID(i)
|
|
unity_InstanceID\n\t\t#else\n\t\t\t#define VFX_DECLARE_INSTANCE_ID uint
|
|
instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
|
|
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
|
|
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
|
|
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
|
|
USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION
|
|
|| VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha threshold\n\t\t\t\t// y: frame
|
|
blending factor\n\t\t\t\t// z: alpha\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3
|
|
builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
|
|
TEXCOORD3;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t
|
|
\n\t\t\t #if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t float3 posWS : TEXCOORD5;\n\t\t\t
|
|
#endif\n\t\t\t VFX_OPTIONAL_INTERPOLATION float3 VFX_Color : NORMAL0;\n\t\t\t
|
|
VFX_OPTIONAL_INTERPOLATION float VFX_Alpha : NORMAL1;\n\t\t\t \n\n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
|
|
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
|
|
VFX_VARYING_ALPHA builtInInterpolants.z\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
|
|
builtInInterpolants.x\n\t\t\t#define VFX_VARYING_FRAMEBLEND builtInInterpolants.y\n\t\t\t#define
|
|
VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy\n\t\t\t#define VFX_VARYING_UV
|
|
uv\n\t\t\t\n\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t#define VFX_VARYING_POSWS
|
|
posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
|
|
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
|
|
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
|
|
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
|
|
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_3278B22F(inout float size, float Size) /*attribute:size Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
|
|
defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD
|
|
must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.lifetime = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0x8000) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.axisX = float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY
|
|
= float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ = float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleY = (float)0;\n\t\t\t\t\t\tattributes.angleZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.size
|
|
= (float)0.100000001;\n\t\t\t\t\t\tattributes.age = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0xA000) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\t\t\tif (!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.lifetime
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0x8000) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.age
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0xA000) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_3278B22F( /*inout */attributes.size, (float)0.00499999989);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\tif (!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\tfloat
|
|
alphaThreshold = (float)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
|
|
alphaThreshold = (float)0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t float3 VFX_Color__ = (float3)0;{\n\t\t\t \n\t\t\t
|
|
VFX_Color__ = float3(0, 14.9109936, 31.9999962);\n\t\t\t }\n\t\t\t o.VFX_Color
|
|
= VFX_Color__;float VFX_Alpha__ = (float)0;{\n\t\t\t float tmp_r = attributes.age
|
|
/ attributes.lifetime;\n\t\t\t float tmp_s = SampleCurve(uniform_b,tmp_r);\n\t\t\t
|
|
\n\t\t\t VFX_Alpha__ = tmp_s;\n\t\t\t }\n\t\t\t o.VFX_Alpha =
|
|
VFX_Alpha__;\n\n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/EntityLighting.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinGIUtilities.hlsl\"\n\t\t\t\t\t#ifndef
|
|
SHADERPASS\n\t\t\t\t\t#error Shaderpass should be defined at this stage.\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl\"\n\t\t\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl\"\n\t\t\t//
|
|
Node: Remap\n\t\t\tvoid Unity_Remap_float(float In, float2 InMinMax, float2
|
|
OutMinMax, out float Out)\n\t\t\t{\n\t\t\t Out = OutMinMax.x + (In - InMinMax.x)
|
|
* (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Absolute\n\t\t\tvoid Unity_Absolute_float(float In, out float Out)\n\t\t\t{\n\t\t\t
|
|
Out = abs(In);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: One Minus\n\t\t\tvoid Unity_OneMinus_float(float
|
|
In, out float Out)\n\t\t\t{\n\t\t\t Out = 1 - In;\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Multiply\n\t\t\tvoid Unity_Multiply_float(float A, float B, out float
|
|
Out)\n\t\t\t{\n\t\t\t Out = A * B;\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Saturate\n\t\t\tvoid
|
|
Unity_Saturate_float(float In, out float Out)\n\t\t\t{\n\t\t\t Out = saturate(In);\n\t\t\t}\n\t\t\t\n\t\t\tstruct
|
|
SG_Input_3e9dc7cd34e49604bab11978b4a14481\n\t\t\t{\n\t\t\t half4 uv0;\n\t\t\t};\n\t\t\t\n\t\t\tstruct
|
|
SG_Output_3e9dc7cd34e49604bab11978b4a14481\n\t\t\t{\n\t\t\t float Alpha_4;\n\t\t\t};\n\t\t\t\n\t\t\tSG_Output_3e9dc7cd34e49604bab11978b4a14481
|
|
SG_Evaluate_3e9dc7cd34e49604bab11978b4a14481(\n\t\t\t SG_Input_3e9dc7cd34e49604bab11978b4a14481
|
|
IN,\n\t\t\t /* Property: VFX-Alpha */ float VFX_Alpha)\n\t\t\t{\n\t\t\t
|
|
// Node: UV\n\t\t\t float4 _UV_952F253C_Out_0 = IN.uv0;\n\t\t\t\n\t\t\t
|
|
// Node: Split\n\t\t\t float _Split_FB89A89B_R_1 = _UV_952F253C_Out_0[0];\n\t\t\t
|
|
float _Split_FB89A89B_G_2 = _UV_952F253C_Out_0[1];\n\t\t\t float _Split_FB89A89B_B_3
|
|
= _UV_952F253C_Out_0[2];\n\t\t\t float _Split_FB89A89B_A_4 = _UV_952F253C_Out_0[3];\n\t\t\t\n\t\t\t
|
|
// Node: Remap\n\t\t\t float _Remap_5A74B49_Out_3;\n\t\t\t Unity_Remap_float(_Split_FB89A89B_G_2,
|
|
float2 (0, 1), float2 (-1, 1), _Remap_5A74B49_Out_3);\n\t\t\t\n\t\t\t //
|
|
Node: Absolute\n\t\t\t float _Absolute_25CB7F3B_Out_1;\n\t\t\t Unity_Absolute_float(_Remap_5A74B49_Out_3,
|
|
_Absolute_25CB7F3B_Out_1);\n\t\t\t\n\t\t\t // Node: One Minus\n\t\t\t
|
|
float _OneMinus_DEE49F4D_Out_1;\n\t\t\t Unity_OneMinus_float(_Absolute_25CB7F3B_Out_1,
|
|
_OneMinus_DEE49F4D_Out_1);\n\t\t\t\n\t\t\t // Node: Property\n\t\t\t
|
|
float _Property_E8CF1CE5_Out_0 = VFX_Alpha;\n\t\t\t\n\t\t\t // Node: Multiply\n\t\t\t
|
|
float _Multiply_47D6C6C2_Out_2;\n\t\t\t Unity_Multiply_float(_OneMinus_DEE49F4D_Out_1,
|
|
_Property_E8CF1CE5_Out_0, _Multiply_47D6C6C2_Out_2);\n\t\t\t\n\t\t\t //
|
|
Node: Saturate\n\t\t\t float _Saturate_8095E39A_Out_1;\n\t\t\t Unity_Saturate_float(_Multiply_47D6C6C2_Out_2,
|
|
_Saturate_8095E39A_Out_1);\n\t\t\t\n\t\t\t // Visual Effect Master\n\t\t\t
|
|
SG_Output_3e9dc7cd34e49604bab11978b4a14481 OUT;\n\t\t\t OUT.Alpha_4 = _Saturate_8095E39A_Out_1;\n\t\t\t
|
|
return OUT;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#pragma fragment frag\n\t\t\tfloat4
|
|
frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
|
|
#ifdef VFX_SHADERGRAPH\n\t\t\t float3 VFX_Color = i.VFX_Color;float
|
|
VFX_Alpha = i.VFX_Alpha;\n\t\t\t \n\t\t\t //Call Shader Graph\n\t\t\t
|
|
SG_Input_3e9dc7cd34e49604bab11978b4a14481 INSG = (SG_Input_3e9dc7cd34e49604bab11978b4a14481)0;\n\t\t\t
|
|
INSG.uv0.xy = i.uv;\n\t\t\t \n\t\t\t SG_Output_3e9dc7cd34e49604bab11978b4a14481
|
|
OUTSG = SG_Evaluate_3e9dc7cd34e49604bab11978b4a14481(INSG,VFX_Alpha);\n\t\t\t
|
|
\n\n\t\t\t \n\t\t\t float alpha = OUTSG.Alpha_4;\n\t\t\t #else\n\t\t\t
|
|
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
|
|
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
|
|
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
|
|
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
|
|
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
|
|
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
|
|
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
|
|
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
|
|
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
|
|
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
|
|
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :
|
|
SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
|
|
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_COLOR_INTERPOLATOR\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 color : COLOR0;\n\t\t\t\t#endif\n\t\t\t\t#if USE_SOFT_PARTICLE || USE_ALPHA_TEST
|
|
|| USE_FLIPBOOK_INTERPOLATION || USE_EXPOSURE_WEIGHT || WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t//
|
|
x: inverse soft particles fade distance\n\t\t\t\t// y: alpha threshold\n\t\t\t\t//
|
|
z: frame blending factor\n\t\t\t\t// w: exposure weight\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float4 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
|
|
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
|
|
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t\tfloat3
|
|
posWS : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
cPosPrevious : TEXCOORD4;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD5;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
|
|
SHADERGRAPH_NEEDS_NORMAL_FORWARD\n\t\t\t\tfloat3 normal : TEXCOORD6;\n\t\t\t\t#endif\n\t\t\t\t#if
|
|
SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t\t\tfloat3 tangent : TEXCOORD7;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t
|
|
VFX_OPTIONAL_INTERPOLATION float3 VFX_Color : NORMAL0;\n\t\t VFX_OPTIONAL_INTERPOLATION
|
|
float VFX_Alpha : NORMAL1;\n\t\t \n\n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\tstruct
|
|
ps_output\n\t\t\t{\n\t\t\t\tfloat4 color : SV_Target0;\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\tfloat4
|
|
outMotionVector : SV_Target1;\n\t\t#endif\n\t\t\t};\n\t\t\n\t\t#define VFX_VARYING_PS_INPUTS
|
|
ps_input\n\t\t#define VFX_VARYING_POSCS pos\n\t\t#define VFX_VARYING_COLOR
|
|
color.rgb\n\t\t#define VFX_VARYING_ALPHA color.a\n\t\t#define VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
builtInInterpolants.x\n\t\t#define VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y\n\t\t#define
|
|
VFX_VARYING_FRAMEBLEND builtInInterpolants.z\n\t\t#define VFX_VARYING_MOTIONVECTORSCALE
|
|
builtInInterpolants2.xy\n\t\t#define VFX_VARYING_UV uv\n\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t#define
|
|
VFX_VARYING_POSWS posWS\n\t\t#endif\n\t\t#if USE_EXPOSURE_WEIGHT\n\t\t#define
|
|
VFX_VARYING_EXPOSUREWEIGHT builtInInterpolants.w\n\t\t#endif\n\t\t#if WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t#define
|
|
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
cPosPrevious\n\t\t#endif\n\t\t\n\t\t#define SHADERPASS SHADERPASS_FORWARD_UNLIT\n\t\t\t\n\t\t#if
|
|
SHADERGRAPH_NEEDS_NORMAL_FORWARD\n\t\t#define VFX_VARYING_NORMAL normal\n\t\t#endif\n\t\t#if
|
|
SHADERGRAPH_NEEDS_TANGENT_FORWARD\n\t\t#define VFX_VARYING_TANGENT tangent\n\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
|
|
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
|
|
SetAttribute_3278B22F(inout float size, float Size) /*attribute:size Composition:Overwrite
|
|
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
|
|
defined(HAS_STRIPS) && !defined(VFX_PRIMITIVE_QUAD)\n\t\t\t#error VFX_PRIMITIVE_QUAD
|
|
must be defined when HAS_STRIPS is.\n\t\t\t#endif\n\t\t\t\n\t\t\tstruct vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t#define PARTICLE_IN_EDGE (id & 1)\n\t\t\t\n\t\t\tfloat3 GetParticlePosition(uint
|
|
index)\n\t\t\t{\n\t\t\t\tstruct Attributes attributes = (Attributes)0;\n\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\n\n\t\t\t\treturn
|
|
attributes.position;\n\t\t\t}\n\t\t\t\n\t\t\tfloat3 GetStripTangent(float3
|
|
currentPos, uint relativeIndex, const StripData stripData)\n\t\t\t{\n\t\t\t\tfloat3
|
|
prevTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex > 0)\n\t\t\t\t{\n\t\t\t\t\tuint
|
|
prevIndex = GetParticleIndex(relativeIndex - 1,stripData);\n\t\t\t\t\tprevTangent
|
|
= normalize(currentPos - GetParticlePosition(prevIndex));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfloat3
|
|
nextTangent = (float3)0.0f;\n\t\t\t\tif (relativeIndex < stripData.nextIndex
|
|
- 1)\n\t\t\t\t{\n\t\t\t\t\tuint nextIndex = GetParticleIndex(relativeIndex
|
|
+ 1,stripData);\n\t\t\t\t\tnextTangent = normalize(GetParticlePosition(nextIndex)
|
|
- currentPos);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn normalize(prevTangent +
|
|
nextTangent);\n\t\t\t}\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma vertex vert\n\t\t\tVFX_VARYING_PS_INPUTS
|
|
vert(uint id : SV_VertexID, vs_input i)\n\t\t\t{\n\t\t\t\tVFX_VARYING_PS_INPUTS
|
|
o = (VFX_VARYING_PS_INPUTS)0;\n\t\t\t\n\t\t\t\tUNITY_SETUP_INSTANCE_ID(i);\n\t\t\t\tUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\tuint index = id / 3;\n\t\t\t#elif VFX_PRIMITIVE_QUAD\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tid += VFX_GET_INSTANCE_ID(i) * 8192;\n\t\t\t\tconst uint
|
|
vertexPerStripCount = (PARTICLE_PER_STRIP_COUNT - 1) << 2;\n\t\t\t\tconst StripData
|
|
stripData = GetStripDataFromStripIndex(id / vertexPerStripCount, PARTICLE_PER_STRIP_COUNT);\n\t\t\t\tuint
|
|
currentIndex = ((id % vertexPerStripCount) >> 2) + (id & 1); // relative index
|
|
of particle\n\t\t\t\t\n\t\t\t\tuint maxEdgeIndex = currentIndex - PARTICLE_IN_EDGE
|
|
+ 1;\n\t\t\t\tif (maxEdgeIndex >= stripData.nextIndex)\n\t\t\t\t\treturn o;\n\t\t\t\t\n\t\t\t\tuint
|
|
index = GetParticleIndex(currentIndex, stripData);\n\t\t\t#else\n\t\t\t\tuint
|
|
index = (id >> 2) + VFX_GET_INSTANCE_ID(i) * 2048;\n\t\t\t#endif\n\t\t\t#elif
|
|
VFX_PRIMITIVE_OCTAGON\n\t\t\t\tuint index = (id >> 3) + VFX_GET_INSTANCE_ID(i)
|
|
* 1024;\n\t\t\t#endif\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tuint deadCount = 0;\n\t\t\t\t\t\t#if
|
|
USE_DEAD_LIST_COUNT\n\t\t\t\t\t\tdeadCount = deadListCount.Load(0);\n\t\t\t\t\t\t#endif\t\n\t\t\t\t\t\tif
|
|
(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t#if USE_GEOMETRY_SHADER\n\t\t\t\t\t\t\treturn;
|
|
// cull\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\treturn o; // cull\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tAttributes
|
|
attributes = (Attributes)0;\n\t\t\t\t\t\tSourceAttributes sourceAttributes
|
|
= (SourceAttributes)0;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if VFX_HAS_INDIRECT_DRAW\n\t\t\t\t\t\tindex
|
|
= indirectBuffer[index];\n\t\t\t\t\t\tattributes.position = asfloat(attributeBuffer.Load3((index
|
|
* 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.lifetime = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0x8000) << 2));\n\t\t\t\t\t\tattributes.color = float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha
|
|
= (float)1;\n\t\t\t\t\t\tattributes.axisX = float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY
|
|
= float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ = float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleY = (float)0;\n\t\t\t\t\t\tattributes.angleZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotX = (float)0;\n\t\t\t\t\t\tattributes.pivotY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotZ = (float)0;\n\t\t\t\t\t\tattributes.size
|
|
= (float)0.100000001;\n\t\t\t\t\t\tattributes.age = asfloat(attributeBuffer.Load((index
|
|
* 0x1 + 0xA000) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\t\t\tif (!attributes.alive)\n\t\t\t\t\t\t\treturn o;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\t\t\t\tattributes.lifetime
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0x8000) << 2));\n\t\t\t\t\t\tattributes.color
|
|
= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\tattributes.axisX
|
|
= float3(1, 0, 0);\n\t\t\t\t\t\tattributes.axisY = float3(0, 1, 0);\n\t\t\t\t\t\tattributes.axisZ
|
|
= float3(0, 0, 1);\n\t\t\t\t\t\tattributes.angleX = (float)0;\n\t\t\t\t\t\tattributes.angleY
|
|
= (float)0;\n\t\t\t\t\t\tattributes.angleZ = (float)0;\n\t\t\t\t\t\tattributes.pivotX
|
|
= (float)0;\n\t\t\t\t\t\tattributes.pivotY = (float)0;\n\t\t\t\t\t\tattributes.pivotZ
|
|
= (float)0;\n\t\t\t\t\t\tattributes.size = (float)0.100000001;\n\t\t\t\t\t\tattributes.age
|
|
= asfloat(attributeBuffer.Load((index * 0x1 + 0xA000) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
|
|
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
|
|
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
|
|
SetAttribute_3278B22F( /*inout */attributes.size, (float)0.00499999989);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if
|
|
!HAS_STRIPS\n\t\t\t\tif (!attributes.alive)\n\t\t\t\t\treturn o;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#if
|
|
VFX_PRIMITIVE_QUAD\n\t\t\t\n\t\t\t#if HAS_STRIPS\n\t\t\t#if VFX_STRIPS_UV_STRECHED\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= (float)(currentIndex) / (stripData.nextIndex - 1);\n\t\t\t#elif VFX_STRIPS_UV_PER_SEGMENT\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= PARTICLE_IN_EDGE;\n\t\t\t#else\n\t\t\t\t\n\t\t\t o.VFX_VARYING_UV.x =
|
|
texCoord;\n\t\t\t#endif\n\t\t\t\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2)
|
|
>> 1);\n\t\t\t\tconst float2 vOffsets = float2(0.0f,o.VFX_VARYING_UV.y - 0.5f);\n\t\t\t\t\n\t\t\t#if
|
|
VFX_STRIPS_SWAP_UV\n\t\t\t\to.VFX_VARYING_UV.xy = float2(1.0f - o.VFX_VARYING_UV.y,
|
|
o.VFX_VARYING_UV.x);\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t// Orient strips along
|
|
their tangents\n\t\t\t\tattributes.axisX = GetStripTangent(attributes.position,
|
|
currentIndex, stripData);\n\t\t\t#if !VFX_STRIPS_ORIENT_CUSTOM\n\t\t\t\tattributes.axisZ
|
|
= attributes.position - GetViewVFXPosition();\n\t\t\t#endif\n\t\t\t\tattributes.axisY
|
|
= normalize(cross(attributes.axisZ, attributes.axisX));\n\t\t\t\tattributes.axisZ
|
|
= normalize(cross(attributes.axisX, attributes.axisY));\n\t\t\t\t\n\t\t\t#else\n\t\t\t\to.VFX_VARYING_UV.x
|
|
= float(id & 1);\n\t\t\t\to.VFX_VARYING_UV.y = float((id & 2) >> 1);\n\t\t\t\tconst
|
|
float2 vOffsets = o.VFX_VARYING_UV.xy - 0.5f;\n\t\t\t#endif\n\t\t\t\t\n\t\t\t#elif
|
|
VFX_PRIMITIVE_TRIANGLE\n\t\t\t\n\t\t\t\tconst float2 kOffsets[] = {\n\t\t\t\t\tfloat2(-0.5f,
|
|
\t-0.288675129413604736328125f),\n\t\t\t\t\tfloat2(0.0f, \t0.57735025882720947265625f),\n\t\t\t\t\tfloat2(0.5f,\t-0.288675129413604736328125f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst
|
|
float kUVScale = 0.866025388240814208984375f;\n\t\t\t\t\n\t\t\t\tconst float2
|
|
vOffsets = kOffsets[id % 3];\n\t\t\t\to.VFX_VARYING_UV.xy = (vOffsets * kUVScale)
|
|
+ 0.5f;\n\t\t\t\t\n\t\t\t#elif VFX_PRIMITIVE_OCTAGON\t\n\t\t\t\t\n\t\t\t\tconst
|
|
float2 kUvs[8] = \n\t\t\t\t{\n\t\t\t\t\tfloat2(-0.5f,\t0.0f),\n\t\t\t\t\tfloat2(-0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.0f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.5f),\n\t\t\t\t\tfloat2(0.5f,\t0.0f),\n\t\t\t\t\tfloat2(0.5f,\t-0.5f),\n\t\t\t\t\tfloat2(0.0f,\t-0.5f),\n\t\t\t\t\tfloat2(-0.5f,\t-0.5f),\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tcropFactor
|
|
= id & 1 ? 1.0f - cropFactor : 1.0f;\n\t\t\t\tconst float2 vOffsets = kUvs[id
|
|
& 7] * cropFactor;\n\t\t\t\to.VFX_VARYING_UV.xy = vOffsets + 0.5f;\n\t\t\t\t\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tfloat3
|
|
size3 = float3(attributes.size,attributes.size,attributes.size);\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEX_CURRENT\n\t\t\t\t\t\tsize3.x *= attributes.scaleX;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEY_CURRENT\n\t\t\t\t\t\tsize3.y *= attributes.scaleY;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if
|
|
VFX_USE_SCALEZ_CURRENT\n\t\t\t\t\t\tsize3.z *= attributes.scaleZ;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t#if
|
|
HAS_STRIPS\n\t\t\t\tsize3 += size3 < 0.0f ? -VFX_EPSILON : VFX_EPSILON; //
|
|
Add an epsilon so that size is never 0 for strips\n\t\t\t#endif\n\t\t\t\t\n\t\t\t\tconst
|
|
float4x4 elementToVFX = GetElementToVFXMatrix(\n\t\t\t\t\tattributes.axisX,\n\t\t\t\t\tattributes.axisY,\n\t\t\t\t\tattributes.axisZ,\n\t\t\t\t\tfloat3(attributes.angleX,attributes.angleY,attributes.angleZ),\n\t\t\t\t\tfloat3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),\n\t\t\t\t\tsize3,\n\t\t\t\t\tattributes.position);\n\t\t\t\t\t\n\t\t\t\tfloat3
|
|
inputVertexPosition = float3(vOffsets, 0.0f);\n\t\t\t\tfloat3 vPos = mul(elementToVFX,float4(inputVertexPosition,
|
|
1.0f)).xyz;\n\t\t\t\n\t\t\t\to.VFX_VARYING_POSCS = TransformPositionVFXToClip(vPos);\n\t\t\t
|
|
\n\t\t\t float3 vPosWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\n\t\t\t
|
|
#ifdef VFX_VARYING_POSWS\n\t\t\t o.VFX_VARYING_POSWS = vPosWS;\n\t\t\t
|
|
#endif\n\t\t\t\n\t\t\t\tfloat3 normalWS = normalize(TransformDirectionVFXToWorld(normalize(-transpose(elementToVFX)[2].xyz)));\n\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\tfloat normalFlip = (size3.x * size3.y * size3.z)
|
|
< 0 ? -1 : 1;\n\t\t\t\to.VFX_VARYING_NORMAL = normalFlip * normalWS;\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_TANGENT\n\t\t\t\to.VFX_VARYING_TANGENT = normalize(TransformDirectionVFXToWorld(normalize(transpose(elementToVFX)[0].xyz)));\n\t\t\t\t#endif\n\t\t\t\t#ifdef
|
|
VFX_VARYING_BENTFACTORS\n\t\t\t\t\n\t\t\t\t#if HAS_STRIPS\n\t\t\t\t#define
|
|
BENT_FACTOR_MULTIPLIER 2.0f\n\t\t\t\t#else\n\t\t\t\t#define BENT_FACTOR_MULTIPLIER
|
|
1.41421353816986083984375f\n\t\t\t\t#endif\n\t\t\t\to.VFX_VARYING_BENTFACTORS
|
|
= vOffsets * normalBendingFactor * BENT_FACTOR_MULTIPLIER;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_VELOCITY_CPOS) && defined(VFX_VARYING_VELOCITY_CPOS_PREVIOUS)\n\t\t\t\t\t\tfloat4x4
|
|
previousElementToVFX = (float4x4)0;\n\t\t\t\t\t\tpreviousElementToVFX[3] =
|
|
float4(0,0,0,1);\n\t\t\t\t\t\t\n\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\tfor (int
|
|
itIndexMatrixRow = 0; itIndexMatrixRow < 3; ++itIndexMatrixRow)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tUNITY_UNROLL\n\t\t\t\t\t\t\tfor
|
|
(int itIndexMatrixCol = 0; itIndexMatrixCol < 4; ++itIndexMatrixCol)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuint
|
|
itIndexMatrix = itIndexMatrixCol * 4 + itIndexMatrixRow;\n\t\t\t\t\t\t\t\tuint
|
|
read = elementToVFXBufferPrevious.Load((index * 16 + itIndexMatrix) << 2);\n\t\t\t\t\t\t\t\tpreviousElementToVFX[itIndexMatrixRow][itIndexMatrixCol]
|
|
= asfloat(read);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tuint
|
|
previousFrameIndex = elementToVFXBufferPrevious.Load((index * 16 + 15) << 2);\n\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= o.VFX_VARYING_VELOCITY_CPOS_PREVIOUS = float4(0.0f, 0.0f, 0.0f, 1.0f);\n\t\t\t\t\t\tif
|
|
(asuint(currentFrameIndex) - previousFrameIndex == 1u)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfloat3
|
|
oldvPos = mul(previousElementToVFX,float4(inputVertexPosition, 1.0f)).xyz;\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS_PREVIOUS
|
|
= TransformPositionVFXToPreviousClip(oldvPos);\n\t\t\t\t\t\t\to.VFX_VARYING_VELOCITY_CPOS
|
|
= TransformPositionVFXToNonJitteredClip(vPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_USE_COLOR_CURRENT && defined(VFX_VARYING_COLOR)\n\t\t\t\t\t\to.VFX_VARYING_COLOR
|
|
= attributes.color;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#if VFX_USE_ALPHA_CURRENT
|
|
&& defined(VFX_VARYING_ALPHA) \n\t\t\t\t\t\to.VFX_VARYING_ALPHA = attributes.alpha;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_EXPOSUREWEIGHT\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_EXPOSUREWEIGHT
|
|
= exposureWeight;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_SOFT_PARTICLE
|
|
&& defined(VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE
|
|
= invSoftParticlesFadeDistance;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
(USE_ALPHA_TEST || WRITE_MOTION_VECTOR_IN_FORWARD) && (!VFX_SHADERGRAPH ||
|
|
!HAS_SHADERGRAPH_PARAM_ALPHATHRESHOLD) && defined(VFX_VARYING_ALPHATHRESHOLD)\n\t\t\t\t\t\tfloat
|
|
alphaThreshold = (float)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
|
|
alphaThreshold = (float)0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_ALPHATHRESHOLD
|
|
= alphaThreshold;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if USE_UV_SCALE_BIAS\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
|
|
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#if
|
|
USE_FLIPBOOK && defined(VFX_VARYING_UV)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tVFXUVData
|
|
uvData = GetUVData(flipBookSize, invFlipBookSize, o.VFX_VARYING_UV.xy, attributes.texIndex);\n\t\t\t\t\t\to.VFX_VARYING_UV.xy
|
|
= uvData.uvs.xy;\n\t\t\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION && defined(VFX_VARYING_UV)
|
|
&& defined (VFX_VARYING_FRAMEBLEND)\n\t\t\t\t\t\to.VFX_VARYING_UV.zw = uvData.uvs.zw;\n\t\t\t\t\t\to.VFX_VARYING_FRAMEBLEND
|
|
= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
|
|
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
|
|
\n\t\t\t float3 VFX_Color__ = (float3)0;{\n\t\t\t \n\t\t\t
|
|
VFX_Color__ = float3(0, 14.9109936, 31.9999962);\n\t\t\t }\n\t\t\t o.VFX_Color
|
|
= VFX_Color__;float VFX_Alpha__ = (float)0;{\n\t\t\t float tmp_r = attributes.age
|
|
/ attributes.lifetime;\n\t\t\t float tmp_s = SampleCurve(uniform_b,tmp_r);\n\t\t\t
|
|
\n\t\t\t VFX_Alpha__ = tmp_s;\n\t\t\t }\n\t\t\t o.VFX_Alpha =
|
|
VFX_Alpha__;\n\n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t#if
|
|
VFX_SHADERGRAPH\n\t\t\t\n\t\t\t\t\t#include \"Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/EntityLighting.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinGIUtilities.hlsl\"\n\t\t\t\t\t#ifndef
|
|
SHADERPASS\n\t\t\t\t\t#error Shaderpass should be defined at this stage.\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
|
|
\"Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl\"\n\t\t\t\t\t\n\t\t\t\n\t\t\t#include
|
|
\"Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl\"\n\t\t\t//
|
|
Node: Remap\n\t\t\tvoid Unity_Remap_float(float In, float2 InMinMax, float2
|
|
OutMinMax, out float Out)\n\t\t\t{\n\t\t\t Out = OutMinMax.x + (In - InMinMax.x)
|
|
* (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Absolute\n\t\t\tvoid Unity_Absolute_float(float In, out float Out)\n\t\t\t{\n\t\t\t
|
|
Out = abs(In);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: One Minus\n\t\t\tvoid Unity_OneMinus_float(float
|
|
In, out float Out)\n\t\t\t{\n\t\t\t Out = 1 - In;\n\t\t\t}\n\t\t\t\n\t\t\t//
|
|
Node: Multiply\n\t\t\tvoid Unity_Multiply_float(float3 A, float3 B, out float3
|
|
Out)\n\t\t\t{\n\t\t\t Out = A * B;\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Multiply\n\t\t\tvoid
|
|
Unity_Multiply_float(float A, float B, out float Out)\n\t\t\t{\n\t\t\t Out
|
|
= A * B;\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Saturate\n\t\t\tvoid Unity_Saturate_float(float
|
|
In, out float Out)\n\t\t\t{\n\t\t\t Out = saturate(In);\n\t\t\t}\n\t\t\t\n\t\t\tstruct
|
|
SG_Input_3e9dc7cd34e49604bab11978b4a14481\n\t\t\t{\n\t\t\t half4 uv0;\n\t\t\t};\n\t\t\t\n\t\t\tstruct
|
|
SG_Output_3e9dc7cd34e49604bab11978b4a14481\n\t\t\t{\n\t\t\t float3 Color_6;\n\t\t\t
|
|
float Alpha_4;\n\t\t\t};\n\t\t\t\n\t\t\tSG_Output_3e9dc7cd34e49604bab11978b4a14481
|
|
SG_Evaluate_3e9dc7cd34e49604bab11978b4a14481(\n\t\t\t SG_Input_3e9dc7cd34e49604bab11978b4a14481
|
|
IN,\n\t\t\t /* Property: VFX-Color */ float3 VFX_Color,\n\t\t\t /* Property:
|
|
VFX-Alpha */ float VFX_Alpha)\n\t\t\t{\n\t\t\t // Node: Property\n\t\t\t
|
|
float3 _Property_602FAE96_Out_0 = VFX_Color;\n\t\t\t\n\t\t\t // Node: UV\n\t\t\t
|
|
float4 _UV_952F253C_Out_0 = IN.uv0;\n\t\t\t\n\t\t\t // Node: Split\n\t\t\t
|
|
float _Split_FB89A89B_R_1 = _UV_952F253C_Out_0[0];\n\t\t\t float _Split_FB89A89B_G_2
|
|
= _UV_952F253C_Out_0[1];\n\t\t\t float _Split_FB89A89B_B_3 = _UV_952F253C_Out_0[2];\n\t\t\t
|
|
float _Split_FB89A89B_A_4 = _UV_952F253C_Out_0[3];\n\t\t\t\n\t\t\t // Node:
|
|
Remap\n\t\t\t float _Remap_5A74B49_Out_3;\n\t\t\t Unity_Remap_float(_Split_FB89A89B_G_2,
|
|
float2 (0, 1), float2 (-1, 1), _Remap_5A74B49_Out_3);\n\t\t\t\n\t\t\t //
|
|
Node: Absolute\n\t\t\t float _Absolute_25CB7F3B_Out_1;\n\t\t\t Unity_Absolute_float(_Remap_5A74B49_Out_3,
|
|
_Absolute_25CB7F3B_Out_1);\n\t\t\t\n\t\t\t // Node: One Minus\n\t\t\t
|
|
float _OneMinus_DEE49F4D_Out_1;\n\t\t\t Unity_OneMinus_float(_Absolute_25CB7F3B_Out_1,
|
|
_OneMinus_DEE49F4D_Out_1);\n\t\t\t\n\t\t\t // Node: Multiply\n\t\t\t
|
|
float3 _Multiply_CBF5A8E2_Out_2;\n\t\t\t Unity_Multiply_float(_Property_602FAE96_Out_0,
|
|
(_OneMinus_DEE49F4D_Out_1.xxx), _Multiply_CBF5A8E2_Out_2);\n\t\t\t\n\t\t\t
|
|
// Node: Property\n\t\t\t float _Property_E8CF1CE5_Out_0 = VFX_Alpha;\n\t\t\t\n\t\t\t
|
|
// Node: Multiply\n\t\t\t float _Multiply_47D6C6C2_Out_2;\n\t\t\t Unity_Multiply_float(_OneMinus_DEE49F4D_Out_1,
|
|
_Property_E8CF1CE5_Out_0, _Multiply_47D6C6C2_Out_2);\n\t\t\t\n\t\t\t //
|
|
Node: Saturate\n\t\t\t float _Saturate_8095E39A_Out_1;\n\t\t\t Unity_Saturate_float(_Multiply_47D6C6C2_Out_2,
|
|
_Saturate_8095E39A_Out_1);\n\t\t\t\n\t\t\t // Visual Effect Master\n\t\t\t
|
|
SG_Output_3e9dc7cd34e49604bab11978b4a14481 OUT;\n\t\t\t OUT.Color_6 = _Multiply_CBF5A8E2_Out_2;\n\t\t\t
|
|
OUT.Alpha_4 = _Saturate_8095E39A_Out_1;\n\t\t\t return OUT;\n\t\t\t}\n\t\t\t\n\n\t\t#endif\n\t\t\t\t\n\t\t\t#pragma
|
|
fragment frag\n\t\t\tps_output frag(ps_input i)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tps_output
|
|
o = (ps_output)0;\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
|
|
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
|
|
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
|
|
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
|
|
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
|
|
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
|
|
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
|
|
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
|
|
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
|
|
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
|
|
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
|
|
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
|
|
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
|
|
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
|
|
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
|
|
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t#if
|
|
VFX_SHADERGRAPH\n\t\t float3 VFX_Color = i.VFX_Color;float VFX_Alpha
|
|
= i.VFX_Alpha;\n\t\t \n\t\t //Call Shader Graph\n\t\t
|
|
SG_Input_3e9dc7cd34e49604bab11978b4a14481 INSG = (SG_Input_3e9dc7cd34e49604bab11978b4a14481)0;\n\t\t
|
|
INSG.uv0.xy = i.uv;\n\t\t \n\t\t SG_Output_3e9dc7cd34e49604bab11978b4a14481
|
|
OUTSG = SG_Evaluate_3e9dc7cd34e49604bab11978b4a14481(INSG,VFX_Color, VFX_Alpha);\n\t\t
|
|
\n\n\t\t \n\t\t #if HAS_SHADERGRAPH_PARAM_COLOR\n\t\t
|
|
o.color.rgb = OUTSG.Color_6.rgb;\n\t\t #endif\n\t\t \n\t\t
|
|
#if HAS_SHADERGRAPH_PARAM_ALPHA \n\t\t o.color.a = OUTSG.Alpha_4;\n\t\t
|
|
#endif\n\t\t#else\n\t\t\t\n\t\t\t\t#define VFX_TEXTURE_COLOR VFXGetTextureColor(VFX_SAMPLER(mainTexture),i)\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat4
|
|
color = VFXGetFragmentColor(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifndef VFX_TEXTURE_COLOR\n\t\t\t\t\t\t\t#define
|
|
VFX_TEXTURE_COLOR float4(1.0,1.0,1.0,1.0)\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_DEFAULT\n\t\t\t\t\t\t\to.color = color * VFX_TEXTURE_COLOR;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
|
|
VFX_COLORMAPPING_GRADIENTMAPPED\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\to.color = SampleGradient(gradient,
|
|
VFX_TEXTURE_COLOR.a * color.a) * float4(color.rgb,1.0);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\to.color
|
|
= VFXApplyPreExposure(o.color, i);\n\t\t#endif\n\t\t\n\t\t\t\to.color = VFXApplyFog(o.color,i);\n\t\t\t\tVFXClipFragmentColor(o.color.a,i);\n\t\t\t\to.color.a
|
|
= saturate(o.color.a);\n\t\t\t\to.color = VFXTransformFinalColor(o.color);\n\t\t\t\t\n\t\t#if
|
|
WRITE_MOTION_VECTOR_IN_FORWARD\n\t\t\t\t\n\t\t\t\t\t\tfloat2 velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w)
|
|
- (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t#if
|
|
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfloat4
|
|
encodedMotionVector = 0.0f;\n\t\t\t\t\t\tVFXEncodeMotionVector(velocity * 0.5f,
|
|
encodedMotionVector);\n\t\t\t\t\t\t\n\t\t\t\to.outMotionVector = encodedMotionVector;\n\t\t
|
|
o.outMotionVector.a = o.color.a < i.VFX_VARYING_ALPHATHRESHOLD ? 0.0f : 1.0f;
|
|
//Independant clipping for motion vector pass\n\t\t#endif\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t}\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[BG Clouds]CameraSort'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_LOCAL_SPACE
|
|
1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
|
|
float4x4 localToWorld;\nCBUFFER_END\n\nstruct Attributes\n{\n float3 position;\n};\n\nstruct
|
|
SourceAttributes\n{\n};\n\n\n\r\n#include \"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nCBUFFER_START(params)\r\n
|
|
uint nbMax;\r\n uint dispatchWidth;\r\nCBUFFER_END\r\n\r\nCBUFFER_START(cameraParams)\r\n
|
|
float3 cameraPosition;\r\nCBUFFER_END\r\n\r\nByteAddressBuffer attributeBuffer;\r\nStructuredBuffer<uint>
|
|
inputBuffer;\r\n\r\n#if USE_DEAD_LIST_COUNT\r\nByteAddressBuffer deadListCount;\r\n#endif\r\n\r\nstruct
|
|
Kvp\r\n{\r\n\tfloat sortKey;\r\n\tuint index;\r\n};\r\n\r\nRWStructuredBuffer<Kvp>
|
|
outputBuffer;\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
|
|
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n\tuint
|
|
threshold = nbMax;\r\n#if USE_DEAD_LIST_COUNT\r\n\tthreshold -= deadListCount.Load(0);\r\n#endif\r\n\tuint
|
|
id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP + groupId.y * dispatchWidth
|
|
* NB_THREADS_PER_GROUP;\r\n\tif (id < threshold)\r\n\t{\r\n\t\tuint index =
|
|
inputBuffer[id];\r\n\t\t\r\n\t\tAttributes attributes = (Attributes)0;\r\n\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\n\r\n\t\t\r\n#if
|
|
VFX_LOCAL_SPACE\r\n\t\tfloat3 wPos = mul(localToWorld,float4(attributes.position,1.0f)).xyz;\r\n#else\r\n\t\tfloat3
|
|
wPos = attributes.position;\r\n#endif\r\n\t\tfloat3 camToPos = wPos - cameraPosition;\r\n\t\t\r\n\t\tKvp
|
|
kvp;\r\n\t\tkvp.sortKey = dot(camToPos,camToPos); // sqr distance to the camera\r\n\t\tkvp.index
|
|
= index;\r\n\r\n\t\toutputBuffer[id] = kvp;\r\n\t}\r\n}\r\n"
|
|
- compute: 1
|
|
name: '[Galaxy Clouds]CameraSort'
|
|
source: "#pragma kernel CSMain\r\n#define NB_THREADS_PER_GROUP 64\n#define HAS_ATTRIBUTES
|
|
1\n#define VFX_PASSDEPTH_ACTUAL (0)\n#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n#define
|
|
VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_LOCAL_SPACE
|
|
1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
|
|
float4x4 localToWorld;\nCBUFFER_END\n\nstruct Attributes\n{\n float3 position;\n};\n\nstruct
|
|
SourceAttributes\n{\n};\n\n\n\r\n#include \"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
|
|
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nCBUFFER_START(params)\r\n
|
|
uint nbMax;\r\n uint dispatchWidth;\r\nCBUFFER_END\r\n\r\nCBUFFER_START(cameraParams)\r\n
|
|
float3 cameraPosition;\r\nCBUFFER_END\r\n\r\nByteAddressBuffer attributeBuffer;\r\nStructuredBuffer<uint>
|
|
inputBuffer;\r\n\r\n#if USE_DEAD_LIST_COUNT\r\nByteAddressBuffer deadListCount;\r\n#endif\r\n\r\nstruct
|
|
Kvp\r\n{\r\n\tfloat sortKey;\r\n\tuint index;\r\n};\r\n\r\nRWStructuredBuffer<Kvp>
|
|
outputBuffer;\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
|
|
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n\tuint
|
|
threshold = nbMax;\r\n#if USE_DEAD_LIST_COUNT\r\n\tthreshold -= deadListCount.Load(0);\r\n#endif\r\n\tuint
|
|
id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP + groupId.y * dispatchWidth
|
|
* NB_THREADS_PER_GROUP;\r\n\tif (id < threshold)\r\n\t{\r\n\t\tuint index =
|
|
inputBuffer[id];\r\n\t\t\r\n\t\tAttributes attributes = (Attributes)0;\r\n\t\tattributes.position
|
|
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x0) << 2));\n\t\t\n\r\n\t\t\r\n#if
|
|
VFX_LOCAL_SPACE\r\n\t\tfloat3 wPos = mul(localToWorld,float4(attributes.position,1.0f)).xyz;\r\n#else\r\n\t\tfloat3
|
|
wPos = attributes.position;\r\n#endif\r\n\t\tfloat3 camToPos = wPos - cameraPosition;\r\n\t\t\r\n\t\tKvp
|
|
kvp;\r\n\t\tkvp.sortKey = dot(camToPos,camToPos); // sqr distance to the camera\r\n\t\tkvp.index
|
|
= index;\r\n\r\n\t\toutputBuffer[id] = kvp;\r\n\t}\r\n}\r\n"
|
|
m_Infos:
|
|
m_Expressions:
|
|
m_Expressions:
|
|
- op: 1
|
|
valueIndex: 0
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 1
|
|
valueIndex: 1
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 1
|
|
valueIndex: 2
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 8
|
|
valueIndex: 3
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: -1
|
|
- op: 62
|
|
valueIndex: 4
|
|
data[0]: 0
|
|
data[1]: 3
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 62
|
|
valueIndex: 5
|
|
data[0]: 2
|
|
data[1]: 3
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 62
|
|
valueIndex: 6
|
|
data[0]: 1
|
|
data[1]: 3
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 1
|
|
valueIndex: 7
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 8
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 9
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 10
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 11
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 14
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 17
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 1
|
|
valueIndex: 18
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 1
|
|
valueIndex: 19
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 1
|
|
valueIndex: 20
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 62
|
|
valueIndex: 23
|
|
data[0]: 14
|
|
data[1]: 3
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 62
|
|
valueIndex: 24
|
|
data[0]: 13
|
|
data[1]: 3
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 62
|
|
valueIndex: 25
|
|
data[0]: 15
|
|
data[1]: 3
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 1
|
|
valueIndex: 26
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 29
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 32
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 35
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 38
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 1
|
|
valueIndex: 39
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 1
|
|
valueIndex: 40
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 43
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 62
|
|
valueIndex: 44
|
|
data[0]: 27
|
|
data[1]: 3
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 1
|
|
valueIndex: 45
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 13
|
|
- op: 1
|
|
valueIndex: 46
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 13
|
|
- op: 56
|
|
valueIndex: 47
|
|
data[0]: 29
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 0
|
|
- op: 1
|
|
valueIndex: 51
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 52
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 56
|
|
valueIndex: 53
|
|
data[0]: 30
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 57
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 6
|
|
valueIndex: 60
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: -1
|
|
- op: 1
|
|
valueIndex: 61
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 62
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 7
|
|
valueIndex: 63
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: -1
|
|
- op: 1
|
|
valueIndex: 64
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 13
|
|
- op: 1
|
|
valueIndex: 65
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 66
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 67
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 56
|
|
valueIndex: 68
|
|
data[0]: 40
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 2
|
|
- op: 1
|
|
valueIndex: 72
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 13
|
|
- op: 1
|
|
valueIndex: 73
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 56
|
|
valueIndex: 74
|
|
data[0]: 45
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 78
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 13
|
|
- op: 1
|
|
valueIndex: 79
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 82
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 13
|
|
- op: 1
|
|
valueIndex: 83
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 86
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 89
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 14
|
|
- op: 1
|
|
valueIndex: 90
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 12
|
|
- op: 1
|
|
valueIndex: 106
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 12
|
|
- op: 1
|
|
valueIndex: 122
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 14
|
|
- op: 1
|
|
valueIndex: 123
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 12
|
|
- op: 1
|
|
valueIndex: 139
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 56
|
|
valueIndex: 142
|
|
data[0]: 48
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 4
|
|
- op: 56
|
|
valueIndex: 146
|
|
data[0]: 50
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 5
|
|
- op: 1
|
|
valueIndex: 150
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 151
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 152
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 155
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 158
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 159
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 7
|
|
- op: 1
|
|
valueIndex: 160
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 161
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 57
|
|
valueIndex: 162
|
|
data[0]: 53
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 0
|
|
- op: 1
|
|
valueIndex: 163
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 166
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 167
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 168
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 7
|
|
- op: 1
|
|
valueIndex: 169
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 170
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 7
|
|
- op: 1
|
|
valueIndex: 171
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 172
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 173
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 2
|
|
- op: 1
|
|
valueIndex: 175
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 178
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 181
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 182
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 183
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 184
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 187
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 190
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 191
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 192
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 193
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 2
|
|
- op: 1
|
|
valueIndex: 195
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 196
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 2
|
|
- op: 1
|
|
valueIndex: 198
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 201
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 2
|
|
- op: 1
|
|
valueIndex: 203
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 206
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 209
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 2
|
|
- op: 1
|
|
valueIndex: 211
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 214
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 2
|
|
- op: 1
|
|
valueIndex: 216
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 2
|
|
- op: 1
|
|
valueIndex: 218
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 2
|
|
- op: 1
|
|
valueIndex: 220
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 221
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 6
|
|
- op: 1
|
|
valueIndex: 222
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 7
|
|
- op: 1
|
|
valueIndex: 223
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 57
|
|
valueIndex: 224
|
|
data[0]: 56
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 225
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 228
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 229
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 232
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 235
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 236
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 237
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 238
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 239
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 242
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 245
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 248
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 1
|
|
valueIndex: 251
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 252
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 253
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 1
|
|
- op: 1
|
|
valueIndex: 254
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 7
|
|
- op: 1
|
|
valueIndex: 255
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 7
|
|
- op: 1
|
|
valueIndex: 256
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: 3
|
|
- op: 9
|
|
valueIndex: 259
|
|
data[0]: -1
|
|
data[1]: -1
|
|
data[2]: -1
|
|
data[3]: -1
|
|
m_NeedsLocalToWorld: 1
|
|
m_NeedsWorldToLocal: 0
|
|
m_NeededMainCameraBuffers: 0
|
|
m_PropertySheet:
|
|
m_Float:
|
|
m_Array:
|
|
- m_ExpressionIndex: 7
|
|
m_Value: 2
|
|
- m_ExpressionIndex: 8
|
|
m_Value: -1
|
|
- m_ExpressionIndex: 9
|
|
m_Value: 0.5
|
|
- m_ExpressionIndex: 10
|
|
m_Value: 1
|
|
- m_ExpressionIndex: 32
|
|
m_Value: 1.5
|
|
- m_ExpressionIndex: 33
|
|
m_Value: 0.1
|
|
- m_ExpressionIndex: 37
|
|
m_Value: 180
|
|
- m_ExpressionIndex: 38
|
|
m_Value: 24
|
|
- m_ExpressionIndex: 41
|
|
m_Value: 100
|
|
- m_ExpressionIndex: 42
|
|
m_Value: 23
|
|
- m_ExpressionIndex: 43
|
|
m_Value: 0
|
|
- m_ExpressionIndex: 46
|
|
m_Value: 0.3
|
|
- m_ExpressionIndex: 61
|
|
m_Value: 0.3357951
|
|
- m_ExpressionIndex: 62
|
|
m_Value: 0.05
|
|
- m_ExpressionIndex: 65
|
|
m_Value: 0.005
|
|
- m_ExpressionIndex: 67
|
|
m_Value: 0.9
|
|
- m_ExpressionIndex: 68
|
|
m_Value: 16
|
|
- m_ExpressionIndex: 71
|
|
m_Value: 0.01
|
|
- m_ExpressionIndex: 72
|
|
m_Value: 30
|
|
- m_ExpressionIndex: 74
|
|
m_Value: 32
|
|
- m_ExpressionIndex: 76
|
|
m_Value: 90
|
|
- m_ExpressionIndex: 77
|
|
m_Value: 9.990009
|
|
- m_ExpressionIndex: 81
|
|
m_Value: 50
|
|
- m_ExpressionIndex: 82
|
|
m_Value: 360
|
|
- m_ExpressionIndex: 83
|
|
m_Value: 4
|
|
- m_ExpressionIndex: 86
|
|
m_Value: 0.25
|
|
- m_ExpressionIndex: 87
|
|
m_Value: 6.2831855
|
|
- m_ExpressionIndex: 88
|
|
m_Value: 12
|
|
- m_ExpressionIndex: 90
|
|
m_Value: 3
|
|
- m_ExpressionIndex: 101
|
|
m_Value: 0.7861635
|
|
- m_ExpressionIndex: 104
|
|
m_Value: 0.1496293
|
|
- m_ExpressionIndex: 107
|
|
m_Value: 0.004
|
|
- m_ExpressionIndex: 110
|
|
m_Value: 0.7289999
|
|
- m_ExpressionIndex: 111
|
|
m_Value: 0.86
|
|
- m_ExpressionIndex: 112
|
|
m_Value: 1.27
|
|
- m_ExpressionIndex: 113
|
|
m_Value: 63
|
|
- m_ExpressionIndex: 118
|
|
m_Value: 40
|
|
- m_ExpressionIndex: 119
|
|
m_Value: 0.293
|
|
- m_ExpressionIndex: 120
|
|
m_Value: 0.3647799
|
|
m_Vector2f:
|
|
m_Array:
|
|
- m_ExpressionIndex: 78
|
|
m_Value: {x: 128, y: 128}
|
|
- m_ExpressionIndex: 89
|
|
m_Value: {x: 16, y: 16}
|
|
- m_ExpressionIndex: 91
|
|
m_Value: {x: 750, y: 750}
|
|
- m_ExpressionIndex: 93
|
|
m_Value: {x: 32, y: 32}
|
|
- m_ExpressionIndex: 96
|
|
m_Value: {x: 256, y: 256}
|
|
- m_ExpressionIndex: 98
|
|
m_Value: {x: 0, y: 0}
|
|
- m_ExpressionIndex: 99
|
|
m_Value: {x: 8, y: 8}
|
|
- m_ExpressionIndex: 100
|
|
m_Value: {x: 0.125, y: 0.125}
|
|
m_Vector3f:
|
|
m_Array:
|
|
- m_ExpressionIndex: 11
|
|
m_Value: {x: -1, y: -1, z: -1}
|
|
- m_ExpressionIndex: 12
|
|
m_Value: {x: 1, y: 1, z: 1}
|
|
- m_ExpressionIndex: 16
|
|
m_Value: {x: 2, y: 2, z: 2}
|
|
- m_ExpressionIndex: 20
|
|
m_Value: {x: 0.2, y: 0, z: 0.2}
|
|
- m_ExpressionIndex: 21
|
|
m_Value: {x: -0.1, y: 1, z: -0.1}
|
|
- m_ExpressionIndex: 22
|
|
m_Value: {x: 2, y: 0.2, z: 2}
|
|
- m_ExpressionIndex: 23
|
|
m_Value: {x: -1, y: -0.1, z: -1}
|
|
- m_ExpressionIndex: 26
|
|
m_Value: {x: 0, y: 1, z: 0}
|
|
- m_ExpressionIndex: 35
|
|
m_Value: {x: 15, y: 1, z: 15}
|
|
- m_ExpressionIndex: 49
|
|
m_Value: {x: 2.5, y: 0, z: 1.4}
|
|
- m_ExpressionIndex: 51
|
|
m_Value: {x: 20, y: 0, z: 0}
|
|
- m_ExpressionIndex: 52
|
|
m_Value: {x: 0, y: 0, z: 20}
|
|
- m_ExpressionIndex: 58
|
|
m_Value: {x: 1.45, y: 1, z: 1}
|
|
- m_ExpressionIndex: 63
|
|
m_Value: {x: 0.49932846, y: 2.9051838, z: 8.670157}
|
|
- m_ExpressionIndex: 64
|
|
m_Value: {x: 0, y: 14.910994, z: 31.999996}
|
|
- m_ExpressionIndex: 70
|
|
m_Value: {x: 12, y: 512, z: 1234}
|
|
- m_ExpressionIndex: 79
|
|
m_Value: {x: 0.6, y: 0.6, z: 0.6}
|
|
- m_ExpressionIndex: 80
|
|
m_Value: {x: 0.3301887, y: 0.3301887, z: 0.3301887}
|
|
- m_ExpressionIndex: 84
|
|
m_Value: {x: 0, y: 0, z: 1}
|
|
- m_ExpressionIndex: 85
|
|
m_Value: {x: 0, y: 0, z: -1}
|
|
- m_ExpressionIndex: 92
|
|
m_Value: {x: 4, y: 2, z: 3}
|
|
- m_ExpressionIndex: 94
|
|
m_Value: {x: 40, y: 40, z: 40}
|
|
- m_ExpressionIndex: 95
|
|
m_Value: {x: 0, y: 0, z: 0}
|
|
- m_ExpressionIndex: 97
|
|
m_Value: {x: 2, y: 3, z: 2}
|
|
- m_ExpressionIndex: 106
|
|
m_Value: {x: 8.041883, y: 109.90575, z: 511.99994}
|
|
- m_ExpressionIndex: 108
|
|
m_Value: {x: 2, y: 0.2, z: 1}
|
|
- m_ExpressionIndex: 109
|
|
m_Value: {x: 0, y: -1, z: 0}
|
|
- m_ExpressionIndex: 114
|
|
m_Value: {x: 1, y: 0, z: 0}
|
|
- m_ExpressionIndex: 115
|
|
m_Value: {x: 0.5, y: 0, z: 0}
|
|
- m_ExpressionIndex: 116
|
|
m_Value: {x: 0, y: 0, z: 0.5}
|
|
- m_ExpressionIndex: 117
|
|
m_Value: {x: 0.01024177, y: 0.21678413, z: 0.3260297}
|
|
- m_ExpressionIndex: 123
|
|
m_Value: {x: 0, y: 0.5, z: 0}
|
|
m_Vector4f:
|
|
m_Array: []
|
|
m_Uint:
|
|
m_Array:
|
|
- m_ExpressionIndex: 0
|
|
m_Value: 7968591
|
|
- m_ExpressionIndex: 1
|
|
m_Value: 8098570
|
|
- m_ExpressionIndex: 2
|
|
m_Value: 456
|
|
- m_ExpressionIndex: 13
|
|
m_Value: 7968508
|
|
- m_ExpressionIndex: 14
|
|
m_Value: 8098489
|
|
- m_ExpressionIndex: 15
|
|
m_Value: 123
|
|
- m_ExpressionIndex: 24
|
|
m_Value: 256
|
|
- m_ExpressionIndex: 25
|
|
m_Value: 16
|
|
- m_ExpressionIndex: 27
|
|
m_Value: 0
|
|
- m_ExpressionIndex: 102
|
|
m_Value: 1076719097
|
|
m_Int:
|
|
m_Array: []
|
|
m_Matrix4x4f:
|
|
m_Array:
|
|
- m_ExpressionIndex: 54
|
|
m_Value:
|
|
e00: 0.000000059604645
|
|
e01: -0.99999994
|
|
e02: 0
|
|
e03: 0
|
|
e10: 0.99999994
|
|
e11: 0.000000059604645
|
|
e12: 0
|
|
e13: 0
|
|
e20: 0
|
|
e21: 0
|
|
e22: 1
|
|
e23: 0
|
|
e30: 0
|
|
e31: 0
|
|
e32: 0
|
|
e33: 1
|
|
- m_ExpressionIndex: 55
|
|
m_Value:
|
|
e00: 1
|
|
e01: 0
|
|
e02: 0
|
|
e03: 0
|
|
e10: 0
|
|
e11: 0.000000059604645
|
|
e12: -0.99999994
|
|
e13: 0
|
|
e20: 0
|
|
e21: 0.99999994
|
|
e22: 0.000000059604645
|
|
e23: 0
|
|
e30: 0
|
|
e31: 0
|
|
e32: 0
|
|
e33: 1
|
|
- m_ExpressionIndex: 57
|
|
m_Value:
|
|
e00: -0.5833963
|
|
e01: -0.80234635
|
|
e02: 0.12605226
|
|
e03: 0
|
|
e10: -0.19491911
|
|
e11: 0.2889794
|
|
e12: 0.937282
|
|
e13: 0
|
|
e20: -0.78845125
|
|
e21: 0.5222369
|
|
e22: -0.32498217
|
|
e23: 0
|
|
e30: 0
|
|
e31: 0
|
|
e32: 0
|
|
e33: 1
|
|
m_AnimationCurve:
|
|
m_Array:
|
|
- m_ExpressionIndex: 29
|
|
m_Value:
|
|
serializedVersion: 2
|
|
m_Curve:
|
|
- serializedVersion: 3
|
|
time: 0
|
|
value: 0
|
|
inSlope: -0.001279144
|
|
outSlope: -0.001279144
|
|
tangentMode: 0
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 1
|
|
value: 0.03569393
|
|
inSlope: 0.0045147985
|
|
outSlope: 0.0045147985
|
|
tangentMode: 34
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 2.3386395
|
|
value: 0
|
|
inSlope: -0.0004304812
|
|
outSlope: -0.0004304812
|
|
tangentMode: 0
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
m_PreInfinity: 2
|
|
m_PostInfinity: 2
|
|
m_RotationOrder: 4
|
|
- m_ExpressionIndex: 30
|
|
m_Value:
|
|
serializedVersion: 2
|
|
m_Curve:
|
|
- serializedVersion: 3
|
|
time: 0
|
|
value: 0
|
|
inSlope: 0
|
|
outSlope: 0
|
|
tangentMode: 0
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 0.8495015
|
|
value: 0.25
|
|
inSlope: 0
|
|
outSlope: 0
|
|
tangentMode: 0
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 3.398006
|
|
value: 0
|
|
inSlope: 0
|
|
outSlope: 0
|
|
tangentMode: 0
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
m_PreInfinity: 2
|
|
m_PostInfinity: 2
|
|
m_RotationOrder: 4
|
|
- m_ExpressionIndex: 40
|
|
m_Value:
|
|
serializedVersion: 2
|
|
m_Curve:
|
|
- serializedVersion: 3
|
|
time: 0
|
|
value: 0.48440552
|
|
inSlope: 0.5155945
|
|
outSlope: 0.5155945
|
|
tangentMode: 34
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 1
|
|
value: 1
|
|
inSlope: 0.5155945
|
|
outSlope: 0.5155945
|
|
tangentMode: 34
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
m_PreInfinity: 2
|
|
m_PostInfinity: 2
|
|
m_RotationOrder: 4
|
|
- m_ExpressionIndex: 45
|
|
m_Value:
|
|
serializedVersion: 2
|
|
m_Curve:
|
|
- serializedVersion: 3
|
|
time: 0
|
|
value: 0.9945984
|
|
inSlope: -0.8652191
|
|
outSlope: -0.8652191
|
|
tangentMode: 34
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 1
|
|
value: 0.12937927
|
|
inSlope: -0.8652191
|
|
outSlope: -0.8652191
|
|
tangentMode: 34
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
m_PreInfinity: 2
|
|
m_PostInfinity: 2
|
|
m_RotationOrder: 4
|
|
- m_ExpressionIndex: 48
|
|
m_Value:
|
|
serializedVersion: 2
|
|
m_Curve:
|
|
- serializedVersion: 3
|
|
time: 0
|
|
value: 0
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 0.028503418
|
|
value: 0.14038086
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 0.059986815
|
|
value: -0.0019268394
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 0.09887937
|
|
value: 0.99999624
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 0.13645038
|
|
value: 0.0019203778
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 0.17930125
|
|
value: 0.4634588
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 1.8402953
|
|
value: 0
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 1.8866136
|
|
value: 0.0006221962
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 1.8875637
|
|
value: 1.0094962
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 1.9122654
|
|
value: 0.0061654598
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 1.9597687
|
|
value: 0.18909316
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 1.9892205
|
|
value: -0.0076927096
|
|
inSlope: Infinity
|
|
outSlope: Infinity
|
|
tangentMode: 103
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
m_PreInfinity: 2
|
|
m_PostInfinity: 2
|
|
m_RotationOrder: 4
|
|
- m_ExpressionIndex: 50
|
|
m_Value:
|
|
serializedVersion: 2
|
|
m_Curve:
|
|
- serializedVersion: 3
|
|
time: 0
|
|
value: 1.0038462
|
|
inSlope: -6.3051496
|
|
outSlope: -6.3051496
|
|
tangentMode: 0
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 0.22561646
|
|
value: 0.25
|
|
inSlope: -0.91662663
|
|
outSlope: -0.91662663
|
|
tangentMode: 0
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
- serializedVersion: 3
|
|
time: 1
|
|
value: 0
|
|
inSlope: 0
|
|
outSlope: 0
|
|
tangentMode: 0
|
|
weightedMode: 0
|
|
inWeight: 0
|
|
outWeight: 0
|
|
m_PreInfinity: 2
|
|
m_PostInfinity: 2
|
|
m_RotationOrder: 4
|
|
m_Gradient:
|
|
m_Array:
|
|
- m_ExpressionIndex: 53
|
|
m_Value:
|
|
serializedVersion: 2
|
|
key0: {r: 0, g: 84.04614, b: 118.035385, a: 0}
|
|
key1: {r: 0, g: 0.25335073, b: 1, a: 0.9577465}
|
|
key2: {r: 0, g: 0, b: 0, a: 0}
|
|
key3: {r: 0, g: 0, b: 0, a: 0}
|
|
key4: {r: 0, g: 0, b: 0, a: 0}
|
|
key5: {r: 0, g: 0, b: 0, a: 0}
|
|
key6: {r: 0, g: 0, b: 0, a: 0}
|
|
key7: {r: 0, g: 0, b: 0, a: 0}
|
|
ctime0: 0
|
|
ctime1: 65535
|
|
ctime2: 0
|
|
ctime3: 0
|
|
ctime4: 0
|
|
ctime5: 0
|
|
ctime6: 0
|
|
ctime7: 0
|
|
atime0: 0
|
|
atime1: 30421
|
|
atime2: 65535
|
|
atime3: 0
|
|
atime4: 0
|
|
atime5: 0
|
|
atime6: 0
|
|
atime7: 0
|
|
m_Mode: 0
|
|
m_NumColorKeys: 2
|
|
m_NumAlphaKeys: 3
|
|
- m_ExpressionIndex: 56
|
|
m_Value:
|
|
serializedVersion: 2
|
|
key0: {r: 1, g: 1, b: 1, a: 1}
|
|
key1: {r: 0.23529412, g: 0.23529412, b: 0.23529412, a: 1}
|
|
key2: {r: 0.24528301, g: 0.24528301, b: 0.24528301, a: 0}
|
|
key3: {r: 0, g: 0, b: 0, a: 0}
|
|
key4: {r: 0, g: 0, b: 0, a: 0}
|
|
key5: {r: 0, g: 0, b: 0, a: 0}
|
|
key6: {r: 0, g: 0, b: 0, a: 0}
|
|
key7: {r: 0, g: 0, b: 0, a: 0}
|
|
ctime0: 0
|
|
ctime1: 4190
|
|
ctime2: 65535
|
|
ctime3: 0
|
|
ctime4: 0
|
|
ctime5: 0
|
|
ctime6: 0
|
|
ctime7: 0
|
|
atime0: 0
|
|
atime1: 65535
|
|
atime2: 0
|
|
atime3: 0
|
|
atime4: 0
|
|
atime5: 0
|
|
atime6: 0
|
|
atime7: 0
|
|
m_Mode: 0
|
|
m_NumColorKeys: 3
|
|
m_NumAlphaKeys: 2
|
|
m_NamedObject:
|
|
m_Array:
|
|
- m_ExpressionIndex: 66
|
|
m_Value: {fileID: 2800000, guid: 7d2e355e4f9add247b4a419216ff7905, type: 3}
|
|
- m_ExpressionIndex: 73
|
|
m_Value: {fileID: 2800000, guid: 5b79b3ba349286e4eab50a1dd8372dd5, type: 3}
|
|
- m_ExpressionIndex: 75
|
|
m_Value: {fileID: 2800000, guid: 3b2e4e5390abe644c9047b94e1376065, type: 3}
|
|
- m_ExpressionIndex: 103
|
|
m_Value: {fileID: 2800000, guid: 04956966c0f1c634fbe9f8dd834892ed, type: 3}
|
|
- m_ExpressionIndex: 121
|
|
m_Value: {fileID: 2800000, guid: a184111ffd563d649847569fc38fd88a, type: 3}
|
|
- m_ExpressionIndex: 122
|
|
m_Value: {fileID: 2800000, guid: 3f0b27fa0a9267346b36465dc2808773, type: 3}
|
|
m_Bool:
|
|
m_Array: []
|
|
m_ExposedExpressions: []
|
|
m_Buffers:
|
|
- type: 1
|
|
size: 448
|
|
layout:
|
|
- name: position
|
|
type: 3
|
|
offset:
|
|
bucket: 0
|
|
structure: 4
|
|
element: 0
|
|
- name: size
|
|
type: 1
|
|
offset:
|
|
bucket: 256
|
|
structure: 2
|
|
element: 0
|
|
- name: angleZ
|
|
type: 1
|
|
offset:
|
|
bucket: 256
|
|
structure: 2
|
|
element: 1
|
|
- name: texIndex
|
|
type: 1
|
|
offset:
|
|
bucket: 384
|
|
structure: 1
|
|
element: 0
|
|
capacity: 64
|
|
stride: 4
|
|
- type: 1
|
|
size: 2048
|
|
layout:
|
|
- name: position
|
|
type: 3
|
|
offset:
|
|
bucket: 0
|
|
structure: 8
|
|
element: 0
|
|
- name: size
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 8
|
|
element: 3
|
|
- name: color
|
|
type: 3
|
|
offset:
|
|
bucket: 0
|
|
structure: 8
|
|
element: 4
|
|
- name: alpha
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 8
|
|
element: 7
|
|
capacity: 256
|
|
stride: 4
|
|
- type: 1
|
|
size: 256
|
|
layout:
|
|
- name: position
|
|
type: 3
|
|
offset:
|
|
bucket: 0
|
|
structure: 4
|
|
element: 0
|
|
- name: angleZ
|
|
type: 1
|
|
offset:
|
|
bucket: 128
|
|
structure: 2
|
|
element: 0
|
|
- name: seed
|
|
type: 6
|
|
offset:
|
|
bucket: 128
|
|
structure: 2
|
|
element: 1
|
|
- name: texIndex
|
|
type: 1
|
|
offset:
|
|
bucket: 192
|
|
structure: 1
|
|
element: 0
|
|
- name: particleId
|
|
type: 6
|
|
offset:
|
|
bucket: 224
|
|
structure: 1
|
|
element: 0
|
|
capacity: 32
|
|
stride: 4
|
|
- type: 1
|
|
size: 3840
|
|
layout:
|
|
- name: position
|
|
type: 3
|
|
offset:
|
|
bucket: 0
|
|
structure: 4
|
|
element: 0
|
|
- name: particleId
|
|
type: 6
|
|
offset:
|
|
bucket: 3072
|
|
structure: 1
|
|
element: 0
|
|
capacity: 768
|
|
stride: 4
|
|
- type: 1
|
|
size: 96
|
|
layout:
|
|
- name: lifetime
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
- name: alive
|
|
type: 17
|
|
offset:
|
|
bucket: 32
|
|
structure: 2
|
|
element: 0
|
|
- name: age
|
|
type: 1
|
|
offset:
|
|
bucket: 32
|
|
structure: 2
|
|
element: 1
|
|
capacity: 32
|
|
stride: 4
|
|
- type: 1
|
|
size: 144
|
|
layout:
|
|
- name: age
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 3
|
|
element: 0
|
|
- name: seed
|
|
type: 6
|
|
offset:
|
|
bucket: 0
|
|
structure: 3
|
|
element: 1
|
|
- name: rateCount_c
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 3
|
|
element: 2
|
|
- name: position
|
|
type: 3
|
|
offset:
|
|
bucket: 48
|
|
structure: 4
|
|
element: 0
|
|
- name: particleId
|
|
type: 6
|
|
offset:
|
|
bucket: 112
|
|
structure: 1
|
|
element: 0
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 128
|
|
structure: 1
|
|
element: 0
|
|
capacity: 16
|
|
stride: 4
|
|
- type: 1
|
|
size: 57344
|
|
layout:
|
|
- name: position
|
|
type: 3
|
|
offset:
|
|
bucket: 0
|
|
structure: 4
|
|
element: 0
|
|
- name: lifetime
|
|
type: 1
|
|
offset:
|
|
bucket: 32768
|
|
structure: 1
|
|
element: 0
|
|
- name: age
|
|
type: 1
|
|
offset:
|
|
bucket: 40960
|
|
structure: 1
|
|
element: 0
|
|
- name: alive
|
|
type: 17
|
|
offset:
|
|
bucket: 49152
|
|
structure: 1
|
|
element: 0
|
|
capacity: 8192
|
|
stride: 4
|
|
- type: 0
|
|
size: 64
|
|
layout: []
|
|
capacity: 0
|
|
stride: 4
|
|
- type: 2
|
|
size: 8192
|
|
layout: []
|
|
capacity: 0
|
|
stride: 4
|
|
- type: 1
|
|
size: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
capacity: 1
|
|
stride: 4
|
|
- type: 4
|
|
size: 64
|
|
layout: []
|
|
capacity: 0
|
|
stride: 4
|
|
- type: 0
|
|
size: 64
|
|
layout: []
|
|
capacity: 0
|
|
stride: 8
|
|
- type: 0
|
|
size: 64
|
|
layout: []
|
|
capacity: 0
|
|
stride: 8
|
|
- type: 1
|
|
size: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
capacity: 1
|
|
stride: 4
|
|
- type: 1
|
|
size: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
capacity: 1
|
|
stride: 4
|
|
- type: 4
|
|
size: 32
|
|
layout: []
|
|
capacity: 0
|
|
stride: 4
|
|
- type: 0
|
|
size: 32
|
|
layout: []
|
|
capacity: 0
|
|
stride: 8
|
|
- type: 0
|
|
size: 32
|
|
layout: []
|
|
capacity: 0
|
|
stride: 8
|
|
- type: 1
|
|
size: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
capacity: 1
|
|
stride: 4
|
|
- type: 1
|
|
size: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
capacity: 1
|
|
stride: 4
|
|
- type: 4
|
|
size: 32
|
|
layout: []
|
|
capacity: 0
|
|
stride: 4
|
|
- type: 1
|
|
size: 1
|
|
layout: []
|
|
capacity: 0
|
|
stride: 4
|
|
- type: 1
|
|
size: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
capacity: 1
|
|
stride: 4
|
|
- type: 4
|
|
size: 8192
|
|
layout: []
|
|
capacity: 0
|
|
stride: 4
|
|
- type: 1
|
|
size: 1
|
|
layout: []
|
|
capacity: 0
|
|
stride: 4
|
|
m_TemporaryBuffers: []
|
|
m_CPUBuffers:
|
|
- capacity: 1
|
|
stride: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
initialData:
|
|
data: 00000000
|
|
- capacity: 1
|
|
stride: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
initialData:
|
|
data: 00000000
|
|
- capacity: 1
|
|
stride: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
initialData:
|
|
data: 00000000
|
|
- capacity: 1
|
|
stride: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
initialData:
|
|
data: 00000000
|
|
- capacity: 1
|
|
stride: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
initialData:
|
|
data: 00000000
|
|
- capacity: 1
|
|
stride: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
initialData:
|
|
data: 00000000
|
|
- capacity: 1
|
|
stride: 1
|
|
layout:
|
|
- name: spawnCount
|
|
type: 1
|
|
offset:
|
|
bucket: 0
|
|
structure: 1
|
|
element: 0
|
|
initialData:
|
|
data: 00000000
|
|
m_Events:
|
|
- name: OnPlay
|
|
playSystems: 000000000100000002000000030000000400000005000000
|
|
stopSystems:
|
|
- name: OnStop
|
|
playSystems:
|
|
stopSystems: 000000000100000002000000030000000400000005000000
|
|
m_RuntimeVersion: 10
|
|
m_RendererSettings:
|
|
motionVectorGenerationMode: 0
|
|
shadowCastingMode: 0
|
|
receiveShadows: 0
|
|
reflectionProbeUsage: 0
|
|
lightProbeUsage: 0
|
|
m_CullingFlags: 3
|
|
m_UpdateMode: 0
|
|
m_PreWarmDeltaTime: 0.16
|
|
m_PreWarmStepCount: 100
|
|
m_InitialEventName: OnPlay
|
|
m_Systems:
|
|
- type: 0
|
|
flags: 0
|
|
capacity: 0
|
|
layer: 4294967295
|
|
buffers:
|
|
- nameId: spawner_output
|
|
index: 1
|
|
values: []
|
|
tasks:
|
|
- type: 268435457
|
|
buffers: []
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: Count
|
|
index: 89
|
|
- nameId: Delay
|
|
index: 98
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: -1
|
|
- type: 0
|
|
flags: 0
|
|
capacity: 0
|
|
layer: 4294967295
|
|
buffers:
|
|
- nameId: spawner_output
|
|
index: 2
|
|
values: []
|
|
tasks:
|
|
- type: 268435456
|
|
buffers: []
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: Rate
|
|
index: 90
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: -1
|
|
- type: 0
|
|
flags: 0
|
|
capacity: 0
|
|
layer: 4294967295
|
|
buffers:
|
|
- nameId: spawner_output
|
|
index: 3
|
|
values: []
|
|
tasks:
|
|
- type: 268435457
|
|
buffers: []
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: Count
|
|
index: 91
|
|
- nameId: Delay
|
|
index: 98
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: -1
|
|
- type: 0
|
|
flags: 0
|
|
capacity: 0
|
|
layer: 4294967295
|
|
buffers:
|
|
- nameId: spawner_output
|
|
index: 4
|
|
values: []
|
|
tasks:
|
|
- type: 268435457
|
|
buffers: []
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: Count
|
|
index: 93
|
|
- nameId: Delay
|
|
index: 98
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: -1
|
|
- type: 0
|
|
flags: 0
|
|
capacity: 0
|
|
layer: 4294967295
|
|
buffers:
|
|
- nameId: spawner_output
|
|
index: 5
|
|
values: []
|
|
tasks:
|
|
- type: 268435457
|
|
buffers: []
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: Count
|
|
index: 96
|
|
- nameId: Delay
|
|
index: 98
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: -1
|
|
- type: 0
|
|
flags: 0
|
|
capacity: 0
|
|
layer: 4294967295
|
|
buffers:
|
|
- nameId: spawner_output
|
|
index: 6
|
|
values: []
|
|
tasks:
|
|
- type: 268435457
|
|
buffers: []
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: Count
|
|
index: 78
|
|
- nameId: Delay
|
|
index: 98
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: -1
|
|
- type: 1
|
|
flags: 2
|
|
capacity: 64
|
|
layer: 4294967295
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 0
|
|
- nameId: sourceAttributeBuffer
|
|
index: 9
|
|
- nameId: spawner_input
|
|
index: 6
|
|
- nameId: indirectBuffer
|
|
index: 10
|
|
- nameId: sortBufferA
|
|
index: 11
|
|
- nameId: sortBufferB
|
|
index: 12
|
|
values:
|
|
- nameId: bounds_center
|
|
index: 26
|
|
- nameId: bounds_size
|
|
index: 97
|
|
tasks:
|
|
- type: 536870912
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 0
|
|
- nameId: sourceAttributeBuffer
|
|
index: 9
|
|
temporaryBuffers: []
|
|
values: []
|
|
params:
|
|
- nameId: bounds_center
|
|
index: 26
|
|
- nameId: bounds_size
|
|
index: 97
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 0
|
|
- type: 805306368
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 0
|
|
- nameId: indirectBuffer
|
|
index: 10
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: deltaTime_a
|
|
index: 36
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 1
|
|
- type: 805306369
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 0
|
|
- nameId: inputBuffer
|
|
index: 10
|
|
- nameId: outputBuffer
|
|
index: 11
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: localToWorld
|
|
index: 124
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 23
|
|
- type: 1073741830
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 0
|
|
- nameId: indirectBuffer
|
|
index: 10
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: baseColorMap
|
|
index: 122
|
|
- nameId: normalMap
|
|
index: 121
|
|
params:
|
|
- nameId: sortPriority
|
|
index: 0
|
|
- nameId: indirectDraw
|
|
index: 1
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 2
|
|
- type: 1
|
|
flags: 0
|
|
capacity: 256
|
|
layer: 4294967295
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 1
|
|
- nameId: sourceAttributeBuffer
|
|
index: 13
|
|
- nameId: spawner_input
|
|
index: 5
|
|
values:
|
|
- nameId: bounds_center
|
|
index: 95
|
|
- nameId: bounds_size
|
|
index: 94
|
|
tasks:
|
|
- type: 536870912
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 1
|
|
- nameId: sourceAttributeBuffer
|
|
index: 13
|
|
temporaryBuffers: []
|
|
values: []
|
|
params:
|
|
- nameId: bounds_center
|
|
index: 95
|
|
- nameId: bounds_size
|
|
index: 94
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 3
|
|
- type: 1073741825
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 1
|
|
temporaryBuffers: []
|
|
values: []
|
|
params:
|
|
- nameId: sortPriority
|
|
index: 4
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 6
|
|
- type: 1073741825
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 1
|
|
temporaryBuffers: []
|
|
values: []
|
|
params:
|
|
- nameId: sortPriority
|
|
index: 5
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 4
|
|
- type: 1073741825
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 1
|
|
temporaryBuffers: []
|
|
values: []
|
|
params:
|
|
- nameId: sortPriority
|
|
index: 6
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 5
|
|
- type: 1
|
|
flags: 2
|
|
capacity: 32
|
|
layer: 4294967295
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 2
|
|
- nameId: sourceAttributeBuffer
|
|
index: 14
|
|
- nameId: spawner_input
|
|
index: 4
|
|
- nameId: indirectBuffer
|
|
index: 15
|
|
- nameId: sortBufferA
|
|
index: 16
|
|
- nameId: sortBufferB
|
|
index: 17
|
|
values:
|
|
- nameId: bounds_center
|
|
index: 95
|
|
- nameId: bounds_size
|
|
index: 92
|
|
tasks:
|
|
- type: 536870912
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 2
|
|
- nameId: sourceAttributeBuffer
|
|
index: 14
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: uniform_b
|
|
index: 47
|
|
- nameId: uniform_c
|
|
index: 44
|
|
- nameId: uniform_d
|
|
index: 34
|
|
params:
|
|
- nameId: bounds_center
|
|
index: 95
|
|
- nameId: bounds_size
|
|
index: 92
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 7
|
|
- type: 805306368
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 2
|
|
- nameId: indirectBuffer
|
|
index: 15
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: deltaTime_a
|
|
index: 36
|
|
- nameId: uniform_c
|
|
index: 31
|
|
- nameId: uniform_d
|
|
index: 28
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 8
|
|
- type: 805306369
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 2
|
|
- nameId: inputBuffer
|
|
index: 15
|
|
- nameId: outputBuffer
|
|
index: 16
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: localToWorld
|
|
index: 124
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 24
|
|
- type: 1073741830
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 2
|
|
- nameId: indirectBuffer
|
|
index: 15
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: baseColorMap
|
|
index: 73
|
|
- nameId: normalMap
|
|
index: 121
|
|
params:
|
|
- nameId: sortPriority
|
|
index: 8
|
|
- nameId: indirectDraw
|
|
index: 1
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 12
|
|
- type: 1
|
|
flags: 0
|
|
capacity: 768
|
|
layer: 4294967295
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 3
|
|
- nameId: sourceAttributeBuffer
|
|
index: 18
|
|
- nameId: spawner_input
|
|
index: 3
|
|
values:
|
|
- nameId: bounds_center
|
|
index: 95
|
|
- nameId: bounds_size
|
|
index: 92
|
|
tasks:
|
|
- type: 536870912
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 3
|
|
- nameId: sourceAttributeBuffer
|
|
index: 18
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: uniform_b
|
|
index: 34
|
|
params:
|
|
- nameId: bounds_center
|
|
index: 95
|
|
- nameId: bounds_size
|
|
index: 92
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 9
|
|
- type: 805306368
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 3
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: uniform_b
|
|
index: 31
|
|
- nameId: uniform_c
|
|
index: 36
|
|
- nameId: uniform_d
|
|
index: 28
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 10
|
|
- type: 1073741826
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 3
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: Color_f
|
|
index: 105
|
|
- nameId: mainTexture
|
|
index: 103
|
|
params:
|
|
- nameId: sortPriority
|
|
index: 1
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 11
|
|
- type: 1073741826
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 3
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: uniform_b
|
|
index: 59
|
|
- nameId: uniform_c
|
|
index: 39
|
|
- nameId: uniform_d
|
|
index: 28
|
|
- nameId: mainTexture
|
|
index: 66
|
|
params:
|
|
- nameId: sortPriority
|
|
index: 7
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 13
|
|
- type: 1
|
|
flags: 1
|
|
capacity: 32
|
|
layer: 4294967295
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 4
|
|
- nameId: sourceAttributeBuffer
|
|
index: 19
|
|
- nameId: deadList
|
|
index: 20
|
|
- nameId: deadListCount
|
|
index: 21
|
|
- nameId: spawner_input
|
|
index: 2
|
|
values:
|
|
- nameId: bounds_center
|
|
index: 26
|
|
- nameId: bounds_size
|
|
index: 97
|
|
tasks:
|
|
- type: 536870912
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 4
|
|
- nameId: deadListIn
|
|
index: 20
|
|
- nameId: deadListCount
|
|
index: 21
|
|
- nameId: sourceAttributeBuffer
|
|
index: 19
|
|
temporaryBuffers: []
|
|
values: []
|
|
params:
|
|
- nameId: bounds_center
|
|
index: 26
|
|
- nameId: bounds_size
|
|
index: 97
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 14
|
|
- type: 805306368
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 4
|
|
- nameId: deadListOut
|
|
index: 20
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: deltaTime_a
|
|
index: 36
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 15
|
|
- type: 1073741830
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 4
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: gradient_d
|
|
index: 69
|
|
- nameId: mainTexture
|
|
index: 75
|
|
params:
|
|
- nameId: sortPriority
|
|
index: 0
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 16
|
|
- type: 1
|
|
flags: 0
|
|
capacity: 16
|
|
layer: 0
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 5
|
|
- nameId: sourceAttributeBuffer
|
|
index: 22
|
|
- nameId: spawner_input
|
|
index: 1
|
|
values:
|
|
- nameId: bounds_center
|
|
index: 26
|
|
- nameId: bounds_size
|
|
index: 97
|
|
tasks:
|
|
- type: 536870912
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 5
|
|
- nameId: sourceAttributeBuffer
|
|
index: 22
|
|
temporaryBuffers: []
|
|
values: []
|
|
params:
|
|
- nameId: bounds_center
|
|
index: 26
|
|
- nameId: bounds_size
|
|
index: 97
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 17
|
|
- type: 805306368
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 5
|
|
- nameId: eventListOut_a
|
|
index: 8
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: uniform_b
|
|
index: 5
|
|
- nameId: uniform_c
|
|
index: 6
|
|
- nameId: uniform_d
|
|
index: 4
|
|
- nameId: uniform_e
|
|
index: 19
|
|
- nameId: uniform_f
|
|
index: 17
|
|
- nameId: uniform_g
|
|
index: 18
|
|
- nameId: uniform_h
|
|
index: 28
|
|
- nameId: uniform_i
|
|
index: 36
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 18
|
|
- type: 1073741826
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 5
|
|
temporaryBuffers: []
|
|
values: []
|
|
params:
|
|
- nameId: sortPriority
|
|
index: 0
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 19
|
|
- type: 1
|
|
flags: 13
|
|
capacity: 8192
|
|
layer: 1
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 6
|
|
- nameId: sourceAttributeBuffer
|
|
index: 5
|
|
- nameId: eventList
|
|
index: 8
|
|
- nameId: deadList
|
|
index: 23
|
|
- nameId: deadListCount
|
|
index: 24
|
|
- nameId: stripDataBuffer
|
|
index: 7
|
|
values:
|
|
- nameId: stripCount
|
|
index: 16
|
|
- nameId: particlePerStripCount
|
|
index: 512
|
|
- nameId: bounds_center
|
|
index: 95
|
|
- nameId: bounds_size
|
|
index: 12
|
|
tasks:
|
|
- type: 536870912
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 6
|
|
- nameId: eventList
|
|
index: 8
|
|
- nameId: deadListIn
|
|
index: 23
|
|
- nameId: deadListCount
|
|
index: 24
|
|
- nameId: sourceAttributeBuffer
|
|
index: 5
|
|
- nameId: stripDataBuffer
|
|
index: 7
|
|
temporaryBuffers: []
|
|
values: []
|
|
params:
|
|
- nameId: bounds_center
|
|
index: 95
|
|
- nameId: bounds_size
|
|
index: 12
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 20
|
|
- type: 805306368
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 6
|
|
- nameId: deadListOut
|
|
index: 23
|
|
- nameId: stripDataBuffer
|
|
index: 7
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: deltaTime_a
|
|
index: 36
|
|
params: []
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 21
|
|
- type: 1073741826
|
|
buffers:
|
|
- nameId: attributeBuffer
|
|
index: 6
|
|
- nameId: stripDataBuffer
|
|
index: 7
|
|
temporaryBuffers: []
|
|
values:
|
|
- nameId: uniform_b
|
|
index: 60
|
|
params:
|
|
- nameId: sortPriority
|
|
index: 0
|
|
processor: {fileID: 0}
|
|
shaderSourceIndex: 22
|
|
--- !u!114 &8926484042661614956
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 486e063e1ed58c843942ea4122829ab1, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2771, y: -1573}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots: []
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661614957}
|
|
attribute: position
|
|
location: 0
|
|
mask: xyz
|
|
--- !u!114 &8926484042661614957
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661614958}
|
|
- {fileID: 8926484042661614959}
|
|
- {fileID: 8926484042661614960}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614957}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661614956}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The current position of the particle.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661614962}
|
|
- {fileID: 8926484042661615788}
|
|
--- !u!114 &8926484042661614958
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661614957}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614957}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661614959
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661614957}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614957}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661614960
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661614957}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614957}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661614961
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 016e81d0498fcc346ba22c57b5ca4556, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2554, y: -1441}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661614962}
|
|
- {fileID: 8926484042661614966}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661614970}
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
--- !u!114 &8926484042661614962
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661614963}
|
|
- {fileID: 8926484042661614964}
|
|
- {fileID: 8926484042661614965}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614962}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661614961}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: a
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The first operand.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661614957}
|
|
--- !u!114 &8926484042661614963
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661614962}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614962}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661614964
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661614962}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614962}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661614965
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661614962}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614962}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661614966
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661614967}
|
|
- {fileID: 8926484042661614968}
|
|
- {fileID: 8926484042661614969}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614966}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661614961}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: b
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The second operand.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661614967
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661614966}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614966}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661614968
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661614966}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614966}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661614969
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661614966}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614966}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661614970
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614970}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661614961}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: d
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The distance between a and b.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661614991}
|
|
--- !u!114 &8926484042661614989
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f8bcc906a6d398c46b18826714448709, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2254, y: -1447}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661614990}
|
|
- {fileID: 8926484042661614991}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661614992}
|
|
--- !u!114 &8926484042661614990
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: c117b74c5c58db542bffe25c78fe92db, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614990}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661614989}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":-0.0012791439658030868,"outTangent":-0.0012791439658030868,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.035693928599357608,"inTangent":0.0045147985219955448,"outTangent":0.0045147985219955448,"tangentMode":0,"leftTangentMode":1,"rightTangentMode":1,"broken":false},{"time":2.338639497756958,"value":0.0,"inTangent":-0.00043048118823207915,"outTangent":-0.00043048118823207915,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: curve
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the curve to sample from.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661614991
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614991}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661614989}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: time
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the time along the curve to take a sample from.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661614970}
|
|
--- !u!114 &8926484042661614992
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661614992}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661614989}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: s
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Outputs the sampled value from the curve at the specified time.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615810}
|
|
--- !u!114 &8926484042661615005
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 7d33fb94df928ef4c986f97607706b82, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2183, y: -1336}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots: []
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661615006}
|
|
m_expressionOp: 6
|
|
--- !u!114 &8926484042661615006
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615006}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615005}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: DeltaTime
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615811}
|
|
--- !u!114 &8926484042661615787
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: efe5507784567d94cb06850847d55e64, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -1783, y: -1490}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661615788}
|
|
- {fileID: 8926484042661615793}
|
|
- {fileID: 8926484042661615798}
|
|
- {fileID: 8926484042661615803}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661615804}
|
|
--- !u!114 &8926484042661615788
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661615789}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615788}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615787}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":1.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: Position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Position to Rotate
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661614957}
|
|
--- !u!114 &8926484042661615789
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615788}
|
|
m_Children:
|
|
- {fileID: 8926484042661615790}
|
|
- {fileID: 8926484042661615791}
|
|
- {fileID: 8926484042661615792}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615788}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615790
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615789}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615788}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615791
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615789}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615788}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615792
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615789}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615788}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615793
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661615794}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615793}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615787}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: RotationCenter
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Rotation Center
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615794
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615793}
|
|
m_Children:
|
|
- {fileID: 8926484042661615795}
|
|
- {fileID: 8926484042661615796}
|
|
- {fileID: 8926484042661615797}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615793}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615795
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615794}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615793}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615796
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615794}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615793}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615797
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615794}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615793}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615798
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: e8f2b4a846fd4c14a893cde576ad172b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661615799}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615798}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615787}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.DirectionType, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"direction":{"x":0.0,"y":1.0,"z":0.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: RotationAxis
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.DirectionType, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Rotation Axis
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615799
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615798}
|
|
m_Children:
|
|
- {fileID: 8926484042661615800}
|
|
- {fileID: 8926484042661615801}
|
|
- {fileID: 8926484042661615802}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615798}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: direction
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The normalized direction.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615800
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615799}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615798}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615801
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615799}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615798}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615802
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615799}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615798}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615803
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615803}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615787}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Angle
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Angle in Radians
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615812}
|
|
--- !u!114 &8926484042661615804
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661615805}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615804}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615787}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: Position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Rotated Position
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617433}
|
|
--- !u!114 &8926484042661615805
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615804}
|
|
m_Children:
|
|
- {fileID: 8926484042661615806}
|
|
- {fileID: 8926484042661615807}
|
|
- {fileID: 8926484042661615808}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615804}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615806
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615805}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615804}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615807
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615805}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615804}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615808
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615805}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615804}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615809
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -1958, y: -1426}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661615810}
|
|
- {fileID: 8926484042661615811}
|
|
- {fileID: 8926484042661617121}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661615812}
|
|
m_Operands:
|
|
- name: a
|
|
type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
- name: b
|
|
type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
- name: d
|
|
type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
--- !u!114 &8926484042661615810
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615810}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615809}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 1
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: a
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661614992}
|
|
--- !u!114 &8926484042661615811
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615811}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615809}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 1
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: b
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615006}
|
|
--- !u!114 &8926484042661615812
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615812}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615809}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name:
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615803}
|
|
--- !u!114 &8926484042661615815
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: efe5507784567d94cb06850847d55e64, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -1777, y: -1915}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661615816}
|
|
- {fileID: 8926484042661615821}
|
|
- {fileID: 8926484042661615826}
|
|
- {fileID: 8926484042661615831}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661615832}
|
|
--- !u!114 &8926484042661615816
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661615817}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615816}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615815}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":1.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: Position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Position to Rotate
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615843}
|
|
--- !u!114 &8926484042661615817
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615816}
|
|
m_Children:
|
|
- {fileID: 8926484042661615818}
|
|
- {fileID: 8926484042661615819}
|
|
- {fileID: 8926484042661615820}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615816}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615818
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615817}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615816}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615819
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615817}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615816}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615820
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615817}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615816}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615821
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661615822}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615821}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615815}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: RotationCenter
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Rotation Center
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615822
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615821}
|
|
m_Children:
|
|
- {fileID: 8926484042661615823}
|
|
- {fileID: 8926484042661615824}
|
|
- {fileID: 8926484042661615825}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615821}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615823
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615822}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615821}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615824
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615822}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615821}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615825
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615822}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615821}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615826
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: e8f2b4a846fd4c14a893cde576ad172b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661615827}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615826}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615815}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.DirectionType, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"direction":{"x":0.0,"y":1.0,"z":0.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: RotationAxis
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.DirectionType, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Rotation Axis
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615827
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615826}
|
|
m_Children:
|
|
- {fileID: 8926484042661615828}
|
|
- {fileID: 8926484042661615829}
|
|
- {fileID: 8926484042661615830}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615826}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: direction
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The normalized direction.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615828
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615827}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615826}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615829
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615827}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615826}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615830
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615827}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615826}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615831
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615831}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615815}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 32
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Angle
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Angle in Radians
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615885}
|
|
--- !u!114 &8926484042661615832
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661615833}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615832}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615815}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: Position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Rotated Position
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617437}
|
|
--- !u!114 &8926484042661615833
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615832}
|
|
m_Children:
|
|
- {fileID: 8926484042661615834}
|
|
- {fileID: 8926484042661615835}
|
|
- {fileID: 8926484042661615836}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615832}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615834
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615833}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615832}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615835
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615833}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615832}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615836
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615833}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615832}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615842
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 486e063e1ed58c843942ea4122829ab1, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2635, y: -1923}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots: []
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661615843}
|
|
attribute: position
|
|
location: 0
|
|
mask: xyz
|
|
--- !u!114 &8926484042661615843
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661615844}
|
|
- {fileID: 8926484042661615845}
|
|
- {fileID: 8926484042661615846}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615843}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615842}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The current position of the particle.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615816}
|
|
- {fileID: 8926484042661615873}
|
|
--- !u!114 &8926484042661615844
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615843}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615843}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615845
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615843}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615843}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615846
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615843}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615843}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615872
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b89d44d34b0b0ca4bb334636b7b2060a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2419, y: -1747}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 1
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661615873}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661615877}
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
--- !u!114 &8926484042661615873
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661615874}
|
|
- {fileID: 8926484042661615875}
|
|
- {fileID: 8926484042661615876}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615873}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615872}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The vector to be used in the length calculation.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615843}
|
|
--- !u!114 &8926484042661615874
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615873}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615873}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615875
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615873}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615873}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615876
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661615873}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615873}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615877
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615877}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615872}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: l
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The length of x.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615880}
|
|
--- !u!114 &8926484042661615878
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f8bcc906a6d398c46b18826714448709, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2193, y: -1800}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661615879}
|
|
- {fileID: 8926484042661615880}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661615881}
|
|
--- !u!114 &8926484042661615879
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: c117b74c5c58db542bffe25c78fe92db, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615879}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615878}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.8495014905929565,"value":0.25,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":3.398005962371826,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: curve
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the curve to sample from.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615880
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615880}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615878}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: time
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the time along the curve to take a sample from.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615877}
|
|
--- !u!114 &8926484042661615881
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615881}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615878}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: s
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Outputs the sampled value from the curve at the specified time.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615883}
|
|
--- !u!114 &8926484042661615882
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -1967, y: -1823}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661615883}
|
|
- {fileID: 8926484042661615884}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661615885}
|
|
m_Operands:
|
|
- name: a
|
|
type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
- name: b
|
|
type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
--- !u!114 &8926484042661615883
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615883}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615882}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 1
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: a
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615881}
|
|
--- !u!114 &8926484042661615884
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615884}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615882}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 24
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: b
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661615885
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661615885}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615882}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name:
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615831}
|
|
--- !u!114 &8926484042661617116
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: c42128e17c583714a909b4997c80c916, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2401, y: -1299}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617117}
|
|
- {fileID: 8926484042661617118}
|
|
- {fileID: 8926484042661617119}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617120}
|
|
seed: 0
|
|
constant: 1
|
|
--- !u!114 &8926484042661617117
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617117}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617116}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0.5
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: min
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the minimum range of the random value.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617118
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617118}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617116}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 2
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: max
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the maximum range of the random value.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617119
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: c52d920e7fff73b498050a6b3c4404ca, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617119}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617116}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: seed
|
|
m_serializedType:
|
|
m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the value used when determining the random number. Using the
|
|
same seed results in the same random number every time.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617120
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617120}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617116}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: r
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Outputs a random number between the min and max range.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617121}
|
|
--- !u!114 &8926484042661617121
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617121}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661615809}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 1
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: d
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617120}
|
|
--- !u!114 &8926484042661617384
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 9207a95457a3f994581249dbe0a3409d, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -995, y: -2270}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617385}
|
|
- {fileID: 8926484042661617390}
|
|
m_OutputSlots: []
|
|
m_Label:
|
|
m_Data: {fileID: 0}
|
|
m_InputFlowSlot:
|
|
- link: []
|
|
- link: []
|
|
m_OutputFlowSlot:
|
|
- link: []
|
|
m_Subgraph: {fileID: 8926484042661614526, guid: d69f18500559c9c46820b78ca852be69,
|
|
type: 3}
|
|
m_InputFlowNames:
|
|
- OnPlay
|
|
- OnStop
|
|
--- !u!114 &8926484042661617385
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: c82227d5759e296488798b1554a72a15, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617386}
|
|
- {fileID: 8926484042661617387}
|
|
- {fileID: 8926484042661617388}
|
|
- {fileID: 8926484042661617389}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617385}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617384}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"r":0.010241770185530186,"g":0.21678413450717927,"b":0.3260296881198883,"a":1.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Grid Color
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617386
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617385}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617385}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: r
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617387
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617385}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617385}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: g
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617388
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617385}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617385}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: b
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617389
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617385}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617385}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: a
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617390
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: c82227d5759e296488798b1554a72a15, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617391}
|
|
- {fileID: 8926484042661617392}
|
|
- {fileID: 8926484042661617393}
|
|
- {fileID: 8926484042661617394}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617390}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617384}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"r":0.33018869161605837,"g":0.33018869161605837,"b":0.33018869161605837,"a":1.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Cloud Colors
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617391
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617390}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617390}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: r
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617392
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617390}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617390}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: g
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617393
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617390}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617390}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: b
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617394
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617390}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617390}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: a
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617432
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 9207a95457a3f994581249dbe0a3409d, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -981, y: -1543}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617437}
|
|
- {fileID: 8926484042661617433}
|
|
- {fileID: 8926484042661617441}
|
|
- {fileID: 8926484042661617442}
|
|
m_OutputSlots: []
|
|
m_Label:
|
|
m_Data: {fileID: 0}
|
|
m_InputFlowSlot:
|
|
- link: []
|
|
- link: []
|
|
m_OutputFlowSlot:
|
|
- link: []
|
|
m_Subgraph: {fileID: 8926484042661614526, guid: 3623863759a0bbc4f800fe6989ae1942,
|
|
type: 3}
|
|
m_InputFlowNames:
|
|
- OnPlay
|
|
- OnStop
|
|
--- !u!114 &8926484042661617433
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617434}
|
|
- {fileID: 8926484042661617435}
|
|
- {fileID: 8926484042661617436}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617433}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617432}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Vortex Update Position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615804}
|
|
--- !u!114 &8926484042661617434
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617433}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617433}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617435
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617433}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617433}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617436
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617433}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617433}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617437
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617438}
|
|
- {fileID: 8926484042661617439}
|
|
- {fileID: 8926484042661617440}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617437}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617432}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Vortex Initial Position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661615832}
|
|
--- !u!114 &8926484042661617438
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617437}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617437}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617439
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617437}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617437}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617440
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617437}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617437}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617441
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: c117b74c5c58db542bffe25c78fe92db, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617441}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617432}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true},{"time":0.02850341796875,"value":0.140380859375,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true},{"time":0.059986814856529239,"value":-0.0019268393516540528,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true},{"time":0.0988793671131134,"value":0.9999962449073792,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true},{"time":0.1364503800868988,"value":0.0019203778356313706,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true},{"time":0.17930124700069428,"value":0.4634588062763214,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true},{"time":1.8402953147888184,"value":0.0,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true},{"time":1.8866136074066163,"value":0.0006221961812116206,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true},{"time":1.887563705444336,"value":1.0094962120056153,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true},{"time":1.912265419960022,"value":0.006165459752082825,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true},{"time":1.9597686529159547,"value":0.18909315764904023,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true},{"time":1.9892204999923707,"value":-0.007692709565162659,"inTangent":Infinity,"outTangent":Infinity,"tangentMode":0,"leftTangentMode":3,"rightTangentMode":3,"broken":true}],"preWrapMode":8,"postWrapMode":8,"version":1}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Corner Alpha Animation
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617442
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617442}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617432}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 180
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Corner Animation Period
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617443
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 73a13919d81fb7444849bae8b5c812a2, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children:
|
|
- {fileID: 8926484042661617861}
|
|
m_UIPosition: {x: -1601.9924, y: -610.39526}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots: []
|
|
m_OutputSlots: []
|
|
m_Label:
|
|
m_Data: {fileID: 0}
|
|
m_InputFlowSlot:
|
|
- link: []
|
|
- link: []
|
|
m_OutputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617446}
|
|
slotIndex: 0
|
|
loopDuration: 0
|
|
loopCount: 0
|
|
delayBeforeLoop: 0
|
|
delayAfterLoop: 0
|
|
--- !u!114 &8926484042661617446
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 9dfea48843f53fc438eabc12a3a30abc, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children:
|
|
- {fileID: 8926484042661617516}
|
|
m_UIPosition: {x: -1602, y: -216}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617447}
|
|
m_OutputSlots: []
|
|
m_Label:
|
|
m_Data: {fileID: 8926484042661617456}
|
|
m_InputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617443}
|
|
slotIndex: 0
|
|
m_OutputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617471}
|
|
slotIndex: 0
|
|
--- !u!114 &8926484042661617447
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 1b605c022ee79394a8a776c0869b3f9a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617448}
|
|
- {fileID: 8926484042661617452}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617447}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617446}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"center":{"x":0.0,"y":1.0,"z":0.0},"size":{"x":2.0,"y":3.0,"z":2.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: bounds
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The culling bounds of this system. The Visual Effect is only visible
|
|
if the bounding box specified here is visible to the camera.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617448
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617447}
|
|
m_Children:
|
|
- {fileID: 8926484042661617449}
|
|
- {fileID: 8926484042661617450}
|
|
- {fileID: 8926484042661617451}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617447}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: center
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the center of the box.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617449
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617448}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617447}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617450
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617448}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617447}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617451
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617448}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617447}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617452
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617447}
|
|
m_Children:
|
|
- {fileID: 8926484042661617453}
|
|
- {fileID: 8926484042661617454}
|
|
- {fileID: 8926484042661617455}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617447}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: size
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the size of the box along each axis.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617453
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617452}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617447}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617454
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617452}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617447}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617455
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617452}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617447}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617456
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: d78581a96eae8bf4398c282eb0b098bd, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
title:
|
|
m_Owners:
|
|
- {fileID: 8926484042661617446}
|
|
- {fileID: 8926484042661617471}
|
|
- {fileID: 8926484042661617473}
|
|
dataType: 0
|
|
capacity: 16
|
|
stripCapacity: 16
|
|
particlePerStripCount: 16
|
|
m_Space: 0
|
|
--- !u!114 &8926484042661617471
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 2dc095764ededfa4bb32fa602511ea4b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children:
|
|
- {fileID: 8926484042661617489}
|
|
- {fileID: 8926484042661617518}
|
|
- {fileID: 8926484042661617620}
|
|
m_UIPosition: {x: -1595, y: 179}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots: []
|
|
m_OutputSlots: []
|
|
m_Label:
|
|
m_Data: {fileID: 8926484042661617456}
|
|
m_InputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617446}
|
|
slotIndex: 0
|
|
m_OutputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617473}
|
|
slotIndex: 0
|
|
integration: 0
|
|
angularIntegration: 0
|
|
ageParticles: 1
|
|
reapParticles: 1
|
|
--- !u!114 &8926484042661617473
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: a0b9e6b9139e58d4c957ec54595da7d3, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children:
|
|
- {fileID: 8926484042661617618}
|
|
- {fileID: 8926484042661617477}
|
|
m_UIPosition: {x: -1602, y: 621}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617483}
|
|
- {fileID: 8926484042661617487}
|
|
- {fileID: 8926484042661617488}
|
|
m_OutputSlots: []
|
|
m_Label:
|
|
m_Data: {fileID: 8926484042661617456}
|
|
m_InputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617471}
|
|
slotIndex: 0
|
|
m_OutputFlowSlot:
|
|
- link: []
|
|
blendMode: 3
|
|
useAlphaClipping: 0
|
|
generateMotionVector: 0
|
|
m_SubOutputs:
|
|
- {fileID: 8926484042661617478}
|
|
cullMode: 0
|
|
zWriteMode: 0
|
|
zTestMode: 0
|
|
colorMapping: 0
|
|
uvMode: 0
|
|
useSoftParticle: 0
|
|
sortPriority: 0
|
|
sort: 0
|
|
indirectDraw: 0
|
|
castShadows: 0
|
|
useExposureWeight: 0
|
|
shaderGraph: {fileID: -5475051401550479605, guid: c8cd82ff2698f8e4eb4b505774d8a9a9,
|
|
type: 3}
|
|
shadergraphGUID: c8cd82ff2698f8e4eb4b505774d8a9a9
|
|
primitiveType: 1
|
|
useGeometryShader: 0
|
|
--- !u!114 &8926484042661617477
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: d16c6aeaef944094b9a1633041804207, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617473}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2309.8862, y: -420.1293}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots: []
|
|
m_OutputSlots: []
|
|
m_Disabled: 0
|
|
mode: 0
|
|
axes: 4
|
|
--- !u!114 &8926484042661617478
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 081ffb0090424ba4cb05370a42ead6b9, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
opaqueRenderQueue: 0
|
|
transparentRenderQueue: 1
|
|
--- !u!114 &8926484042661617483
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617484}
|
|
- {fileID: 8926484042661617485}
|
|
- {fileID: 8926484042661617486}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617483}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617473}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":12.0,"y":512.0,"z":1234.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: VFXColor
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617484
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617483}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617483}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617485
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617483}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617483}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617486
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617483}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617483}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617487
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617487}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617473}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 1
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: VFXAlpha
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617488
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617488}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617473}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0.9
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: _Threshold
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 0
|
|
m_Min: 0
|
|
m_Max: 1
|
|
m_Tooltip:
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617489
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617471}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617490}
|
|
m_OutputSlots: []
|
|
m_Disabled: 0
|
|
attribute: position
|
|
Composition: 0
|
|
Source: 0
|
|
Random: 0
|
|
channels: 6
|
|
--- !u!114 &8926484042661617490
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617491}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617490}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617489}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: Position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The current position of the particle.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617571}
|
|
--- !u!114 &8926484042661617491
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617490}
|
|
m_Children:
|
|
- {fileID: 8926484042661617492}
|
|
- {fileID: 8926484042661617493}
|
|
- {fileID: 8926484042661617494}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617490}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617492
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617491}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617490}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617493
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617491}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617490}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617494
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617491}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617490}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617495
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -1926, y: 97}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617566}
|
|
- {fileID: 8926484042661617499}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617571}
|
|
m_Operands:
|
|
- name: a
|
|
type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
- name: b
|
|
type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
--- !u!114 &8926484042661617499
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617500}
|
|
- {fileID: 8926484042661617501}
|
|
- {fileID: 8926484042661617502}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617499}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617495}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: b
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617540}
|
|
--- !u!114 &8926484042661617500
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617499}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617499}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617501
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617499}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617499}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617502
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617499}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617499}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617516
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617446}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617520}
|
|
- {fileID: 8926484042661617521}
|
|
m_OutputSlots: []
|
|
m_Disabled: 0
|
|
attribute: age
|
|
Composition: 0
|
|
Source: 0
|
|
Random: 2
|
|
channels: 6
|
|
--- !u!114 &8926484042661617518
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617471}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617519}
|
|
m_OutputSlots: []
|
|
m_Disabled: 0
|
|
attribute: age
|
|
Composition: 1
|
|
Source: 0
|
|
Random: 0
|
|
channels: 6
|
|
--- !u!114 &8926484042661617519
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617519}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617518}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Age
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: "The age of the particle. If a particle\u2019s age exceeds its lifetime,
|
|
it gets destroyed."
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617525}
|
|
--- !u!114 &8926484042661617520
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617520}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617516}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: A
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: "The age of the particle. If a particle\u2019s age exceeds its lifetime,
|
|
it gets destroyed."
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617521
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617521}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617516}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 32
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: B
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: "The age of the particle. If a particle\u2019s age exceeds its lifetime,
|
|
it gets destroyed."
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617522
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -1867, y: 371}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617523}
|
|
- {fileID: 8926484042661617524}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617525}
|
|
m_Operands:
|
|
- name: a
|
|
type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
- name: b
|
|
type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
--- !u!114 &8926484042661617523
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617523}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617522}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 1
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: a
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617532}
|
|
--- !u!114 &8926484042661617524
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617524}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617522}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 1
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: b
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617534}
|
|
--- !u!114 &8926484042661617525
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617525}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617522}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name:
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617519}
|
|
--- !u!114 &8926484042661617528
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: c42128e17c583714a909b4997c80c916, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2160, y: 332}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617529}
|
|
- {fileID: 8926484042661617530}
|
|
- {fileID: 8926484042661617531}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617532}
|
|
seed: 0
|
|
constant: 1
|
|
--- !u!114 &8926484042661617529
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617529}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617528}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0.1
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: min
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the minimum range of the random value.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617530
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617530}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617528}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0.4
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: max
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the maximum range of the random value.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617531
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: c52d920e7fff73b498050a6b3c4404ca, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617531}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617528}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: seed
|
|
m_serializedType:
|
|
m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the value used when determining the random number. Using the
|
|
same seed results in the same random number every time.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617532
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617532}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617528}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: r
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Outputs a random number between the min and max range.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617523}
|
|
--- !u!114 &8926484042661617533
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 7d33fb94df928ef4c986f97607706b82, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2062, y: 525}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots: []
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617534}
|
|
m_expressionOp: 6
|
|
--- !u!114 &8926484042661617534
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617534}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617533}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: DeltaTime
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617524}
|
|
--- !u!114 &8926484042661617535
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 955b0c175a6f3bb4582e92f3de8f0626, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2265, y: 177}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617536}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617540}
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
--- !u!114 &8926484042661617536
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617537}
|
|
- {fileID: 8926484042661617538}
|
|
- {fileID: 8926484042661617539}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617536}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617535}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":1.4500000476837159,"y":1.0,"z":1.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name:
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617537
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617536}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617536}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617538
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617536}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617536}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617539
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617536}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617536}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617540
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617541}
|
|
- {fileID: 8926484042661617542}
|
|
- {fileID: 8926484042661617543}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617540}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617535}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name:
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617499}
|
|
--- !u!114 &8926484042661617541
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617540}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617540}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617542
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617540}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617540}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617543
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617540}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617540}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617544
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: efe5507784567d94cb06850847d55e64, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2352, y: -49}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617545}
|
|
- {fileID: 8926484042661617550}
|
|
- {fileID: 8926484042661617555}
|
|
- {fileID: 8926484042661617560}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617561}
|
|
--- !u!114 &8926484042661617545
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617546}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617545}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617544}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":1.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: Position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Position to Rotate
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617614}
|
|
--- !u!114 &8926484042661617546
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617545}
|
|
m_Children:
|
|
- {fileID: 8926484042661617547}
|
|
- {fileID: 8926484042661617548}
|
|
- {fileID: 8926484042661617549}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617545}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617547
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617546}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617545}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617548
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617546}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617545}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617549
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617546}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617545}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617550
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617551}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617550}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617544}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: RotationCenter
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Rotation Center
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617551
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617550}
|
|
m_Children:
|
|
- {fileID: 8926484042661617552}
|
|
- {fileID: 8926484042661617553}
|
|
- {fileID: 8926484042661617554}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617550}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617552
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617551}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617550}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617553
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617551}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617550}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617554
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617551}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617550}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617555
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: e8f2b4a846fd4c14a893cde576ad172b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617556}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617555}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617544}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.DirectionType, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"direction":{"x":0.0,"y":1.0,"z":0.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: RotationAxis
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.DirectionType, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Rotation Axis
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617597}
|
|
--- !u!114 &8926484042661617556
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617555}
|
|
m_Children:
|
|
- {fileID: 8926484042661617557}
|
|
- {fileID: 8926484042661617558}
|
|
- {fileID: 8926484042661617559}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617555}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: direction
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The normalized direction.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617557
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617556}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617555}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617558
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617556}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617555}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617559
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617556}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617555}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617560
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617560}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617544}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Angle
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Angle in Radians
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617579}
|
|
--- !u!114 &8926484042661617561
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617562}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617561}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617544}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: Position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Rotated Position
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617566}
|
|
--- !u!114 &8926484042661617562
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617561}
|
|
m_Children:
|
|
- {fileID: 8926484042661617563}
|
|
- {fileID: 8926484042661617564}
|
|
- {fileID: 8926484042661617565}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617561}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617563
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617562}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617561}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617564
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617562}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617561}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617565
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617562}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617561}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617566
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617567}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617566}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617495}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":1.0,"y":1.0,"z":1.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: a
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617561}
|
|
--- !u!114 &8926484042661617567
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617566}
|
|
m_Children:
|
|
- {fileID: 8926484042661617568}
|
|
- {fileID: 8926484042661617569}
|
|
- {fileID: 8926484042661617570}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617566}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617568
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617567}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617566}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617569
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617567}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617566}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617570
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617567}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617566}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617571
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617572}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617571}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617495}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name:
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617490}
|
|
--- !u!114 &8926484042661617572
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617571}
|
|
m_Children:
|
|
- {fileID: 8926484042661617573}
|
|
- {fileID: 8926484042661617574}
|
|
- {fileID: 8926484042661617575}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617571}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: position
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The position.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617573
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617572}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617571}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617574
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617572}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617571}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617575
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617572}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617571}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617576
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2572, y: 203}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617577}
|
|
- {fileID: 8926484042661617578}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617579}
|
|
m_Operands:
|
|
- name: a
|
|
type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
- name: b
|
|
type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
--- !u!114 &8926484042661617577
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617577}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617576}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 1
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: a
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617583}
|
|
--- !u!114 &8926484042661617578
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617578}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617576}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0.1
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: b
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617579
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617579}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617576}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name:
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617560}
|
|
--- !u!114 &8926484042661617582
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 486e063e1ed58c843942ea4122829ab1, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2839, y: 200}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots: []
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617583}
|
|
attribute: age
|
|
location: 0
|
|
mask: xyz
|
|
--- !u!114 &8926484042661617583
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617583}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617582}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: age
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: "The age of the particle. If a particle\u2019s age exceeds its lifetime,
|
|
it gets destroyed."
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617577}
|
|
--- !u!114 &8926484042661617584
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: fa71feae8df37b6479bb8bc6ab99f797, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2839, y: -5}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617585}
|
|
- {fileID: 8926484042661617589}
|
|
- {fileID: 8926484042661617593}
|
|
- {fileID: 8926484042661617594}
|
|
- {fileID: 8926484042661617595}
|
|
- {fileID: 8926484042661617596}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617597}
|
|
m_Subgraph: {fileID: 5371698745253816930, guid: bfbffac5b9e601347ae9feb5d51931eb,
|
|
type: 3}
|
|
--- !u!114 &8926484042661617585
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617586}
|
|
- {fileID: 8926484042661617587}
|
|
- {fileID: 8926484042661617588}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617585}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617584}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":-0.10000000149011612,"y":1.0,"z":-0.10000000149011612}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: MinOutput
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617586
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617585}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617585}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617587
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617585}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617585}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617588
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617585}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617585}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617589
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617590}
|
|
- {fileID: 8926484042661617591}
|
|
- {fileID: 8926484042661617592}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617589}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617584}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":0.10000000149011612,"y":1.0,"z":0.10000000149011612}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: MaxOutput
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617590
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617589}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617589}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617591
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617589}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617589}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617592
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617589}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617589}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617593
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617593}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617584}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: True
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Normalized
|
|
m_serializedType:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617594
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617594}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617584}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: True
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Per-Particle
|
|
m_serializedType:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617595
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617595}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617584}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: True
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Constant
|
|
m_serializedType:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617596
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 4d246e354feb93041a837a9ef59437cb, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617596}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617584}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 456
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Seed
|
|
m_serializedType:
|
|
m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617597
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617598}
|
|
- {fileID: 8926484042661617599}
|
|
- {fileID: 8926484042661617600}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617597}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617584}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Output
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617555}
|
|
--- !u!114 &8926484042661617598
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617597}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617597}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617599
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617597}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617597}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617600
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617597}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617597}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617601
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: fa71feae8df37b6479bb8bc6ab99f797, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -2838, y: -211}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617602}
|
|
- {fileID: 8926484042661617606}
|
|
- {fileID: 8926484042661617610}
|
|
- {fileID: 8926484042661617611}
|
|
- {fileID: 8926484042661617612}
|
|
- {fileID: 8926484042661617613}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617614}
|
|
m_Subgraph: {fileID: 5371698745253816930, guid: bfbffac5b9e601347ae9feb5d51931eb,
|
|
type: 3}
|
|
--- !u!114 &8926484042661617602
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617603}
|
|
- {fileID: 8926484042661617604}
|
|
- {fileID: 8926484042661617605}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617602}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617601}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":-1.0,"y":-0.10000000149011612,"z":-1.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: MinOutput
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617603
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617602}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617602}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617604
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617602}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617602}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617605
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617602}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617602}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617606
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617607}
|
|
- {fileID: 8926484042661617608}
|
|
- {fileID: 8926484042661617609}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617606}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617601}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":1.0,"y":0.10000000149011612,"z":1.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: MaxOutput
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617607
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617606}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617606}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617608
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617606}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617606}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617609
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617606}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617606}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617610
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617610}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617601}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: False
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Normalized
|
|
m_serializedType:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617611
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617611}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617601}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: True
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Per-Particle
|
|
m_serializedType:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617612
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: b4c11ff25089a324daf359f4b0629b33, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617612}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617601}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: True
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Constant
|
|
m_serializedType:
|
|
m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617613
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 4d246e354feb93041a837a9ef59437cb, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617613}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617601}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 123
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Seed
|
|
m_serializedType:
|
|
m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617614
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617615}
|
|
- {fileID: 8926484042661617616}
|
|
- {fileID: 8926484042661617617}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617614}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617601}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Output
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617545}
|
|
--- !u!114 &8926484042661617615
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617614}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617614}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617616
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617614}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617614}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617617
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617614}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617614}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617618
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617473}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617619}
|
|
m_OutputSlots: []
|
|
m_Disabled: 0
|
|
attribute: size
|
|
Composition: 0
|
|
Source: 0
|
|
Random: 0
|
|
channels: 6
|
|
--- !u!114 &8926484042661617619
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617619}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617618}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0.01
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Size
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The uniform size of the particle.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617620
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 2af1b51cb5343364eb75bae8fceffd25, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617471}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617621}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617622}
|
|
m_Disabled: 0
|
|
mode: 0
|
|
clampToOne: 1
|
|
--- !u!114 &8926484042661617621
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617621}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617620}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 30
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Rate
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the rate of spawning particles via a GPU event based on the
|
|
selected mode.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617622
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 1b605c022ee79394a8a776c0869b3f9a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617622}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617620}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: evt
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Outputs a GPU event which can connect to another system via a GPUEvent
|
|
context. Attributes from the current system can be inherited in the new system.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617624}
|
|
--- !u!114 &8926484042661617623
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f42a6449da2296343af0d8536de8588a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -591, y: -376}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617624}
|
|
m_OutputSlots: []
|
|
m_Label:
|
|
m_Data: {fileID: 0}
|
|
m_InputFlowSlot:
|
|
- link: []
|
|
m_OutputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617625}
|
|
slotIndex: 0
|
|
--- !u!114 &8926484042661617624
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 1b605c022ee79394a8a776c0869b3f9a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617624}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617623}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: evt
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617622}
|
|
--- !u!114 &8926484042661617625
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 9dfea48843f53fc438eabc12a3a30abc, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children:
|
|
- {fileID: 8926484042661617654}
|
|
- {fileID: 8926484042661617655}
|
|
m_UIPosition: {x: -573, y: -129}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617626}
|
|
m_OutputSlots: []
|
|
m_Label:
|
|
m_Data: {fileID: 8926484042661617635}
|
|
m_InputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617623}
|
|
slotIndex: 0
|
|
m_OutputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617636}
|
|
slotIndex: 0
|
|
--- !u!114 &8926484042661617626
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 1b605c022ee79394a8a776c0869b3f9a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617627}
|
|
- {fileID: 8926484042661617631}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617626}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617625}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"center":{"x":0.0,"y":0.0,"z":0.0},"size":{"x":1.0,"y":1.0,"z":1.0}}'
|
|
m_Space: 0
|
|
m_Property:
|
|
name: bounds
|
|
m_serializedType:
|
|
m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor,
|
|
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The culling bounds of this system. The Visual Effect is only visible
|
|
if the bounding box specified here is visible to the camera.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617627
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617626}
|
|
m_Children:
|
|
- {fileID: 8926484042661617628}
|
|
- {fileID: 8926484042661617629}
|
|
- {fileID: 8926484042661617630}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617626}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: center
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the center of the box.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617628
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617627}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617626}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617629
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617627}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617626}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617630
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617627}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617626}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617631
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617626}
|
|
m_Children:
|
|
- {fileID: 8926484042661617632}
|
|
- {fileID: 8926484042661617633}
|
|
- {fileID: 8926484042661617634}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617626}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: size
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the size of the box along each axis.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617632
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617631}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617626}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617633
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617631}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617626}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617634
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617631}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617626}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617635
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: d78581a96eae8bf4398c282eb0b098bd, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
title:
|
|
m_Owners:
|
|
- {fileID: 8926484042661617625}
|
|
- {fileID: 8926484042661617636}
|
|
- {fileID: 8926484042661617644}
|
|
dataType: 1
|
|
capacity: 8192
|
|
stripCapacity: 16
|
|
particlePerStripCount: 512
|
|
m_Space: 0
|
|
--- !u!114 &8926484042661617636
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 2dc095764ededfa4bb32fa602511ea4b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -550, y: 307}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots: []
|
|
m_OutputSlots: []
|
|
m_Label:
|
|
m_Data: {fileID: 8926484042661617635}
|
|
m_InputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617625}
|
|
slotIndex: 0
|
|
m_OutputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617644}
|
|
slotIndex: 0
|
|
integration: 0
|
|
angularIntegration: 0
|
|
ageParticles: 1
|
|
reapParticles: 1
|
|
--- !u!114 &8926484042661617644
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 756b42789c29cb74085def1da319fa0b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children:
|
|
- {fileID: 8926484042661617657}
|
|
m_UIPosition: {x: -547, y: 539}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617648}
|
|
- {fileID: 8926484042661617649}
|
|
- {fileID: 8926484042661617653}
|
|
m_OutputSlots: []
|
|
m_Label:
|
|
m_Data: {fileID: 8926484042661617635}
|
|
m_InputFlowSlot:
|
|
- link:
|
|
- context: {fileID: 8926484042661617636}
|
|
slotIndex: 0
|
|
m_OutputFlowSlot:
|
|
- link: []
|
|
blendMode: 1
|
|
useAlphaClipping: 0
|
|
generateMotionVector: 0
|
|
m_SubOutputs:
|
|
- {fileID: 8926484042661617647}
|
|
cullMode: 0
|
|
zWriteMode: 0
|
|
zTestMode: 0
|
|
colorMapping: 0
|
|
uvMode: 0
|
|
useSoftParticle: 0
|
|
sortPriority: 0
|
|
sort: 0
|
|
indirectDraw: 0
|
|
castShadows: 0
|
|
useExposureWeight: 0
|
|
shaderGraph: {fileID: -5475051401550479605, guid: 3e9dc7cd34e49604bab11978b4a14481,
|
|
type: 3}
|
|
shadergraphGUID: 3e9dc7cd34e49604bab11978b4a14481
|
|
tilingMode: 0
|
|
swapUV: 0
|
|
UseCustomZAxis: 0
|
|
--- !u!114 &8926484042661617647
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 081ffb0090424ba4cb05370a42ead6b9, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
opaqueRenderQueue: 0
|
|
transparentRenderQueue: 1
|
|
--- !u!114 &8926484042661617648
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617648}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617644}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0.5
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: alphaThreshold
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 0
|
|
m_Min: 0
|
|
m_Max: 1
|
|
m_Tooltip:
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Alpha threshold used for pixel clipping
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617649
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617650}
|
|
- {fileID: 8926484042661617651}
|
|
- {fileID: 8926484042661617652}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617649}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617644}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: VFX_Color
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617664}
|
|
--- !u!114 &8926484042661617650
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617649}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617649}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617651
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617649}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617649}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617652
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617649}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617649}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617653
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617653}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617644}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 1
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: VFX_Alpha
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617858}
|
|
--- !u!114 &8926484042661617654
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617625}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 2}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots: []
|
|
m_OutputSlots: []
|
|
m_Disabled: 0
|
|
attribute: position
|
|
Composition: 0
|
|
Source: 1
|
|
Random: 0
|
|
channels: 6
|
|
--- !u!114 &8926484042661617655
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617625}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 42}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617656}
|
|
m_OutputSlots: []
|
|
m_Disabled: 0
|
|
attribute: lifetime
|
|
Composition: 0
|
|
Source: 0
|
|
Random: 0
|
|
channels: 6
|
|
--- !u!114 &8926484042661617656
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617656}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617655}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 16
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Lifetime
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: "Indicates how long the particle can stay alive. If the particle\u2019s
|
|
age exceeds its lifetime, the particle is destroyed."
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617657
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617644}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 2}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617658}
|
|
m_OutputSlots: []
|
|
m_Disabled: 0
|
|
attribute: size
|
|
Composition: 0
|
|
Source: 0
|
|
Random: 0
|
|
channels: 6
|
|
--- !u!114 &8926484042661617658
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617658}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617657}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0.005
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Size
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: The uniform size of the particle.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617659
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 955b0c175a6f3bb4582e92f3de8f0626, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -881, y: 609}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617660}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617664}
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
--- !u!114 &8926484042661617660
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617661}
|
|
- {fileID: 8926484042661617662}
|
|
- {fileID: 8926484042661617663}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617660}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617659}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"x":0.0,"y":14.910993576049805,"z":31.999996185302736}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name:
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617661
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617660}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617660}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617662
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617660}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617660}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617663
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617660}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617660}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617664
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children:
|
|
- {fileID: 8926484042661617665}
|
|
- {fileID: 8926484042661617666}
|
|
- {fileID: 8926484042661617667}
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617664}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617659}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name:
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617649}
|
|
--- !u!114 &8926484042661617665
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617664}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617664}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: x
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617666
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617664}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617664}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: y
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617667
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617664}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617664}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 0}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType:
|
|
m_SerializableObject:
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: z
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617855
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f8bcc906a6d398c46b18826714448709, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -822, y: 724}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617856}
|
|
- {fileID: 8926484042661617857}
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617858}
|
|
--- !u!114 &8926484042661617856
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: c117b74c5c58db542bffe25c78fe92db, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617856}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617855}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
m_SerializableObject: '{"frames":[{"time":0.0,"value":1.0038461685180665,"inTangent":-6.305149555206299,"outTangent":-6.305149555206299,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.225616455078125,"value":0.25,"inTangent":-0.9166266322135925,"outTangent":-0.9166266322135925,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}'
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: curve
|
|
m_serializedType:
|
|
m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0,
|
|
Culture=neutral, PublicKeyToken=null
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the curve to sample from.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617857
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617857}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617855}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: time
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the time along the curve to take a sample from.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617860}
|
|
--- !u!114 &8926484042661617858
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617858}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617855}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: s
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Outputs the sampled value from the curve at the specified time.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617653}
|
|
--- !u!114 &8926484042661617859
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: ba941214d319b454f90d5480e85886f2, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 114076616438245156}
|
|
m_Children: []
|
|
m_UIPosition: {x: -1058, y: 748}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots: []
|
|
m_OutputSlots:
|
|
- {fileID: 8926484042661617860}
|
|
--- !u!114 &8926484042661617860
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617860}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617859}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: t
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes: []
|
|
m_Direction: 1
|
|
m_LinkedSlots:
|
|
- {fileID: 8926484042661617857}
|
|
--- !u!114 &8926484042661617861
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 5e382412bb691334bb79457a6c127924, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 8926484042661617443}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 0
|
|
m_UISuperCollapsed: 0
|
|
m_InputSlots:
|
|
- {fileID: 8926484042661617862}
|
|
- {fileID: 8926484042661617863}
|
|
m_OutputSlots: []
|
|
m_Disabled: 0
|
|
repeat: 0
|
|
spawnMode: 0
|
|
delayMode: 0
|
|
--- !u!114 &8926484042661617862
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617862}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617861}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 16
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Count
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the number of particles to be spawned with each burst.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
- m_Type: 1
|
|
m_Min: 0
|
|
m_Max: Infinity
|
|
m_Tooltip:
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|
|
--- !u!114 &8926484042661617863
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
|
|
m_Name:
|
|
m_EditorClassIdentifier:
|
|
m_Parent: {fileID: 0}
|
|
m_Children: []
|
|
m_UIPosition: {x: 0, y: 0}
|
|
m_UICollapsed: 1
|
|
m_UISuperCollapsed: 0
|
|
m_MasterSlot: {fileID: 8926484042661617863}
|
|
m_MasterData:
|
|
m_Owner: {fileID: 8926484042661617861}
|
|
m_Value:
|
|
m_Type:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
m_SerializableObject: 0
|
|
m_Space: 2147483647
|
|
m_Property:
|
|
name: Delay
|
|
m_serializedType:
|
|
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
|
|
PublicKeyToken=b77a5c561934e089
|
|
attributes:
|
|
- m_Type: 3
|
|
m_Min: -Infinity
|
|
m_Max: Infinity
|
|
m_Tooltip: Sets the delay in seconds between each burst.
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
- m_Type: 1
|
|
m_Min: 0
|
|
m_Max: Infinity
|
|
m_Tooltip:
|
|
m_Regex:
|
|
m_RegexMaxLength: 0
|
|
m_Direction: 0
|
|
m_LinkedSlots: []
|