浏览代码

Fixes, Commenting and Optimizations to ARRadar and Genie FX

/main
Thomas ICHÉ 5 年前
当前提交
566517fc
共有 3 个文件被更改,包括 1469 次插入690 次删除
  1. 735
      Assets/Samples/ARRadar/ARRadar.vfx
  2. 522
      Assets/Samples/GenieMagicLamp/VFX/GenieFX.vfx
  3. 902
      Assets/Samples/GenieMagicLamp/VFX/SandFX.vfx

735
Assets/Samples/ARRadar/ARRadar.vfx
文件差异内容过多而无法显示
查看文件

522
Assets/Samples/GenieMagicLamp/VFX/GenieFX.vfx


- {fileID: 114946465509916290}
- {fileID: 114780028408030698}
- {fileID: 114063133802684794}
m_Capacity: 320000
m_Capacity: 30000
m_Space: 1
--- !u!114 &114512514798047786
MonoBehaviour:

\ }\n \n\n\n#if VFX_USE_ALIVE_CURRENT\n if (alive)\n {\n\t\t\tuint
deadIndex = deadListIn.DecrementCounter();\n uint index = deadListIn[deadIndex];\n
\ attributeBuffer.Store((index * 0x1 + 0x0) << 2,asuint(lifetime));\n
\ attributeBuffer.Store3((index * 0x8 + 0x4E200) << 2,asuint(position));\n
\ attributeBuffer.Store3((index * 0x4 + 0x2BF200) << 2,asuint(velocity));\n
\ attributeBuffer.Store((index * 0x3 + 0x3F7A00) << 2,asuint(size));\n
\ attributeBuffer.Store((index * 0x3 + 0x3F7A01) << 2,asuint(scaleX));\n
\ attributeBuffer.Store((index * 0x3 + 0x3F7A02) << 2,asuint(scaleY));\n
\ attributeBuffer.Store((index * 0x8 + 0x4E203) << 2,asuint(age));\n
\ attributeBuffer.Store((index * 0x8 + 0x4E204) << 2,uint(alive));\n
\ attributeBuffer.Store((index * 0x4 + 0x2BF203) << 2,asuint(particleId));\n
\ attributeBuffer.Store3((index * 0x4 + 0x4E2000) << 2,asuint(oldPosition));\n
\ attributeBuffer.Store3((index * 0x8 + 0x7540) << 2,asuint(position));\n
\ attributeBuffer.Store3((index * 0x4 + 0x41F40) << 2,asuint(velocity));\n
\ attributeBuffer.Store((index * 0x3 + 0x5F440) << 2,asuint(size));\n
\ attributeBuffer.Store((index * 0x3 + 0x5F441) << 2,asuint(scaleX));\n
\ attributeBuffer.Store((index * 0x3 + 0x5F442) << 2,asuint(scaleY));\n
\ attributeBuffer.Store((index * 0x8 + 0x7543) << 2,asuint(age));\n
\ attributeBuffer.Store((index * 0x8 + 0x7544) << 2,uint(alive));\n
\ attributeBuffer.Store((index * 0x4 + 0x41F43) << 2,asuint(particleId));\n
\ attributeBuffer.Store3((index * 0x4 + 0x75400) << 2,asuint(oldPosition));\n
* 0x8 + 0x4E200) << 2,asuint(position));\n attributeBuffer.Store3((index
* 0x4 + 0x2BF200) << 2,asuint(velocity));\n attributeBuffer.Store((index
* 0x3 + 0x3F7A00) << 2,asuint(size));\n attributeBuffer.Store((index
* 0x3 + 0x3F7A01) << 2,asuint(scaleX));\n attributeBuffer.Store((index
* 0x3 + 0x3F7A02) << 2,asuint(scaleY));\n attributeBuffer.Store((index
* 0x8 + 0x4E203) << 2,asuint(age));\n attributeBuffer.Store((index *
0x8 + 0x4E204) << 2,uint(alive));\n attributeBuffer.Store((index * 0x4
+ 0x2BF203) << 2,asuint(particleId));\n attributeBuffer.Store3((index
* 0x4 + 0x4E2000) << 2,asuint(oldPosition));\n \n\n#endif\n }\n}\n"
* 0x8 + 0x7540) << 2,asuint(position));\n attributeBuffer.Store3((index
* 0x4 + 0x41F40) << 2,asuint(velocity));\n attributeBuffer.Store((index
* 0x3 + 0x5F440) << 2,asuint(size));\n attributeBuffer.Store((index *
0x3 + 0x5F441) << 2,asuint(scaleX));\n attributeBuffer.Store((index *
0x3 + 0x5F442) << 2,asuint(scaleY));\n attributeBuffer.Store((index *
0x8 + 0x7543) << 2,asuint(age));\n attributeBuffer.Store((index * 0x8
+ 0x7544) << 2,uint(alive));\n attributeBuffer.Store((index * 0x4 + 0x41F43)
<< 2,asuint(particleId));\n attributeBuffer.Store3((index * 0x4 + 0x75400)
<< 2,asuint(oldPosition));\n \n\n#endif\n }\n}\n"
- compute: 1
name: '[System 1]Update'
source: "#pragma kernel CSMain\n#include \"HLSLSupport.cginc\"\n#define NB_THREADS_PER_GROUP

groupId : SV_GroupID,\n uint3 groupThreadId : SV_GroupThreadID)\n{\n\tuint
id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP + groupId.y * dispatchWidth
* NB_THREADS_PER_GROUP;\n\tuint index = id;\n\tif (id < nbMax)\n\t{\n#if VFX_USE_ALIVE_CURRENT\n\t\tbool
alive = (attributeBuffer.Load((index * 0x8 + 0x4E204) << 2));\n\t\t\n\n\t\tif
alive = (attributeBuffer.Load((index * 0x8 + 0x7544) << 2));\n\t\t\n\n\t\tif
* 0x8 + 0x4E200) << 2));\n\t\t\tfloat3 velocity = asfloat(attributeBuffer.Load3((index
* 0x4 + 0x2BF200) << 2));\n\t\t\tfloat age = asfloat(attributeBuffer.Load((index
* 0x8 + 0x4E203) << 2));\n\t\t\tuint eventCount_a = 0u;\n\t\t\tuint eventCount
= (uint)0;\n\t\t\tuint particleId = (attributeBuffer.Load((index * 0x4 + 0x2BF203)
* 0x8 + 0x7540) << 2));\n\t\t\tfloat3 velocity = asfloat(attributeBuffer.Load3((index
* 0x4 + 0x41F40) << 2));\n\t\t\tfloat age = asfloat(attributeBuffer.Load((index
* 0x8 + 0x7543) << 2));\n\t\t\tuint eventCount_a = 0u;\n\t\t\tuint eventCount
= (uint)0;\n\t\t\tuint particleId = (attributeBuffer.Load((index * 0x4 + 0x41F43)
+ 0x4E2000) << 2));\n\t\t\t\n\n\t\t\t\n#if VFX_USE_OLDPOSITION_CURRENT\n\t\t\toldPosition
+ 0x75400) << 2));\n\t\t\t\n\n\t\t\t\n#if VFX_USE_OLDPOSITION_CURRENT\n\t\t\toldPosition
= position;\n#endif\n\t\t\t\n\t\t\t{\n\t\t\t float tmp_bp = age / lifetime;\n\t\t\t
\ float tmp_bq = FixedRand(particleId ^ asuint(uniform_c));\n\t\t\t float
tmp_bs = tmp_bq * (float)0.1;\n\t\t\t float tmp_bt = tmp_bp - tmp_bs;\n\t\t\t

