From 0cda5a56b998e0101ebcf5eddc8644512b01de0f Mon Sep 17 00:00:00 2001 From: ueshita Date: Wed, 28 Feb 2024 00:45:54 +0900 Subject: [PATCH] Rename a Position to Velocity of GpuParticles --- .../Parameter/GpuParticlesParameter.cpp | 8 ++++---- .../Renderer/Effekseer.GpuParticles.h | 4 ++-- .../EffekseerRenderer.GpuParticles.cpp | 8 ++++---- .../Binary/GpuParticlesValues.cs | 8 ++++---- Dev/Editor/EffekseerCore/Data/GpuParticles.cs | 14 +++++++------- .../languages/en/Effekseer_GpuParticles.csv | 18 +++++++++--------- .../languages/es/Effekseer_GpuParticles.csv | 18 +++++++++--------- .../languages/ja/Effekseer_GpuParticles.csv | 18 +++++++++--------- .../Resources/GpuParticles_emit_line.efkefc | Bin 3832 -> 3818 bytes .../Resources/GpuParticles_emit_mesh.efkefc | Bin 3662 -> 3667 bytes .../Resources/GpuParticles_emit_sphere.efkefc | Bin 3759 -> 3777 bytes .../GpuParticles_force_turbulence.efkefc | Bin 3379 -> 3325 bytes .../GpuParticles_force_vortex.efkefc | Bin 3384 -> 3366 bytes .../Resources/GpuParticles_mesh_simple.efkefc | Bin 3460 -> 3447 bytes .../GpuParticles_sprite_directional.efkefc | Bin 3518 -> 3498 bytes .../Resources/GpuParticles_sprite_mass.efkefc | Bin 3503 -> 3505 bytes .../GpuParticles_sprite_simple.efkefc | Bin 3389 -> 3363 bytes .../GpuParticles_trails_simple.efkefc | Bin 3531 -> 3597 bytes 18 files changed, 48 insertions(+), 48 deletions(-) diff --git a/Dev/Cpp/Effekseer/Effekseer/Parameter/GpuParticlesParameter.cpp b/Dev/Cpp/Effekseer/Effekseer/Parameter/GpuParticlesParameter.cpp index b6582fa1d2..cbc86ece02 100644 --- a/Dev/Cpp/Effekseer/Effekseer/Parameter/GpuParticlesParameter.cpp +++ b/Dev/Cpp/Effekseer/Effekseer/Parameter/GpuParticlesParameter.cpp @@ -47,10 +47,10 @@ GpuParticles::ParamSet LoadGpuParticlesParameter(uint8_t*& pos, int32_t version) break; } - paramSet.Position.Direction = Read(pos); - paramSet.Position.Spread = Read(pos); - paramSet.Position.InitialSpeed = Read>(pos); - paramSet.Position.Damping = Read>(pos); + paramSet.Velocity.Direction = Read(pos); + paramSet.Velocity.Spread = Read(pos); + paramSet.Velocity.InitialSpeed = Read>(pos); + paramSet.Velocity.Damping = Read>(pos); paramSet.Rotation.Offset = Read>(pos); paramSet.Rotation.Velocity = Read>(pos); diff --git a/Dev/Cpp/Effekseer/Effekseer/Renderer/Effekseer.GpuParticles.h b/Dev/Cpp/Effekseer/Effekseer/Renderer/Effekseer.GpuParticles.h index 09fa2a4616..a952f53fc4 100644 --- a/Dev/Cpp/Effekseer/Effekseer/Renderer/Effekseer.GpuParticles.h +++ b/Dev/Cpp/Effekseer/Effekseer/Renderer/Effekseer.GpuParticles.h @@ -175,14 +175,14 @@ struct ParamSet }; EmitShapeParams EmitShape; - struct PositionParams + struct VelocityParams { float3 Direction; float Spread; std::array InitialSpeed; std::array Damping; }; - PositionParams Position; + VelocityParams Velocity; struct RotationParams { diff --git a/Dev/Cpp/EffekseerRendererCommon/EffekseerRendererCommon/EffekseerRenderer.GpuParticles.cpp b/Dev/Cpp/EffekseerRendererCommon/EffekseerRendererCommon/EffekseerRenderer.GpuParticles.cpp index 7a413e8e75..630d8fe68a 100644 --- a/Dev/Cpp/EffekseerRendererCommon/EffekseerRendererCommon/EffekseerRenderer.GpuParticles.cpp +++ b/Dev/Cpp/EffekseerRendererCommon/EffekseerRendererCommon/EffekseerRenderer.GpuParticles.cpp @@ -248,10 +248,10 @@ GpuParticles::ParameterData GpuParticleFactory::ToParamData(const Effekseer::Gpu data.EmitShapeData[0] = paramSet.EmitShape.Data[0]; data.EmitShapeData[1] = paramSet.EmitShape.Data[1]; - data.Direction = paramSet.Position.Direction; - data.Spread = paramSet.Position.Spread; - data.InitialSpeed = paramSet.Position.InitialSpeed; - data.Damping = paramSet.Position.Damping; + data.Direction = paramSet.Velocity.Direction; + data.Spread = paramSet.Velocity.Spread; + data.InitialSpeed = paramSet.Velocity.InitialSpeed; + data.Damping = paramSet.Velocity.Damping; data.AngularOffset[0] = float4(paramSet.Rotation.Offset[0], 0.0f); data.AngularOffset[1] = float4(paramSet.Rotation.Offset[1], 0.0f); diff --git a/Dev/Editor/EffekseerCore/Binary/GpuParticlesValues.cs b/Dev/Editor/EffekseerCore/Binary/GpuParticlesValues.cs index 301d83829b..74bf75cb73 100644 --- a/Dev/Editor/EffekseerCore/Binary/GpuParticlesValues.cs +++ b/Dev/Editor/EffekseerCore/Binary/GpuParticlesValues.cs @@ -57,10 +57,10 @@ public static byte[] GetBytes(Data.GpuParticlesValues value, break; } - data.Add(value.Position.Direction.GetBytes()); - data.Add(value.Position.Spread.GetBytes()); - data.Add(value.Position.InitialSpeed.GetBytes()); - data.Add(value.Position.Damping.GetBytes()); + data.Add(value.Velocity.Direction.GetBytes()); + data.Add(value.Velocity.Spread.GetBytes()); + data.Add(value.Velocity.InitialSpeed.GetBytes()); + data.Add(value.Velocity.Damping.GetBytes()); data.Add(value.Rotation.InitialAngle.GetBytes()); data.Add(value.Rotation.AngularVelocity.GetBytes()); diff --git a/Dev/Editor/EffekseerCore/Data/GpuParticles.cs b/Dev/Editor/EffekseerCore/Data/GpuParticles.cs index e6c516b68d..fe19892c67 100644 --- a/Dev/Editor/EffekseerCore/Data/GpuParticles.cs +++ b/Dev/Editor/EffekseerCore/Data/GpuParticles.cs @@ -94,18 +94,18 @@ public EmitShapeParams(Value.Path basepath) } } - public class PositionParams + public class VelocityParams { - [Key(key = "GpuParticles_Position_Direction")] + [Key(key = "GpuParticles_Velocity_Direction")] public Value.Vector3D Direction { get; private set; } = new Value.Vector3D(0.0f, 0.0f, 1.0f); - [Key(key = "GpuParticles_Position_Spread")] + [Key(key = "GpuParticles_Velocity_Spread")] public Value.Float Spread { get; private set; } = new Value.Float(value: 15.0f, min: 0.0f, max: 180.0f); - [Key(key = "GpuParticles_Position_InitialSpeed")] + [Key(key = "GpuParticles_Velocity_InitialSpeed")] public Value.FloatWithRandom InitialSpeed { get; private set; } = new Value.FloatWithRandom(value: 1.0f); - [Key(key = "GpuParticles_Position_Damping")] + [Key(key = "GpuParticles_Velocity_Damping")] public Value.FloatWithRandom Damping { get; private set; } = new Value.FloatWithRandom(value: 0.0f, min: 0.0f); } @@ -371,8 +371,8 @@ public RenderMaterialParams(Value.Path basepath) [IO(Export = true)] [Selected(ID = 0, Value = 1)] - [TreeNode(id = "GpuParticles_Position", key = "GpuParticles_Position")] - public PositionParams Position { get; private set; } = new PositionParams(); + [TreeNode(id = "GpuParticles_Velocity", key = "GpuParticles_Velocity")] + public VelocityParams Velocity { get; private set; } = new VelocityParams(); [IO(Export = true)] [Selected(ID = 0, Value = 1)] diff --git a/Dev/release/resources/languages/en/Effekseer_GpuParticles.csv b/Dev/release/resources/languages/en/Effekseer_GpuParticles.csv index 8227984ffa..c20b12ff1b 100644 --- a/Dev/release/resources/languages/en/Effekseer_GpuParticles.csv +++ b/Dev/release/resources/languages/en/Effekseer_GpuParticles.csv @@ -41,15 +41,15 @@ GpuParticles_EmitShape_ModelSize_Desc,Size of mesh shape. GpuParticles_EmitShape_RotationApplied_Name,Set angle on spawn GpuParticles_EmitShape_RotationApplied_Desc,Valid for circles, spheres, and models -GpuParticles_Position_Name,Position -GpuParticles_Position_Direction_Name,Direction -GpuParticles_Position_Direction_Desc,Direction of movement when spawning particles. -GpuParticles_Position_Spread_Name,Spread -GpuParticles_Position_Spread_Desc,Angle of random diffusion in the direction of movement when spawning particles. -GpuParticles_Position_InitialSpeed_Name,Initial Speed -GpuParticles_Position_InitialSpeed_Desc,Initial speed of movement when spawning particles. -GpuParticles_Position_Damping_Name,Damping -GpuParticles_Position_Damping_Desc,Damping force during particle motion. +GpuParticles_Velocity_Name,Velocity +GpuParticles_Velocity_Direction_Name,Direction +GpuParticles_Velocity_Direction_Desc,Direction of movement when spawning particles. +GpuParticles_Velocity_Spread_Name,Spread +GpuParticles_Velocity_Spread_Desc,Angle of random diffusion in the direction of movement when spawning particles. +GpuParticles_Velocity_InitialSpeed_Name,Initial Speed +GpuParticles_Velocity_InitialSpeed_Desc,Initial speed of movement when spawning particles. +GpuParticles_Velocity_Damping_Name,Damping +GpuParticles_Velocity_Damping_Desc,Damping force during particle motion. GpuParticles_Rotation_Name,Rotation GpuParticles_Rotation_InitialAngle_Name,Initial Angle diff --git a/Dev/release/resources/languages/es/Effekseer_GpuParticles.csv b/Dev/release/resources/languages/es/Effekseer_GpuParticles.csv index 69d1cda4ec..8e191a9a47 100644 --- a/Dev/release/resources/languages/es/Effekseer_GpuParticles.csv +++ b/Dev/release/resources/languages/es/Effekseer_GpuParticles.csv @@ -41,15 +41,15 @@ GpuParticles_EmitShape_ModelSize_Desc,Tamaño de la forma de la malla. GpuParticles_EmitShape_RotationApplied_Name,Ajustar ángulo en la Aparición GpuParticles_EmitShape_RotationApplied_Desc,Válido para círculo, esfera y modelo -GpuParticles_Position_Name,Posición -GpuParticles_Position_Direction_Name,Dirección -GpuParticles_Position_Direction_Desc,Dirección de movimiento cuando se generan partículas. -GpuParticles_Position_Spread_Name,Dispersión -GpuParticles_Position_Spread_Desc,Ángulo de difusión aleatoria en la dirección del movimiento cuando se generan partículas. -GpuParticles_Position_InitialSpeed_Name,Velocidad Inicial -GpuParticles_Position_InitialSpeed_Desc,Velocidad inicial del movimiento al desovar partículas. -GpuParticles_Position_Damping_Name,Amortiguación -GpuParticles_Position_Damping_Desc,Fuerza de amortiguación durante el movimiento de las partículas. +GpuParticles_Velocity_Name,Velocidad +GpuParticles_Velocity_Direction_Name,Dirección +GpuParticles_Velocity_Direction_Desc,Dirección de movimiento cuando se generan partículas. +GpuParticles_Velocity_Spread_Name,Dispersión +GpuParticles_Velocity_Spread_Desc,Ángulo de difusión aleatoria en la dirección del movimiento cuando se generan partículas. +GpuParticles_Velocity_InitialSpeed_Name,Velocidad Inicial +GpuParticles_Velocity_InitialSpeed_Desc,Velocidad inicial del movimiento al desovar partículas. +GpuParticles_Velocity_Damping_Name,Amortiguación +GpuParticles_Velocity_Damping_Desc,Fuerza de amortiguación durante el movimiento de las partículas. GpuParticles_Rotation_Name,Rotación GpuParticles_Rotation_InitialAngle_Name,Ángulo inicial diff --git a/Dev/release/resources/languages/ja/Effekseer_GpuParticles.csv b/Dev/release/resources/languages/ja/Effekseer_GpuParticles.csv index 9aef088c0d..cccdc72587 100644 --- a/Dev/release/resources/languages/ja/Effekseer_GpuParticles.csv +++ b/Dev/release/resources/languages/ja/Effekseer_GpuParticles.csv @@ -41,15 +41,15 @@ GpuParticles_EmitShape_ModelSize_Desc,モデル形状のサイズ GpuParticles_EmitShape_RotationApplied_Name,生成角度に影響 GpuParticles_EmitShape_RotationApplied_Desc,円、球、モデルで有効 -GpuParticles_Position_Name,位置 -GpuParticles_Position_Direction_Name,移動方向 -GpuParticles_Position_Direction_Desc,パーティクル生成時の移動方向 -GpuParticles_Position_Spread_Name,拡散角度 -GpuParticles_Position_Spread_Desc,パーティクル生成時の移動方向のランダムに拡散する角度 -GpuParticles_Position_InitialSpeed_Name,初期速度 -GpuParticles_Position_InitialSpeed_Desc,パーティクル生成時の速さ -GpuParticles_Position_Damping_Name,速度減衰 -GpuParticles_Position_Damping_Desc,パーティクル運動時の減衰力 +GpuParticles_Velocity_Name,速度 +GpuParticles_Velocity_Direction_Name,方向 +GpuParticles_Velocity_Direction_Desc,パーティクル生成時の移動方向 +GpuParticles_Velocity_Spread_Name,拡散角度 +GpuParticles_Velocity_Spread_Desc,パーティクル生成時の移動方向のランダムに拡散する角度 +GpuParticles_Velocity_InitialSpeed_Name,初期速度 +GpuParticles_Velocity_InitialSpeed_Desc,パーティクル生成時の速さ +GpuParticles_Velocity_Damping_Name,速度減衰 +GpuParticles_Velocity_Damping_Desc,パーティクル運動時の減衰力 GpuParticles_Rotation_Name,回転 GpuParticles_Rotation_InitialAngle_Name,初期角度 diff --git a/Examples/Resources/GpuParticles_emit_line.efkefc b/Examples/Resources/GpuParticles_emit_line.efkefc index 6ecf0a767e66325f1348de8bd79a6192ff0f55ae..65a38535ecc96719fc233c748a31450f182f27e1 100644 GIT binary patch delta 2370 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 diff --git a/Examples/Resources/GpuParticles_emit_sphere.efkefc b/Examples/Resources/GpuParticles_emit_sphere.efkefc index 015282886f32ce2e12a73a76d529cee527597efd..a3f00feb7b3c1353790ecc65315413beb86ad2aa 100644 GIT binary patch delta 2366 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 delta 2351 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 V06>$z3oMf`3@4L-3j~ud4w8pJx1#_6 diff --git a/Examples/Resources/GpuParticles_force_turbulence.efkefc b/Examples/Resources/GpuParticles_force_turbulence.efkefc index 01ff3f3c25cc5a47290e78103da73ca3b21cf1be..b3e0e48d21a43377ef391f1bcf719dfe18e3d966 100644 GIT binary patch delta 2281 zcmVL`u#KU4(SoWO7=TNs^-52WBt5?GRV#nD;vB+0l z&Yg^7Kje9ju^N`OZSM%iS$&OHu{t)kVweSoTh&5l7kCY8Vt-@y+L~=G=w_L_MHCd+lnXb+Dss(m~`W0Hp1c0BK(I?sZnc z;whNO8p|u*y?-trEuLm=Y+A%#vP~7|R*9ccMx$pDMb`F6yysXK+0)LwoM){vuX)e) zl`e?X7*5{g7g;kK*)-g7!vO(H-690NV3ge+coSYPu@fxItpazrL-Tx@)v`&w!0(j3 zURW7-^bNyWR%=(pIoYP|jF{$CSe(#ZtX;#7bDr*a*ME_s><#>y>SGOxm@Dad-jB3T zScRL=o^lWbPH#Y-E(kNav&tPe0t#|4D0U#kS8L?q`a=;lg};qhC@ys!IU(%9sM2kG?CF2d|^SU8`4Y8PSlX}Fm|shZE= z5MC^CM80STnpayKH%* zP!N+0cVv}~RTgtAdWny-#>y#ATPTeQwMDKMCZRQLAw=EGl{haM!_tIDu0;?)}-%QtjUdLbZ_Mj*5(}DFw@*x z_Es`jlcb#Sn7 zHN=x~3>1m6&c(@DNRztpF&m_DUh-B-aDOQQ`sJel>zfXO%-DwIMO`1oJRil&K1!@Z zN3<1Te*;COYC=S`$=cbRVR~{h>F`Hol-kx7@*PO;6pJqR9^;$?ku1YEp?X(e=Q~y3 zLZRG$8~VYL(tii~fk^7V3w?BIbEp1$Pz|I?^?j%YBB}ZTs#F{S-;{;+p&$q_UwO$|5XH#HD3NWkdV4+*<^!2*?w|Ui8KY1zxlsQMU4w{}>gT>WC6u~f_@2`uETQ_P z&yo_Q`IYZM%B14gtV4+u!*5aF_)H}pL3{WX2FYG!6261mooV|X86heA0f)Sut{+(y zn_u_|viSwy)6Xc5`2}(1e-Z7#wtr1H5qIEM)L#YuCQ3y-5VD#5jv~T+k@ydBf!(xi zm;Pjt%0~giQxMa%BS?L+3NkIC#i}t$)u4={sYom-J_QD%k>oLq(Rd_Ti&d=-!NpVc z;KUN(Gzju=#4*UsT4aaO(f4jHmsc&JBO zuW%#r)kNZHCb%VJvzpkfCN>prCA!B6ZX>vz`0WUAEk3ElsIqZVVtvP&doLd2>h7A#ZJF(e9@bEr3Pwj*A^p5_pEq{jSK1 z?kKUZ?*0iW86*90oNy+H{q4J4#U|x=Qc9*mHP%ULtdrE3!hbIk`_shcOC*Nd5}%Sd zP53i%?2?jM;`fdmPfJNg;xiJzEV1f-S;F7Gv(+p|u=vB%?`C}xt1dJr@db(Jcks94 zS9`xm_S;>t^CYK-a4uEs|7Xtb_p#=`yhr=Fk9GfGhu-VUhp?{0m&o~uc-3P}c zeP}J>KosNIN{p+ zF5pzN?=}y37k&uw_pa?956J(C#Q*a?_VP=J6OR8^iPc|Mze%jV$bKhw{*YLG7yl`- z`Ud|S{2UjXvoQ%N0|?E`%stJ_%srEF3@npy3J;T=3`z~Fs;WJp000000DwRNlk^Nf DS`&c7 delta 2362 zcmV-A3B~sP8M7LYR)5zB004NL#a9Pc+sGE4U=lh6NC@d9A&mqh*T8oAvTML=N=UY3 zg*{*eS#l(qK(_bZd;bsbhrHkPzL~MaWyNyf@y>bT9M3m*zFX$boh$JdJIcmaR`{CB zxs!G5`#kS4R?Bj>?H$56qnCIMt7oG{!z?)5iU^rq;I*uojepvul5H*OW`(;6nV(WdW2X^C&h|*WXIMAc)AqfbWojCcIu`$5@VA1@3T%=J^t4vQ66=Hq9%rIIg=`yNVspdAj3WLw|~L*YPvi#~KxJuB_+z4WxbC zD%^zjq=O)Edj0ZrL73K^HSV}kP>_QGu>&E_X+D~a`Di2#16kWO#D)^AL1xmzbTbKS z!)CdtSFNQGk({TYJ6CoLkKaP(ecgK##s)9k%VY+35ax!$!iCIZI|y@+!_72G)qDac zCqa&{Ab+1$oGg^GLGn3QLna> z=TkVC`HHh#F-2g{L7cT8a_4yz#T-;J;wbaF$$zI|bvEzm>wE_8RGr8;XA#N>lnbJU zvcZ~+>;QrC>f|8!mS(Y){saEsj$py^MIWj(>p?GS;~`xd%v->IZQLq%mIhiY{DAfNtsq zSl_51$gB-nY~4rkhdxSd_$avv9no}z{YR)X=~+hf8tY*5hUv-4gu@?HP<@-PBj15^ zc4fuo-WxdQKqM>kO{m@$Ww=fCEfmV#x1k>_DgAe#ABd#>yU<4;H@EA*2h~8TRDa)x zY9NxTAD~Lb5%3LJXdeoKEZ1_GJEFyZgeZnTMu}{R)tl)PVLp(_*8iz5nl=grlMD6F z&{K#=sebO8Q$nfxh3`2d!V;=q`Yb6?nqT=Iq)aM)%{rAxG5iMhjn7o#VKk3#VUX-q zCgD4{-JZ7Zkr9%zA8^Q9>H3k?uz!WcpCDUU^gaEI;#gP|SN<2#4s6?m6LANAMg3Lb zZ=zJh>qEA>-%&)kFB1PDF0h-i?ed>Yt9~*tyeQ(Db_l6Y)j+02wRi-RbS=s_mX5|# z;zOZ77EK+&7)wM`by(Hv5nLkO08Ts!PNN_XMQ^2=;I2Ozk7~D)gUz_3$$wNdHJC^w z;w|vq9~%U>6{<044V7?PTHOw0zg;~2DPtP8uspbg3A zgq&$Zns{Q}l9DjDJM3SA?CoEFH(=P)R0YSL6&xOQsX)t0E`bHP*$dJ#@f- zLus*S*;>7he9Z8NJu;|1SWTq08_?;G-4vcuseT+{EIO$D`(LprHjx;>k9x#dU!95H z8vOZd;skxU_yFAEA13@G0gk|n;smp=9wyLZ4et(6;d6nR6B%bS`*y>4a^&~ch`$GIq!tW$}g>R6(+$1p^#7;l4 z6D4>cz=zR`xA-v;{LGO1 zK1=Lm<*2&i3nZSL991`)lUQ}3d5OL{cR#`w2^RnQ`kksz;vR`_ORPH8(l)-2 zYpOZ9Nb;b%Q-5EG(@Qw2JKf#`XXkre`(NJ2z1-{if3QRQ!<7Trq48YZXP>G6zxJ6s zq&|BkR&R~Ff$kypBEc`oQB{lj(h$$f#M3JQu4VU#=Bp&i|CL-1B3LGjJi&zkH&nm- zR29?rCl5Fgwz6xFydm*wh|@+m3Kxm45%BBSeIhTCbAMPPx@O4!IbvVo(ynnTZ0&(# zlRi`q_)Y8q;anhbIt04}dlIWRe}%}`Lou|6VtBYKNA=f@T{#MG?#fYnd_?501^fo~ z`X21Rv4?!Vxd+Z$0Vnd0zTPJIoe)24Q}Gpkcc1+C_8HIn`?UYTKKUO8{3iBMfNQJo zw0`nV>whQjG=)DV_>%+ZetH1i&kmsb`2lplIDqb#2hjcM0J>ivK=+%_T{{`-8{dXF z;oAEy;6&K>`@9Q3g!sGH_K*AI|3u>dc@KN}CBzBG|Et96%j-9Z)tAEW#LgcQtMBVS zC05_^{{caJC}l!PPG9;1002`004kL3X{GJKMALr>Hq)$ diff --git a/Examples/Resources/GpuParticles_force_vortex.efkefc b/Examples/Resources/GpuParticles_force_vortex.efkefc index 1ec815d3016719681e3efbbd1e9ea945c8effaf0..0868abf5e7b4e5fa55a3559846c8348d9587d7cb 100644 GIT binary patch delta 2309 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 Ou?ilO8w(JVLJdNuN_Un3 delta 2305 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 bQMf&mrVL#K4|LkPlMxFZlMV|IlQj)O?P!vG diff --git a/Examples/Resources/GpuParticles_sprite_directional.efkefc b/Examples/Resources/GpuParticles_sprite_directional.efkefc index 75a46f7fdcc0052d47950a2e263416111d294ca0..e04e05d085e6f157de08c9538f93b6806bc1dde7 100644 GIT binary patch delta 2446 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 UKmY)MKazY&&+VF9x2vkVx`+R;ZZ=gc@(qV` zJ8N5ydERBLndL0YZNhV2EAtRL#wJR-QLwog7B;KEn^^~&uz$*B%UsrsDtC^+p3#f^ zC_Bm~xao4cg@xIiwtY-IbhDKmXEWU7w&v=Vxu}HwxTiYrxB>Px*21Q>0>58%uS0v%*0ywWU3uORtA8jw#|+~p=9$tQyt{=uEV!EO z-bUea&*8tBAxKK%LPg8-VJya!S%|=U#ztsZ+Yv8@InCbSwi5+KR7T__%(=LSW)dD6 zPeLGTIl4$Q#ad;3O$>L^P?H(d)b1c6IUa@YLdDiyei!TE`97M~w|U`FCiDD0#@q`* z<5K3ueSeI(moUv7HnQDEUFQVFJp1*?d{K2aTZ>CbsqC`5D%o#(8r%Y|l;DvEW zjH8PA2{=rZb$7z5n(ibV#30LUx%Z}!xabVA=ciRlTr13gHESXy%~+^#UU-eQ*VbDq z&O%YHsMvY0`|lP?T7}=kI~j0Rb4wY#TeLOZ$bWEi-7U@Gog^*jPx-v>Czs$pT3v!! zv&2zWA)S>Q&Ma8vH?Z{MIkC5;$DD@kFM`9a7xOG4?a3WeE9?0s_{^G>s_QHxiJDOw z9-tr+tcZdQvgCQ8YHNm!{2@a5hsk*pUGxtdijD#zkhc)U9Cu1@i-s}R z4Szn)*L4%y@*PYxsc-6znCOv6Ml>0JSGMxnnq_KYuiBR5ET|4!lZT2}OYY?HPO%p9 z8kV-;kL4T=_s8>=?r^7w^yCt+i>47(E+L+*tz)(IO)l!GqfDxStfiZ7%=A#)@=&7Uq2v?zh<{T;=-cQ`IkSq0on(u;;mX0Z&7V}UV|QHC z+qd2?79H+Zv97);Yi)6R6Rr=mO}^K43!C8KHvIip%6|v`zDfE&g+C5nW3T^vaP_Uq z^?kVdCh7VCwxw7CzAbm-hk_u$QU&>mGx;M#G4`>yTcufDDW3>=-zLxMPd(F|UVkVU zT)2ORb|)s~`ne~kjMDcDZ{~~$OSpdNv7|+Le&x*|ZPM{;)}u^{;hintcuZv;L!W;O zL6WO1!grWqi!1OUpmOwzTZc^fNZc(z59BUqt^~mVrq`5B!S# zSA)Nats+i#c?$iGO@w}t_z%&*PJhO-Du1$}+Fj3ZhR37PCX_xE!hbPw(MKcEcrym+ zBiPHabR?cS3hQtzl4`*-mWZT|;cc`P5hl`Y;KY;QvoNbufoD->Y;t@-q z7wU=R1rbr=B8nG{#N)BiR5B48lp~;MGMz|Y66r=SBcXY|H7Mt~0^dYBdR0aczXrl^ z?7AGJZV2^M>LwN@78#BH^?%>kE##884RbOY6&J4hiKnQhheP=1y%US$*~LfMF8>JO zAN6qcZ|j@ncFI!SED3GNE$HxvD4qOWi_@jXHCNrHPw zzP&zfVSVzcs?jg8s>Z3>d+{3}_S3cciQgGwKPz#o#ODI~ZA8DF=zn(*{Z68PoalE2 z^v{!A{#`x0NjN@8v$F)KV2;P(=KFX1aZOmd8n7#h(TAv#flV?M?~O85y9 zf0E!7!D+%jSSL($!hb|39MHM5Z)~AG^N#L2ug3`oICp(cGkc!!dx&Ni!7tRod9e=8 zOMA|cUHi+#_Z1T7tAsP=b6VIq>7xnX9%hq7U!4zq(lRA+zr@prJfC-aKg4F_^OUr_ z7SI_WIs-&U;aL*f>!hdd5uJ>Do|cw5iO)zpFY#H4?-PEO)PHKXXG83beS0%hi}M_b zO`U#20nP=&xhQe24$l5Pg|CBu)eH6XRO>TzXm1WSphM%iREN&9&Witkk6)Kq-6jh@ zzX|ukE?y*egz^%mt{+QrT z8u0zJ0pHIW@cq02-!B^Q{jveyuNv_Ex&hyB0=;%4aBh4X-~{*HcRnY~zCUCy{1D(D zytjWmB>yK8|Ic;g@=JgdjQ>}O)n8`6Nv!@d`<>|gA+h=r{8M7}?ff_O7XOZvX%Q delta 2210 zcmV;T2wnHF8?PIXR)1dz004NL#aD+`8_5!FBy23QO)$73oc{LEN@wE6UI5M!b9vB8!zid(dK4Y*sLONX6?j-OrpxUX7G|^B)-f^YW`uRJX>M{`b9KvH&?~$ZmaJ8f&q|{W8VlQ1-VT@C(r5>! zUE+pS(B17$*2Gr2h{x1;&EDYMm`$PM@V&>kof9A~_o#yr5` zxQ^#^L8M5x3kJW)I@suz?o8-52zYf#grF7mnsb@;vOG77+~zjT^A(wQ!?G9nmRqy= zRo2QzjcQpNGr+#aTG*6UJ(cejv-c~`UD z+elpgIs7+02uVqtuWAK8gw2>Vi&1z_+XxMNJM6_UtJ&+^c4DB2%!qXfb3Wmr>7<9o zQV_^ljxLs&W)YcR6OY>&sL2)7)$Sl7`8)#O`KqnE{4Vyx^L;d>Z}H-zZ1(v*jQJOW z#>MQ5dw&@7FJYQl6teL$_EUm9FCp7zfxm+A{D)T&-gLE=LyB~4nKOzMPnz1Q!HZ*% z7(*5d<8YX)=gpnp>X5J4u??pYl21Pj10|w7LW{ zW|J z!`2r4XE}$%{pUGLceqo+^5hn;iKY=*E+d|ttz)%>P!I%ItYUrQO#TQ_jDGA@t2C=C+l5Q|NaT5&A{qKSTpNS%1r_{>cXGcRj-yo`}Vokot58|HZ{cAB)Bk&3MQh zK`qBK(M0+vtV8i=x&>oA8BHI<+gJnc2Y&09zaSkW+Ww+IHk;~(>PzE(P4Gi43FWvVm-=B>lN{Q1_GJXS!660 zO(fzY=~Oa)PCfy}Qki7tyvR>7eL)QI%taANGIdErpS+Bv&GF5PQuzwrBr~zA7$9{G zgrWF#`H;RLeADTh*rIrJB!BkTf8)2Xs^o2$Q?Z!1deu*iBCj3};h*XZQT#ecY@Gym1@xPVelyWmxSRMMC-?-x zJ!HMTK5k)sa#Y#qmsn-vWc|JP4G{aOdj7=kG_jwNI3n@cfPO2{Z+|2D?L@zW=ywwR zu7LhIvX+0B&u)^>Zjw)h&lCL%a#UHpNOUfdc`qMQpT>NJ_+FKx+O=yEt6jTJ*3w7v zaD({XB={DI|2DBd7l<=L;*5|u6&?)mdkMdn@D&~+>xz;X8qpahIx&LdKE^Rh_(>9f zir_TC8N%ORCrot0M1Ln7(7Cf`Y@uEAj_f(F#|Z~G?W6|o`ut}0Jn`)z`dtLSZ~)GW z2jIN4>kQekzf62zAu+#7IHNwNg^iIu8u#sCHbL~&`OqgVlM?q!Jax$PIZa}lmg7lj zc`cwbKy*$KozoJ}kl0=)dvTBGWaW59T4p6yr{5gWxli~xl7Fk6o((;t&T(J=tNJ`h zokyObL;K}i13EOG^M~xa$p5wP-q`cZ4ApDq0;v;qBMb&Omk3AQ4*3Icu9I4w_xVk@ z7k2Ohxg%7x;pS?}~jn__8-u5|R_RhX% zlFG!R0H>R96n}n~_-a1Cg{>01;;1YZh;K2Ve~suX%=e8`;nD#(Yvf!h`}{Vh6V7E4 z=VOA`2{t5FUkVjsHv=(*12I_pa@1EwbzhFcPxj@gHQL1P`1}ZS51?N=Kt4APz}fUU z;b+dZMeufjAJkNQg`Xah|K1_vdH<059~_eZq0et)AAk9{8E0XWe`^gAoG18Wf^1rClde92UyE50ZuUfUnN$5rTr$c`YY{sqVtEu>g(fAiPg9B-^)t}7D7o*U+x3| k08>jwMYG2U4+IMEL6E|AJqp(&J(J-KI+K421(P2Qk|QE*9smFU diff --git a/Examples/Resources/GpuParticles_sprite_simple.efkefc b/Examples/Resources/GpuParticles_sprite_simple.efkefc index 5f242e9bb3351b3b391ed5d665b7eb153904d6ba..6cf394a2bab37f7c1644c5e2fa1ad45f33afb9d3 100644 GIT binary patch delta 2248 zcmV;(2sih=8lxJJR)3oa004NL#a9Pc+(;5`f=vbkHpUs8jm@A*gw5n-J>c0P7`(wN zW_lPIjWm`t1aHnc=e>V%KjePXece40g~f7k+lCi@ciEv+;sq<{WO-2$`MZwXB(q+keHPZ7u0$nY+gzPZ@cB zoE>N5-14|n$7EP}xM^n% zZ@Yz6v6WWBoEk4X8@vr(6gmOFcloy44&ri$T4=sBb8_QIR+dYPSM8E)mc!yTIEE3A%9={bI{>|KSG z2}j>FtTnZFP27`h+RmtHUWdg=-NoJwoOs^T9q%Smlz+K}Khu4zQ4!}$dY0ct+9$2t z9cWKG2m-g)FK-uwS>0LZjvE05IT#Qp5aNvHqv@!R#$qs#wp~LUD9##WCM_(t6R|h-WU|b zBF!CHW#g62`GQ{J6RfFn%QF^AV^STF>$xdt%~%LgH|I;7=cdKIWOb9j%sSZucZ!CE z9bA~nrFaJE#I;E7D=@06K}K^I4#!NaMWv*IJ%8zc7JKrrY27Q#VQ<0F4Ku~9HLq|F zdy+J7JmKj;PhQ`vqGv?rGN_QTd0CKF&Mq#9RztzfSc{?oq{6I@9>F=5{4!bKTVC1W z_ffpU?J_brv2E!^BfA3i8LL$G+y@|6gi`Pt97^!INZ;eK>=E}3^bN*PmgmZjZpwqa ziGLCGl*oOE)_Y2Z`@>xzu(uG!EO!gK=rWPcF}`M4NaZRVO&A-7D;#CT2}Nh}ob3PA zRomj?JdW+U^QtZLauSKM;O-js6ieQYTL{+Dhie4uIooi#`v}LA)v_+`StQ*=JZZ;3 zp%@!n+*}c9Qe7XjK$_qsuVBNa1elqn0DtRSj}c_rHY_jd_$cQ3DDL?vQHG8fEyDf= z+FW{;5pA*#wqTf^TueFqaT&$Gy@h-S(tG*5%e`&fb0A9Fo7{N<)%*Ge->v#K3gy8& z&=0nh{=3i*L{k4f=wn)&yY=6PY9LjrA3!w_N!1TgrQ!QyH5~^SMEGbc% zU;7@UOe%hZ_Ld^W@W<4*K2wQDF(ST$L2_1^gzw>YciMhHMo7wj#3k>f>nB#t7MFg8 zY;no=^b3k(aY?lNuVNh7wh1Sq2Y-G;{Z-)aqEy67LJqV))aa4;Ptm|`%C<{?vHr@3 z0mJJcrfF43eX<%dEuzJ0uo$dG8Ak^rv84DM=#NH{$MKBDBgs1KYV`;%KG*cin)`>?#(@u)juyzU$EfVblFLqjZ)w(e-B9Q?#JqE_`b+I1d`Sqe$p8;bqaaQWY z&S5d4ofme7hA)VNMn^7+M?85+t_FL=UOdq&LW*BT;-D3a4kr`w=oPsF(h`I5!K+$8{8*YbxjPQ>KxCUMnmjzZ8ZXmcZ#IGj&YQk5ziTG+J z@w5=!8nRhKY}OE)3bzs669l&t+(GRVFVHJ3aEL zvf6t{`o~6OpV+6+uP7wb7cG`)Zc4DVJWGA_2Y}LE`4({pK z=d_17Ljk9j4HJF`vDr%S$N@Od9DwueuKBPde~#!rPvU%ma9#{J4eTY-FQY_vjM!Jb ze^N@u$vm7OoJnGTrf3C=Iq_Swf|+`9i)Hj|HclT16PhVLbPFN-=ZJlUjeX-(_|XA4>tyzr0l$eA z38$CDX%TD_T#{IQO*|%YClo__CIlx(d4RONp|0eNmiGP<^{cr3KV&_kZ)wlCs607g@e*>a) W7=g172`K}UKnysOPznf>cnrmn=5GK1 delta 2279 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 delta 2370 zcmV-I3BC4>9LpP!R)4z)004NL#aM?{+{hAbk}=7EF~JFAY~!>HlZ`i%mo;H_1~7Po zSIjhwj7Azu8iF_HoO68t@IK^y)4Sb`+#S${JdvkC>vT+)mZcj{O- zOY?%Y$#3VmIis)fX=h^F)y=GX1TMl*&yKJ$Zo1q)%4*oGw%s5ey4lE%u_cvE5}N{8PwF$NDDGq;)a#g-JN5simkK~=Hyt(-sEkFqEI{H-r_sXaS)d~ z)F6C<)v-w%i+}0_klI}UGkncm?%o9}J&;K2>v?ziq=!~cv352saxYqj%5$g4Pb<;L z8Dx>RT$1lu%m_v=>mh5~yQXujRhB;MI-YZ%D3NYw4St@ru#s)u8P{zPFx4+o(Q9!j@%fS~5`P(B_1^F@q{nS-OE=e*;}x;L zmSNc=hH({PCNu|g*HDg(tJ&^#)Gz%Q{x>y<2$Gm7YFQq_o=ljzA$U*O$P8N>mR$kD ztY&X;+lhdJ0!78LggG7a&{W(*qX`J4EJqisOtJ=9W)s7m8&H!A+Ep7yMsj=;zL}z} zyZmu%i+|^PcT(Txxw|tnPwZn%KN&PG&OEh`G5s{c%%a7OXRxgjr1=_(ZD#qiNY5XP zAib$#DTNa0*fD1mC7v*~RfFfoATf$6X2-#qDClmA+p_B>uvT#vM3+yhRd6jg1=h5Q zEHooiFC`p?9Xu1<~lzcUHq$K)#FK zjxX?Sw`B7rG`>jXwm4^&o#o4LUb1YLZ?9nOUZdX;z3RHQCVTruj224vY6*+X@|WP6 zvVXR?{W1zVzGG?yJ^Kn&rp;o>b?zeIu2C9Z1zQ3QtDU%ClJd?f&K7R7EYFo}&5#Ak zVxfOAIXN89zu2&y*e5KGVl1h`gRA8Xqs{YS`R zX~NsT+ZOa{WIJj#H3t5_vDmO`hMX>o)KvY*DpPmv?$N7 zya>`J9lvHB%A^?HW%Z56ROS)fB7fgPkgQb};X8!gTej~}5mK@ru*nb0^&_ihi%UPj zwz%X)`Wel!xFl|nU&QTVSq6fL*8dg#w+nw0ts-6(@{ao*O@w12@gL&cIy074{F7bZ z{j6Z(YS0XaSK;jt4Tr0-2MO_A5e|hDwHPGpz=$M6(S-PP7>tAx^>{{Np?}0t%!V6~ zWh~hUPBacqlOW#=-AFVe?qEC`3g3tix8RJ%6QRU#EEbC%LlT3LVQ^dF8VR>SB_h5K z7VHuiUkA|+WD*JE;{cDF(M}N{+$A%L#Jh1vghE5=!WbIG$Hzv9uWb~>xChK+{3P7K zJcTNRL(yntI1!IUPRkKcIDejuCC`YZ#u8`6Ba-YDabodvBAZwr>tef?=aBa<2}eRj zbN#&3jrLs)@v9Y)B+D9RA;bBUiAf*j1S0;qWzJ z^%GA~K@V5sKW~nK?AgV4-$Q<#k84mzH7|bk#I97UrKN%3MuM9H{C^t4uOWPen@OH6 zB)4M(w+1w8iDoU)RJe`!wiA4u;0_Y^gpcc4r+lhvbV+le_g3zf;71 zTH*$Y&jj=viGCB&ZzlRJME@AkZw=_5{aZC`BQx!M)+}(e}dp7!8Zv1V4ZfN(@u2S13JU|=2pEY?#+GUdYtwE zru^FXUgDQCVzdqK;9jTzHb#4(Z7kCGMB_C8F~(;ixYb@q2}+ z-1TuSdzE-e%^ z=hw3hV%JF@8N{~`(C;Vu3Y!P!sjyWBr%3Led7t0J?tc@`1(K&tutTsb@g<2%#J(BG zp*@hp)`6S>iMJ2rD7M*Y^On!4d1S1&34SNQ4{9pD z!tWlE|K1_Ii#|0=Qi>+m;;)z{_kMCT8Q)nAH#O02%Y{}1z0GFn1OPG7FGND0OR8UO$Q00000 z000000DwOL0PsO6Tn|1eTn|2zfeR;-kP8%(cMU2v4|Li(4|G~P000000000000000 o00000004kL000004|Li(00000004kM0RR910ssL5K$F%DH~ue@5C8xG