ParticleUpdateCommon.hlsli 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  2. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  3. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  4. // PARTICULAR PURPOSE.
  5. //
  6. // Copyright (c) 2015 Microsoft Corporation. All rights reserved
  7. //
  8. // Developed by Minigraph
  9. //
  10. // Author(s): Julia Careaga
  11. // James Stanard
  12. //
  13. cbuffer EmissionProperties : register(b2)
  14. {
  15. float3 LastEmitPosW;
  16. float EmitSpeed;
  17. float3 EmitPosW;
  18. float FloorHeight;
  19. float3 EmitDirW;
  20. float Restitution;
  21. float3 EmitRightW;
  22. float EmitterVelocitySensitivity;
  23. float3 EmitUpW;
  24. uint MaxParticles;
  25. float3 Gravity;
  26. uint TextureID;
  27. float3 EmissiveColor;
  28. float pad;
  29. uint4 RandIndex[64];
  30. };
  31. struct ParticleSpawnData
  32. {
  33. float AgeRate;
  34. float RotationSpeed;
  35. float StartSize;
  36. float EndSize;
  37. float3 Velocity;
  38. float Mass;
  39. float3 SpreadOffset;
  40. float Random;
  41. float4 StartColor;
  42. float4 EndColor;
  43. };
  44. struct ParticleMotion
  45. {
  46. float3 Position;
  47. float Mass;
  48. float3 Velocity;
  49. float Age;
  50. float Rotation;
  51. uint ResetDataIndex;
  52. };
  53. struct ParticleVertexOutput
  54. {
  55. float4 Pos : SV_POSITION;
  56. float2 TexCoord : TEXCOORD0;
  57. nointerpolation uint TexID : TEXCOORD1;
  58. nointerpolation float4 Color : TEXCOORD2;
  59. nointerpolation float LinearZ : TEXCOORD3;
  60. };