*/eventCount, (uint)1, deltaTime_c);\n\t\t\t eventCount_a += eventCount;\n\t\t\t}\n\t\t\tEulerIntegration(
/*inout */position, velocity, deltaTime_c);\n\t\t\tAge( /*inout */age, deltaTime_c);\n\t\t\tReap(age,
lifetime, /*inout */alive);\n\t\t\t\n\n\t\t\tif (alive)\n\t\t\t{\n\t\t\t\tattributeBuffer.Store3((index
* 0x8 + 0x4E200) << 2,asuint(position));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x4E203) << 2,asuint(age));\n\t\t\t\tattributeBuffer.Store3((index *
0x4 + 0x4E2000) << 2,asuint(oldPosition));\n\t\t\t\tfor (uint i = 0; i < eventCount_a;
* 0x8 + 0x7540) << 2,asuint(position));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x7543) << 2,asuint(age));\n\t\t\t\tattributeBuffer.Store3((index *
0x4 + 0x75400) << 2,asuint(oldPosition));\n\t\t\t\tfor (uint i = 0; i < eventCount_a;
* 0x8 + 0x4E204) << 2,uint(alive));\n\t\t\t\tfor (uint i = 0; i < eventCount_a;
* 0x8 + 0x7544) << 2,uint(alive));\n\t\t\t\tfor (uint i = 0; i < eventCount_a;
* 0x8 + 0x4E200) << 2));\n\t\tfloat3 velocity = asfloat(attributeBuffer.Load3((index
* 0x4 + 0x2BF200) << 2));\n\t\tfloat age = asfloat(attributeBuffer.Load((index
* 0x8 + 0x4E203) << 2));\n\t\tbool alive = (attributeBuffer.Load((index * 0x8
+ 0x4E204) << 2));\n\t\tuint eventCount_a = 0u;\n\t\tuint eventCount = (uint)0;\n\t\tuint
particleId = (attributeBuffer.Load((index * 0x4 + 0x2BF203) << 2));\n\t\tfloat3
oldPosition = asfloat(attributeBuffer.Load3((index * 0x4 + 0x4E2000) << 2));\n\t\t\n\n\t\t\n#if
* 0x8 + 0x7540) << 2));\n\t\tfloat3 velocity = asfloat(attributeBuffer.Load3((index
* 0x4 + 0x41F40) << 2));\n\t\tfloat age = asfloat(attributeBuffer.Load((index
* 0x8 + 0x7543) << 2));\n\t\tbool alive = (attributeBuffer.Load((index * 0x8
+ 0x7544) << 2));\n\t\tuint eventCount_a = 0u;\n\t\tuint eventCount = (uint)0;\n\t\tuint
particleId = (attributeBuffer.Load((index * 0x4 + 0x41F43) << 2));\n\t\tfloat3
oldPosition = asfloat(attributeBuffer.Load3((index * 0x4 + 0x75400) << 2));\n\t\t\n\n\t\t\n#if
VFX_USE_OLDPOSITION_CURRENT\n\t\toldPosition = position;\n#endif\n\t\t\n\t\t{\n\t\t
\ float tmp_bp = age / lifetime;\n\t\t float tmp_bq = FixedRand(particleId
^ asuint(uniform_c));\n\t\t float tmp_bs = tmp_bq * (float)0.1;\n\t\t float

(uint)1, deltaTime_c);\n\t\t eventCount_a += eventCount;\n\t\t}\n\t\tEulerIntegration(
/*inout */position, velocity, deltaTime_c);\n\t\tAge( /*inout */age, deltaTime_c);\n\t\tReap(age,
lifetime, /*inout */alive);\n\t\t\n\n\t\tattributeBuffer.Store3((index * 0x8
+ 0x4E200) << 2,asuint(position));\n\t\tattributeBuffer.Store((index * 0x8 +
0x4E203) << 2,asuint(age));\n\t\tattributeBuffer.Store((index * 0x8 + 0x4E204)
<< 2,uint(alive));\n\t\tattributeBuffer.Store3((index * 0x4 + 0x4E2000) << 2,asuint(oldPosition));\n\t\tfor
+ 0x7540) << 2,asuint(position));\n\t\tattributeBuffer.Store((index * 0x8 +
0x7543) << 2,asuint(age));\n\t\tattributeBuffer.Store((index * 0x8 + 0x7544)
<< 2,uint(alive));\n\t\tattributeBuffer.Store3((index * 0x4 + 0x75400) << 2,asuint(oldPosition));\n\t\tfor
(uint i = 0; i < eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\n\n#if
VFX_HAS_INDIRECT_DRAW\n uint indirectIndex = indirectBuffer.IncrementCounter();\n\t\tindirectBuffer[indirectIndex]
= index;\n#endif\n#endif\n\t}\n}\n"

- deadCount)\n\t\t\t\t\t\t\treturn o; // cull\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\tfloat
lifetime = asfloat(attributeBuffer.Load((index * 0x1 + 0x0) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E200) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x3 + 0x3F7A00) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x3 + 0x3F7A01) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x3 + 0x3F7A02) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x4E203) << 2));\n\t\t\t\t\t\tbool
alive = (attributeBuffer.Load((index * 0x8 + 0x4E204) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x7540) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x3 + 0x5F440) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x3 + 0x5F441) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x3 + 0x5F442) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x7543) << 2));\n\t\t\t\t\t\tbool
alive = (attributeBuffer.Load((index * 0x8 + 0x7544) << 2));\n\t\t\t\t\t\tfloat3
color = float3(1,1,1);\n\t\t\t\t\t\tfloat alpha = (float)1;\n\t\t\t\t\t\tfloat3
axisX = float3(1,0,0);\n\t\t\t\t\t\tfloat3 axisY = float3(0,1,0);\n\t\t\t\t\t\tfloat3
axisZ = float3(0,0,1);\n\t\t\t\t\t\tfloat angleX = (float)0;\n\t\t\t\t\t\tfloat

oldPosition = asfloat(attributeBuffer.Load3((index * 0x4 + 0x4E2000) << 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\tbool
alive = (attributeBuffer.Load((index * 0x8 + 0x4E204) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tif
oldPosition = asfloat(attributeBuffer.Load3((index * 0x4 + 0x75400) << 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\tbool
alive = (attributeBuffer.Load((index * 0x8 + 0x7544) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tif
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E200) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x3 + 0x3F7A00) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x3 + 0x3F7A01) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x3 + 0x3F7A02) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x4E203) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x7540) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x3 + 0x5F440) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x3 + 0x5F441) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x3 + 0x5F442) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x7543) << 2));\n\t\t\t\t\t\tfloat3
color = float3(1,1,1);\n\t\t\t\t\t\tfloat alpha = (float)1;\n\t\t\t\t\t\tfloat3
axisX = float3(1,0,0);\n\t\t\t\t\t\tfloat3 axisY = float3(0,1,0);\n\t\t\t\t\t\tfloat3
axisZ = float3(0,0,1);\n\t\t\t\t\t\tfloat angleX = (float)0;\n\t\t\t\t\t\tfloat

oldPosition = asfloat(attributeBuffer.Load3((index * 0x4 + 0x4E2000) << 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\tOrient_1(
oldPosition = asfloat(attributeBuffer.Load3((index * 0x4 + 0x75400) << 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\tOrient_1(
/*inout */axisX, /*inout */axisY, /*inout */axisZ, position);\n\t\t\t\tColorOverLife_733E3(age,
lifetime, /*inout */color, /*inout */alpha, gradient_b);\n\t\t\t\tAttributeFromCurve_8BB145A3(
/*inout */scaleX, /*inout */scaleY, age, lifetime, Scale_x_c, Scale_x_c);\n\t\t\t\tSetAttribute_545F0ED(

VFX_USE_ALIVE_CURRENT\n if (alive)\n {\n\t\t\tuint deadIndex =
deadListIn.DecrementCounter();\n uint index = deadListIn[deadIndex];\n
\ attributeBuffer.Store((index * 0x1 + 0x0) << 2,asuint(lifetime));\n
\ attributeBuffer.Store3((index * 0x4 + 0x4E200) << 2,asuint(position));\n
\ attributeBuffer.Store3((index * 0x4 + 0x186A00) << 2,asuint(velocity));\n
\ attributeBuffer.Store((index * 0x2 + 0x2BF200) << 2,asuint(size));\n
\ attributeBuffer.Store((index * 0x2 + 0x2BF201) << 2,asuint(alpha));\n
\ attributeBuffer.Store((index * 0x3 + 0x35B600) << 2,asuint(texIndex));\n
\ attributeBuffer.Store((index * 0x3 + 0x35B601) << 2,asuint(age));\n
\ attributeBuffer.Store((index * 0x4 + 0x186A03) << 2,asuint(particleId));\n
\ attributeBuffer.Store((index * 0x3 + 0x35B602) << 2,uint(alive));\n
\ attributeBuffer.Store3((index * 0x4 + 0x80) << 2,asuint(position));\n
\ attributeBuffer.Store3((index * 0x4 + 0x280) << 2,asuint(velocity));\n
\ attributeBuffer.Store((index * 0x2 + 0x480) << 2,asuint(size));\n
\ attributeBuffer.Store((index * 0x2 + 0x481) << 2,asuint(alpha));\n
\ attributeBuffer.Store((index * 0x3 + 0x580) << 2,asuint(texIndex));\n
\ attributeBuffer.Store((index * 0x3 + 0x581) << 2,asuint(age));\n
\ attributeBuffer.Store((index * 0x4 + 0x283) << 2,asuint(particleId));\n
\ attributeBuffer.Store((index * 0x3 + 0x582) << 2,uint(alive));\n
* 0x4 + 0x4E200) << 2,asuint(position));\n attributeBuffer.Store3((index
* 0x4 + 0x186A00) << 2,asuint(velocity));\n attributeBuffer.Store((index
* 0x2 + 0x2BF200) << 2,asuint(size));\n attributeBuffer.Store((index
* 0x2 + 0x2BF201) << 2,asuint(alpha));\n attributeBuffer.Store((index
* 0x3 + 0x35B600) << 2,asuint(texIndex));\n attributeBuffer.Store((index
* 0x3 + 0x35B601) << 2,asuint(age));\n attributeBuffer.Store((index *
0x4 + 0x186A03) << 2,asuint(particleId));\n attributeBuffer.Store((index
* 0x3 + 0x35B602) << 2,uint(alive));\n \n\n#endif\n }\n}\n"
* 0x4 + 0x80) << 2,asuint(position));\n attributeBuffer.Store3((index
* 0x4 + 0x280) << 2,asuint(velocity));\n attributeBuffer.Store((index
* 0x2 + 0x480) << 2,asuint(size));\n attributeBuffer.Store((index * 0x2
+ 0x481) << 2,asuint(alpha));\n attributeBuffer.Store((index * 0x3 +
0x580) << 2,asuint(texIndex));\n attributeBuffer.Store((index * 0x3 +
0x581) << 2,asuint(age));\n attributeBuffer.Store((index * 0x4 + 0x283)
<< 2,asuint(particleId));\n attributeBuffer.Store((index * 0x3 + 0x582)
<< 2,uint(alive));\n \n\n#endif\n }\n}\n"
- compute: 1
name: '[System 2]Update'
source: "#pragma kernel CSMain\n#include \"HLSLSupport.cginc\"\n#define NB_THREADS_PER_GROUP

groupId : SV_GroupID,\n uint3 groupThreadId : SV_GroupThreadID)\n{\n\tuint
id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP + groupId.y * dispatchWidth
* NB_THREADS_PER_GROUP;\n\tuint index = id;\n\tif (id < nbMax)\n\t{\n#if VFX_USE_ALIVE_CURRENT\n\t\tbool
alive = (attributeBuffer.Load((index * 0x3 + 0x35B602) << 2));\n\t\t\n\n\t\tif
alive = (attributeBuffer.Load((index * 0x3 + 0x582) << 2));\n\t\t\n\n\t\tif
* 0x4 + 0x4E200) << 2));\n\t\t\tfloat3 velocity = asfloat(attributeBuffer.Load3((index
* 0x4 + 0x186A00) << 2));\n\t\t\tfloat texIndex = asfloat(attributeBuffer.Load((index
* 0x3 + 0x35B600) << 2));\n\t\t\tfloat age = asfloat(attributeBuffer.Load((index
* 0x3 + 0x35B601) << 2));\n\t\t\tuint particleId = (attributeBuffer.Load((index
* 0x4 + 0x186A03) << 2));\n\t\t\t\n\n\t\t\t\n#if VFX_USE_OLDPOSITION_CURRENT\n\t\t\toldPosition
* 0x4 + 0x80) << 2));\n\t\t\tfloat3 velocity = asfloat(attributeBuffer.Load3((index
* 0x4 + 0x280) << 2));\n\t\t\tfloat texIndex = asfloat(attributeBuffer.Load((index
* 0x3 + 0x580) << 2));\n\t\t\tfloat age = asfloat(attributeBuffer.Load((index
* 0x3 + 0x581) << 2));\n\t\t\tuint particleId = (attributeBuffer.Load((index
* 0x4 + 0x283) << 2));\n\t\t\t\n\n\t\t\t\n#if VFX_USE_OLDPOSITION_CURRENT\n\t\t\toldPosition
= position;\n#endif\n\t\t\t\n\t\t\tFlipbookPlay_1( /*inout */texIndex, age,
lifetime, FrameRate_a, deltaTime_a);\n\t\t\t{\n\t\t\t float tmp_bg = age
/ lifetime;\n\t\t\t float tmp_bh = FixedRand(particleId ^ asuint(uniform_e));\n\t\t\t

*/position, tmp_cf);\n\t\t\t}\n\t\t\tEulerIntegration( /*inout */position, velocity,
deltaTime_a);\n\t\t\tAge( /*inout */age, deltaTime_a);\n\t\t\tReap(age, lifetime,
\ /*inout */alive);\n\t\t\t\n\n\t\t\tif (alive)\n\t\t\t{\n\t\t\t\tattributeBuffer.Store3((index
* 0x4 + 0x4E200) << 2,asuint(position));\n\t\t\t\tattributeBuffer.Store((index
* 0x3 + 0x35B600) << 2,asuint(texIndex));\n\t\t\t\tattributeBuffer.Store((index
* 0x3 + 0x35B601) << 2,asuint(age));\n\t\t\t\t\n\n#if VFX_HAS_INDIRECT_DRAW\n
\ uint indirectIndex = indirectBuffer.IncrementCounter();\n\t\t\t\tindirectBuffer[indirectIndex]
* 0x4 + 0x80) << 2,asuint(position));\n\t\t\t\tattributeBuffer.Store((index
* 0x3 + 0x580) << 2,asuint(texIndex));\n\t\t\t\tattributeBuffer.Store((index
* 0x3 + 0x581) << 2,asuint(age));\n\t\t\t\t\n\n#if VFX_HAS_INDIRECT_DRAW\n uint
indirectIndex = indirectBuffer.IncrementCounter();\n\t\t\t\tindirectBuffer[indirectIndex]
* 0x3 + 0x35B602) << 2,uint(alive));\n\t\t\t\t\n\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\n\t\t\t\tdeadListOut[deadIndex]
* 0x3 + 0x582) << 2,uint(alive));\n\t\t\t\t\n\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\n\t\t\t\tdeadListOut[deadIndex]
* 0x4 + 0x4E200) << 2));\n\t\tfloat3 velocity = asfloat(attributeBuffer.Load3((index
* 0x4 + 0x186A00) << 2));\n\t\tfloat texIndex = asfloat(attributeBuffer.Load((index
* 0x3 + 0x35B600) << 2));\n\t\tfloat age = asfloat(attributeBuffer.Load((index
* 0x3 + 0x35B601) << 2));\n\t\tuint particleId = (attributeBuffer.Load((index
* 0x4 + 0x186A03) << 2));\n\t\tbool alive = (attributeBuffer.Load((index * 0x3
+ 0x35B602) << 2));\n\t\t\n\n\t\t\n#if VFX_USE_OLDPOSITION_CURRENT\n\t\toldPosition
* 0x4 + 0x80) << 2));\n\t\tfloat3 velocity = asfloat(attributeBuffer.Load3((index
* 0x4 + 0x280) << 2));\n\t\tfloat texIndex = asfloat(attributeBuffer.Load((index
* 0x3 + 0x580) << 2));\n\t\tfloat age = asfloat(attributeBuffer.Load((index
* 0x3 + 0x581) << 2));\n\t\tuint particleId = (attributeBuffer.Load((index *
0x4 + 0x283) << 2));\n\t\tbool alive = (attributeBuffer.Load((index * 0x3 +
0x582) << 2));\n\t\t\n\n\t\t\n#if VFX_USE_OLDPOSITION_CURRENT\n\t\toldPosition
= position;\n#endif\n\t\t\n\t\tFlipbookPlay_1( /*inout */texIndex, age, lifetime,
FrameRate_a, deltaTime_a);\n\t\t{\n\t\t float tmp_bg = age / lifetime;\n\t\t
\ float tmp_bh = FixedRand(particleId ^ asuint(uniform_e));\n\t\t float

\ SetAttribute_CAC29747( /*inout */position, tmp_cf);\n\t\t}\n\t\tEulerIntegration(
/*inout */position, velocity, deltaTime_a);\n\t\tAge( /*inout */age, deltaTime_a);\n\t\tReap(age,
lifetime, /*inout */alive);\n\t\t\n\n\t\tattributeBuffer.Store3((index * 0x4
+ 0x4E200) << 2,asuint(position));\n\t\tattributeBuffer.Store((index * 0x3 +
0x35B600) << 2,asuint(texIndex));\n\t\tattributeBuffer.Store((index * 0x3 +
0x35B601) << 2,asuint(age));\n\t\tattributeBuffer.Store((index * 0x3 + 0x35B602)
<< 2,uint(alive));\n\t\t\n\n#if VFX_HAS_INDIRECT_DRAW\n uint indirectIndex
= indirectBuffer.IncrementCounter();\n\t\tindirectBuffer[indirectIndex] = index;\n#endif\n#endif\n\t}\n}\n"
+ 0x80) << 2,asuint(position));\n\t\tattributeBuffer.Store((index * 0x3 + 0x580)
<< 2,asuint(texIndex));\n\t\tattributeBuffer.Store((index * 0x3 + 0x581) <<
2,asuint(age));\n\t\tattributeBuffer.Store((index * 0x3 + 0x582) << 2,uint(alive));\n\t\t\n\n#if
VFX_HAS_INDIRECT_DRAW\n uint indirectIndex = indirectBuffer.IncrementCounter();\n\t\tindirectBuffer[indirectIndex]
= index;\n#endif\n#endif\n\t}\n}\n"
- compute: 0
name: '[System 2]Magic Lamp - Smoke'
source: "Shader \"Hidden/VFX/System 2/Magic Lamp - Smoke\"\n{\n\tSubShader\n\t{\t\n\t\tCull

(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t\treturn o; // cull\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\tfloat
lifetime = asfloat(attributeBuffer.Load((index * 0x1 + 0x0) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x4 + 0x4E200) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x2 + 0x2BF200) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x2 + 0x2BF201) << 2));\n\t\t\t\t\t\tfloat
texIndex = asfloat(attributeBuffer.Load((index * 0x3 + 0x35B600) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x3 + 0x35B601) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x4 + 0x80) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x2 + 0x480) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x2 + 0x481) << 2));\n\t\t\t\t\t\tfloat
texIndex = asfloat(attributeBuffer.Load((index * 0x3 + 0x580) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x3 + 0x581) << 2));\n\t\t\t\t\t\tfloat3
* 0x3 + 0x35B602) << 2));\n\t\t\t\t\t\tfloat3 axisX = float3(1,0,0);\n\t\t\t\t\t\tfloat3
* 0x3 + 0x582) << 2));\n\t\t\t\t\t\tfloat3 axisX = float3(1,0,0);\n\t\t\t\t\t\tfloat3
axisY = float3(0,1,0);\n\t\t\t\t\t\tfloat3 axisZ = float3(0,0,1);\n\t\t\t\t\t\tfloat
angleX = (float)0;\n\t\t\t\t\t\tfloat angleY = (float)0;\n\t\t\t\t\t\tfloat
angleZ = (float)0;\n\t\t\t\t\t\tfloat pivotX = (float)0;\n\t\t\t\t\t\tfloat

alive = (attributeBuffer.Load((index * 0x3 + 0x35B602) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tif
alive = (attributeBuffer.Load((index * 0x3 + 0x582) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tif
position = asfloat(attributeBuffer.Load3((index * 0x4 + 0x4E200) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x2 + 0x2BF200) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x2 + 0x2BF201) << 2));\n\t\t\t\t\t\tfloat
texIndex = asfloat(attributeBuffer.Load((index * 0x3 + 0x35B600) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x3 + 0x35B601) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x4 + 0x80) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x2 + 0x480) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x2 + 0x481) << 2));\n\t\t\t\t\t\tfloat
texIndex = asfloat(attributeBuffer.Load((index * 0x3 + 0x580) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x3 + 0x581) << 2));\n\t\t\t\t\t\tfloat3
color = float3(1,1,1);\n\t\t\t\t\t\tfloat3 axisX = float3(1,0,0);\n\t\t\t\t\t\tfloat3
axisY = float3(0,1,0);\n\t\t\t\t\t\tfloat3 axisZ = float3(0,0,1);\n\t\t\t\t\t\tfloat
angleX = (float)0;\n\t\t\t\t\t\tfloat angleY = (float)0;\n\t\t\t\t\t\tfloat

\ float texIndex = (float)0;\n float age = (float)0;\n float3
velocity = float3(0,0,0);\n uint particleId = (uint)0;\n bool
alive = (bool)true;\n float3 position_source = asfloat(sourceAttributeBuffer.Load3((sourceIndex
* 0x8 + 0x4E200) << 2));\n \n\n#if VFX_USE_PARTICLEID_CURRENT\n particleId
* 0x8 + 0x7540) << 2));\n \n\n#if VFX_USE_PARTICLEID_CURRENT\n particleId
= particleIndex;\n#endif\n#if VFX_USE_SEED_CURRENT\n seed = WangHash(particleIndex
^ systemSeed);\n#endif\n \n {\n SetAttribute_F01429A3(
/*inout */lifetime, /*inout */seed, (float)0.1, (float)5);\n }\n {\n

\ if (alive)\n {\n\t\t\tuint deadIndex = deadListIn.DecrementCounter();\n
\ uint index = deadListIn[deadIndex];\n attributeBuffer.Store((index
* 0x1 + 0x0) << 2,asuint(lifetime));\n attributeBuffer.Store3((index
* 0x8 + 0x4E200) << 2,asuint(position));\n attributeBuffer.Store((index
* 0x4 + 0x2BF200) << 2,asuint(size));\n attributeBuffer.Store((index
* 0x4 + 0x2BF201) << 2,asuint(scaleX));\n attributeBuffer.Store((index
* 0x4 + 0x2BF202) << 2,asuint(scaleY));\n attributeBuffer.Store((index
* 0x4 + 0x2BF203) << 2,asuint(alpha));\n attributeBuffer.Store((index
* 0x1 + 0x3F7A00) << 2,asuint(texIndex));\n attributeBuffer.Store((index
* 0x8 + 0x4E203) << 2,asuint(age));\n attributeBuffer.Store3((index
* 0x8 + 0x4E204) << 2,asuint(velocity));\n attributeBuffer.Store((index
* 0x1 + 0x445C00) << 2,asuint(particleId));\n attributeBuffer.Store((index
* 0x8 + 0x4E207) << 2,uint(alive));\n \n\n }\n#else\n uint
* 0x8 + 0x61C0) << 2,asuint(position));\n attributeBuffer.Store((index
* 0x4 + 0x36FC0) << 2,asuint(size));\n attributeBuffer.Store((index
* 0x4 + 0x36FC1) << 2,asuint(scaleX));\n attributeBuffer.Store((index
* 0x4 + 0x36FC2) << 2,asuint(scaleY));\n attributeBuffer.Store((index
* 0x4 + 0x36FC3) << 2,asuint(alpha));\n attributeBuffer.Store((index
* 0x1 + 0x4F6C0) << 2,asuint(texIndex));\n attributeBuffer.Store((index
* 0x8 + 0x61C3) << 2,asuint(age));\n attributeBuffer.Store3((index
* 0x8 + 0x61C4) << 2,asuint(velocity));\n attributeBuffer.Store((index
* 0x1 + 0x55880) << 2,asuint(particleId));\n attributeBuffer.Store((index
* 0x8 + 0x61C7) << 2,uint(alive));\n \n\n }\n#else\n uint
2,asuint(lifetime));\n attributeBuffer.Store3((index * 0x8 + 0x4E200)
<< 2,asuint(position));\n attributeBuffer.Store((index * 0x4 + 0x2BF200)
<< 2,asuint(size));\n attributeBuffer.Store((index * 0x4 + 0x2BF201)
<< 2,asuint(scaleX));\n attributeBuffer.Store((index * 0x4 + 0x2BF202)
<< 2,asuint(scaleY));\n attributeBuffer.Store((index * 0x4 + 0x2BF203)
<< 2,asuint(alpha));\n attributeBuffer.Store((index * 0x1 + 0x3F7A00)
<< 2,asuint(texIndex));\n attributeBuffer.Store((index * 0x8 + 0x4E203)
<< 2,asuint(age));\n attributeBuffer.Store3((index * 0x8 + 0x4E204) <<
2,asuint(velocity));\n attributeBuffer.Store((index * 0x1 + 0x445C00)
<< 2,asuint(particleId));\n attributeBuffer.Store((index * 0x8 + 0x4E207)
<< 2,uint(alive));\n \n\n#endif\n }\n}\n"
2,asuint(lifetime));\n attributeBuffer.Store3((index * 0x8 + 0x61C0)
<< 2,asuint(position));\n attributeBuffer.Store((index * 0x4 + 0x36FC0)
<< 2,asuint(size));\n attributeBuffer.Store((index * 0x4 + 0x36FC1) <<
2,asuint(scaleX));\n attributeBuffer.Store((index * 0x4 + 0x36FC2) <<
2,asuint(scaleY));\n attributeBuffer.Store((index * 0x4 + 0x36FC3) <<
2,asuint(alpha));\n attributeBuffer.Store((index * 0x1 + 0x4F6C0) <<
2,asuint(texIndex));\n attributeBuffer.Store((index * 0x8 + 0x61C3) <<
2,asuint(age));\n attributeBuffer.Store3((index * 0x8 + 0x61C4) << 2,asuint(velocity));\n
\ attributeBuffer.Store((index * 0x1 + 0x55880) << 2,asuint(particleId));\n
\ attributeBuffer.Store((index * 0x8 + 0x61C7) << 2,uint(alive));\n \n\n#endif\n
\ }\n}\n"
- compute: 1
name: '[System 3]Update'
source: "#pragma kernel CSMain\n#include \"HLSLSupport.cginc\"\n#define NB_THREADS_PER_GROUP

\ : SV_GroupThreadID)\n{\n\tuint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP
+ groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\n\tuint index = id;\n\tif
(id < nbMax)\n\t{\n#if VFX_USE_ALIVE_CURRENT\n\t\tbool alive = (attributeBuffer.Load((index
* 0x8 + 0x4E207) << 2));\n\t\t\n\n\t\tif (alive)\n\t\t{\n\t\t\tfloat lifetime
* 0x8 + 0x61C7) << 2));\n\t\t\n\n\t\tif (alive)\n\t\t{\n\t\t\tfloat lifetime
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E200) << 2));\n\t\t\tfloat
texIndex = asfloat(attributeBuffer.Load((index * 0x1 + 0x3F7A00) << 2));\n\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x4E203) << 2));\n\t\t\tfloat3
velocity = asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E204) << 2));\n\t\t\tfloat
= asfloat(attributeBuffer.Load3((index * 0x8 + 0x61C0) << 2));\n\t\t\tfloat
texIndex = asfloat(attributeBuffer.Load((index * 0x1 + 0x4F6C0) << 2));\n\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x61C3) << 2));\n\t\t\tfloat3
velocity = asfloat(attributeBuffer.Load3((index * 0x8 + 0x61C4) << 2));\n\t\t\tfloat
+ 0x445C00) << 2));\n\t\t\tfloat3 position_source = position;\n\t\t\t\n\n\t\t\t\n#if
+ 0x55880) << 2));\n\t\t\tfloat3 position_source = position;\n\t\t\t\n\n\t\t\t\n#if
VFX_USE_OLDPOSITION_CURRENT\n\t\t\toldPosition = position;\n#endif\n\t\t\t\n\t\t\tFlipbookPlay_1(
/*inout */texIndex, age, lifetime, FrameRate_a, deltaTime_a);\n\t\t\t{\n\t\t\t
\ float tmp_bi = age / lifetime;\n\t\t\t float tmp_bk = FixedRand(particleId

FieldTransform_c, (float)1, tmp_bz, tmp_cc, (uint)4, deltaTime_a);\n\t\t\t}\n\t\t\tEulerIntegration(
/*inout */position, velocity, deltaTime_a);\n\t\t\tAge( /*inout */age, deltaTime_a);\n\t\t\tReap(age,
lifetime, /*inout */alive);\n\t\t\t\n\n\t\t\tif (alive)\n\t\t\t{\n\t\t\t\tattributeBuffer.Store3((index
* 0x8 + 0x4E200) << 2,asuint(position));\n\t\t\t\tattributeBuffer.Store((index
* 0x1 + 0x3F7A00) << 2,asuint(texIndex));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x4E203) << 2,asuint(age));\n\t\t\t\tattributeBuffer.Store3((index *
0x8 + 0x4E204) << 2,asuint(velocity));\n\t\t\t\t\n\n#if VFX_HAS_INDIRECT_DRAW\n
* 0x8 + 0x61C0) << 2,asuint(position));\n\t\t\t\tattributeBuffer.Store((index
* 0x1 + 0x4F6C0) << 2,asuint(texIndex));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x61C3) << 2,asuint(age));\n\t\t\t\tattributeBuffer.Store3((index *
0x8 + 0x61C4) << 2,asuint(velocity));\n\t\t\t\t\n\n#if VFX_HAS_INDIRECT_DRAW\n
* 0x8 + 0x4E207) << 2,uint(alive));\n\t\t\t\t\n\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\n\t\t\t\tdeadListOut[deadIndex]
* 0x8 + 0x61C7) << 2,uint(alive));\n\t\t\t\t\n\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\n\t\t\t\tdeadListOut[deadIndex]
* 0x8 + 0x4E200) << 2));\n\t\tfloat texIndex = asfloat(attributeBuffer.Load((index
* 0x1 + 0x3F7A00) << 2));\n\t\tfloat age = asfloat(attributeBuffer.Load((index
* 0x8 + 0x4E203) << 2));\n\t\tfloat3 velocity = asfloat(attributeBuffer.Load3((index
* 0x8 + 0x4E204) << 2));\n\t\tfloat mass = (float)1;\n\t\tuint particleId =
(attributeBuffer.Load((index * 0x1 + 0x445C00) << 2));\n\t\tbool alive = (attributeBuffer.Load((index
* 0x8 + 0x4E207) << 2));\n\t\tfloat3 position_source = position;\n\t\t\n\n\t\t\n#if
* 0x8 + 0x61C0) << 2));\n\t\tfloat texIndex = asfloat(attributeBuffer.Load((index
* 0x1 + 0x4F6C0) << 2));\n\t\tfloat age = asfloat(attributeBuffer.Load((index
* 0x8 + 0x61C3) << 2));\n\t\tfloat3 velocity = asfloat(attributeBuffer.Load3((index
* 0x8 + 0x61C4) << 2));\n\t\tfloat mass = (float)1;\n\t\tuint particleId = (attributeBuffer.Load((index
* 0x1 + 0x55880) << 2));\n\t\tbool alive = (attributeBuffer.Load((index * 0x8
+ 0x61C7) << 2));\n\t\tfloat3 position_source = position;\n\t\t\n\n\t\t\n#if
VFX_USE_OLDPOSITION_CURRENT\n\t\toldPosition = position;\n#endif\n\t\t\n\t\tFlipbookPlay_1(
/*inout */texIndex, age, lifetime, FrameRate_a, deltaTime_a);\n\t\t{\n\t\t float
tmp_bi = age / lifetime;\n\t\t float tmp_bk = FixedRand(particleId ^ asuint(uniform_f));\n\t\t

*/velocity, mass, InvFieldTransform_c, FieldTransform_c, (float)1, tmp_bz, tmp_cc,
(uint)4, deltaTime_a);\n\t\t}\n\t\tEulerIntegration( /*inout */position, velocity,
deltaTime_a);\n\t\tAge( /*inout */age, deltaTime_a);\n\t\tReap(age, lifetime,
\ /*inout */alive);\n\t\t\n\n\t\tattributeBuffer.Store3((index * 0x8 + 0x4E200)
<< 2,asuint(position));\n\t\tattributeBuffer.Store((index * 0x1 + 0x3F7A00)
<< 2,asuint(texIndex));\n\t\tattributeBuffer.Store((index * 0x8 + 0x4E203) <<
2,asuint(age));\n\t\tattributeBuffer.Store3((index * 0x8 + 0x4E204) << 2,asuint(velocity));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x4E207) << 2,uint(alive));\n\t\t\n\n#if VFX_HAS_INDIRECT_DRAW\n uint
\ /*inout */alive);\n\t\t\n\n\t\tattributeBuffer.Store3((index * 0x8 + 0x61C0)
<< 2,asuint(position));\n\t\tattributeBuffer.Store((index * 0x1 + 0x4F6C0) <<
2,asuint(texIndex));\n\t\tattributeBuffer.Store((index * 0x8 + 0x61C3) << 2,asuint(age));\n\t\tattributeBuffer.Store3((index
* 0x8 + 0x61C4) << 2,asuint(velocity));\n\t\tattributeBuffer.Store((index *
0x8 + 0x61C7) << 2,uint(alive));\n\t\t\n\n#if VFX_HAS_INDIRECT_DRAW\n uint
indirectIndex = indirectBuffer.IncrementCounter();\n\t\tindirectBuffer[indirectIndex]
= index;\n#endif\n#endif\n\t}\n}\n"
- compute: 0

(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t\treturn o; // cull\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\tfloat
lifetime = asfloat(attributeBuffer.Load((index * 0x1 + 0x0) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E200) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF200) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF201) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF202) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF203) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x4E203) << 2));\n\t\t\t\t\t\tfloat3
velocity = asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E204) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x61C0) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC0) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC1) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC2) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC3) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x61C3) << 2));\n\t\t\t\t\t\tfloat3
velocity = asfloat(attributeBuffer.Load3((index * 0x8 + 0x61C4) << 2));\n\t\t\t\t\t\tfloat3
* 0x8 + 0x4E207) << 2));\n\t\t\t\t\t\tfloat3 axisX = float3(1,0,0);\n\t\t\t\t\t\tfloat3
* 0x8 + 0x61C7) << 2));\n\t\t\t\t\t\tfloat3 axisX = float3(1,0,0);\n\t\t\t\t\t\tfloat3
alive = (attributeBuffer.Load((index * 0x8 + 0x4E207) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tif
alive = (attributeBuffer.Load((index * 0x8 + 0x61C7) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tif
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E200) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF200) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF201) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF202) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF203) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x4E203) << 2));\n\t\t\t\t\t\tfloat3
velocity = asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E204) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x61C0) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC0) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC1) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC2) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC3) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x61C3) << 2));\n\t\t\t\t\t\tfloat3
velocity = asfloat(attributeBuffer.Load3((index * 0x8 + 0x61C4) << 2));\n\t\t\t\t\t\tfloat3
color = float3(1,1,1);\n\t\t\t\t\t\tfloat3 axisX = float3(1,0,0);\n\t\t\t\t\t\tfloat3
axisY = float3(0,1,0);\n\t\t\t\t\t\tfloat3 axisZ = float3(0,0,1);\n\t\t\t\t\t\tfloat
angleX = (float)0;\n\t\t\t\t\t\tfloat angleY = (float)0;\n\t\t\t\t\t\tfloat

(index >= asuint(nbMax) - deadCount)\n\t\t\t\t\t\t\treturn o; // cull\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\tfloat
lifetime = asfloat(attributeBuffer.Load((index * 0x1 + 0x0) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E200) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF200) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF201) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF202) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF203) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x4E203) << 2));\n\t\t\t\t\t\tfloat3
velocity = asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E204) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x61C0) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC0) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC1) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC2) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC3) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x61C3) << 2));\n\t\t\t\t\t\tfloat3
velocity = asfloat(attributeBuffer.Load3((index * 0x8 + 0x61C4) << 2));\n\t\t\t\t\t\tfloat3
* 0x8 + 0x4E207) << 2));\n\t\t\t\t\t\tfloat3 axisX = float3(1,0,0);\n\t\t\t\t\t\tfloat3
* 0x8 + 0x61C7) << 2));\n\t\t\t\t\t\tfloat3 axisX = float3(1,0,0);\n\t\t\t\t\t\tfloat3
alive = (attributeBuffer.Load((index * 0x8 + 0x4E207) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tif
alive = (attributeBuffer.Load((index * 0x8 + 0x61C7) << 2));\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tif
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E200) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF200) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF201) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF202) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x4 + 0x2BF203) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x4E203) << 2));\n\t\t\t\t\t\tfloat3
velocity = asfloat(attributeBuffer.Load3((index * 0x8 + 0x4E204) << 2));\n\t\t\t\t\t\tfloat3
position = asfloat(attributeBuffer.Load3((index * 0x8 + 0x61C0) << 2));\n\t\t\t\t\t\tfloat
size = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC0) << 2));\n\t\t\t\t\t\tfloat
scaleX = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC1) << 2));\n\t\t\t\t\t\tfloat
scaleY = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC2) << 2));\n\t\t\t\t\t\tfloat
alpha = asfloat(attributeBuffer.Load((index * 0x4 + 0x36FC3) << 2));\n\t\t\t\t\t\tfloat
age = asfloat(attributeBuffer.Load((index * 0x8 + 0x61C3) << 2));\n\t\t\t\t\t\tfloat3
velocity = asfloat(attributeBuffer.Load3((index * 0x8 + 0x61C4) << 2));\n\t\t\t\t\t\tfloat3
color = float3(1,1,1);\n\t\t\t\t\t\tfloat3 axisX = float3(1,0,0);\n\t\t\t\t\t\tfloat3
axisY = float3(0,1,0);\n\t\t\t\t\t\tfloat3 axisZ = float3(0,0,1);\n\t\t\t\t\t\tfloat
angleX = (float)0;\n\t\t\t\t\t\tfloat angleY = (float)0;\n\t\t\t\t\t\tfloat

-= deadListCount.Load(0);\n#endif\n\tuint id = groupThreadId.x + groupId.x *
NB_THREADS_PER_GROUP + groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\n\tif
(id < threshold)\n\t{\n\t\tuint index = inputBuffer[id];\n\t\tfloat3 position
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x4E200) << 2));\n\t\t\n\n\t\t\n#if
= asfloat(attributeBuffer.Load3((index * 0x4 + 0x80) << 2));\n\t\t\n\n\t\t\n#if
VFX_LOCAL_SPACE\n\t\tfloat3 wPos = mul(localToWorld,float4(position,1.0f)).xyz;\n#else\n\t\tfloat3
wPos = position;\n#endif\n\t\tfloat3 camToPos = wPos - cameraPosition;\n\t\t\n\t\tKvp
kvp;\n\t\tkvp.sortKey = dot(camToPos,camToPos); // sqr distance to the camera\n\t\tkvp.index

index: 19
m_Buffers:
- type: 1
size: 6720000
size: 630320
layout:
- name: lifetime
type: 1

- name: position
type: 3
offset:
bucket: 320000
bucket: 30016
bucket: 320000
bucket: 30016
bucket: 320000
bucket: 30016
bucket: 2880000
bucket: 270144
bucket: 2880000
bucket: 270144
bucket: 4160000
bucket: 390208
bucket: 4160000
bucket: 390208
bucket: 4160000
bucket: 390208
bucket: 5120000
bucket: 480256
bucket: 6400000
bucket: 600320
capacity: 320000
capacity: 30000
size: 4480000
size: 1768
layout:
- name: lifetime
type: 1

- name: position
type: 3
offset:
bucket: 320000
bucket: 128
bucket: 1600000
bucket: 640
bucket: 1600000
bucket: 640
bucket: 2880000
bucket: 1152
bucket: 2880000
bucket: 1152
bucket: 3520000
bucket: 1408
bucket: 3520000
bucket: 1408
bucket: 3520000
bucket: 1408
capacity: 320000
capacity: 120
size: 4800000
size: 375336
layout:
- name: lifetime
type: 1

- name: position
type: 3
offset:
bucket: 320000
bucket: 25024
bucket: 320000
bucket: 25024
bucket: 320000
bucket: 25024
bucket: 320000
bucket: 25024
bucket: 2880000
bucket: 225216
bucket: 2880000
bucket: 225216
bucket: 2880000
bucket: 225216
bucket: 2880000
bucket: 225216
bucket: 4160000
bucket: 325312
bucket: 4480000
bucket: 350336
capacity: 320000
capacity: 25000
stride: 4
- type: 1
size: 103

capacity: 7
stride: 4
- type: 2
size: 320000
size: 25000
size: 6720000
size: 630336
layout:
- name: lifetime
type: 1

- name: position
type: 3
offset:
bucket: 320000
bucket: 30016
bucket: 320000
bucket: 30016
bucket: 320000
bucket: 30016
bucket: 2880000
bucket: 270144
bucket: 2880000
bucket: 270144
bucket: 4160000
bucket: 390208
bucket: 4160000
bucket: 390208
bucket: 4160000
bucket: 390208
bucket: 5120000
bucket: 480256
bucket: 6400000
bucket: 600320
capacity: 320000
capacity: 30016
stride: 4
- type: 1
size: 1

capacity: 1
stride: 4
- type: 4
size: 320000
size: 30000
layout: []
capacity: 0
stride: 4

capacity: 0
stride: 4
- type: 1
size: 4480000
size: 1792
layout:
- name: lifetime
type: 1

- name: position
type: 3
offset:
bucket: 320000
bucket: 128
bucket: 1600000
bucket: 640
bucket: 1600000
bucket: 640
bucket: 2880000
bucket: 1152
bucket: 2880000
bucket: 1152
bucket: 3520000
bucket: 1408
bucket: 3520000
bucket: 1408
bucket: 3520000
bucket: 1408
capacity: 320000
capacity: 128
stride: 4
- type: 1
size: 1

capacity: 1
stride: 4
- type: 4
size: 320000
size: 120
layout: []
capacity: 0
stride: 4

capacity: 0
stride: 4
- type: 4
size: 320000
size: 120
size: 320000
size: 120
size: 320000
size: 120
size: 4800000
size: 375360
layout:
- name: lifetime
type: 1

- name: position
type: 3
offset:
bucket: 320000
bucket: 25024
bucket: 320000
bucket: 25024
bucket: 320000
bucket: 25024
bucket: 320000
bucket: 25024
bucket: 2880000
bucket: 225216
bucket: 2880000
bucket: 225216
bucket: 2880000
bucket: 225216
bucket: 2880000
bucket: 225216
bucket: 4160000
bucket: 325312
bucket: 4480000
bucket: 350336
capacity: 320000
capacity: 25024
size: 320000
size: 25000
layout: []
capacity: 0
stride: 4

shaderSourceIndex: -1
- type: 1
flags: 1
capacity: 320000
capacity: 30000
layer: 0
buffers:
- nameId: attributeBuffer

shaderSourceIndex: 2
- type: 1
flags: 3
capacity: 320000
capacity: 120
layer: 4294967295
buffers:
- nameId: attributeBuffer

shaderSourceIndex: 5
- type: 1
flags: 5
capacity: 320000
capacity: 25000
layer: 1
buffers:
- nameId: attributeBuffer

- {fileID: 8926484042661614879}
- {fileID: 8926484042661614914}
- {fileID: 8926484042661615038}
m_Capacity: 320000
m_Capacity: 120
m_Space: 1
--- !u!114 &8926484042661614890
MonoBehaviour:

m_EditorClassIdentifier:
m_Parent: {fileID: 114780028408030698}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UIPosition: {x: 0, y: 270}
m_UICollapsed: 0
m_UISuperCollapsed: 0
m_InputSlots:

- {fileID: 8926484042661616250}
- {fileID: 8926484042661616285}
- {fileID: 8926484042661616655}
m_Capacity: 320000
m_Capacity: 25000
m_Space: 1
--- !u!114 &8926484042661616261
MonoBehaviour:

m_EditorClassIdentifier:
m_Parent: {fileID: 114350483966674976}
m_Children: []
m_UIPosition: {x: 3269, y: -22}
m_UIPosition: {x: 3239, y: 52}
m_UICollapsed: 0
m_UISuperCollapsed: 0
m_InputSlots: []

902
Assets/Samples/GenieMagicLamp/VFX/SandFX.vfx
文件差异内容过多而无法显示
查看文件

正在加载...
取消
保存