FsParticles.ankiprog 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <!--
  2. Copyright (C) 2009-2017, Panagiotis Christopoulos Charitos and contributors.
  3. All rights reserved.
  4. Code licensed under the BSD License.
  5. http://www.anki3d.org/LICENSE
  6. -->
  7. <shaderProgram>
  8. <mutators>
  9. <mutator name="ANIMATED_TEXTURE" values="0 1"/>
  10. <mutator name="LIGHT" values="0 1"/>
  11. </mutators>
  12. <shaders>
  13. <shader type="vert">
  14. <inputs>
  15. <input name="mvp" type="mat4"/>
  16. <input name="cameraRotMat" type="mat3"/>
  17. <input name="viewMat" type="mat4"/>
  18. </inputs>
  19. <source><![CDATA[#include "shaders/FsCommonVert.glsl"
  20. void main()
  21. {
  22. particle(mvp, cameraRotMat, viewMat);
  23. }
  24. ]]>
  25. </source>
  26. </shader>
  27. <shader type="frag">
  28. <inputs>
  29. <input name="diffuseMap" type="sampler2D">
  30. <mutators>
  31. <mutator name="ANIMATED_TEXTURE" values="0"/>
  32. </mutators>
  33. </input>
  34. <input name="diffuseMapArr" type="sampler2DArray">
  35. <mutators>
  36. <mutator name="ANIMATED_TEXTURE" values="1"/>
  37. </mutators>
  38. </input>
  39. <input name="animationPeriod" type="float" const="1">
  40. <mutators>
  41. <mutator name="ANIMATED_TEXTURE" values="1"/>
  42. </mutators>
  43. </input>
  44. <input name="colorScale" type="vec4" const="1"/>
  45. <input name="colorBias" type="vec4" const="1"/>
  46. </inputs>
  47. <source><![CDATA[#include "shaders/FsCommonFrag.glsl"
  48. void main()
  49. {
  50. #if ANIMATED_TEXTURE == 1
  51. vec4 texCol = readAnimatedTextureRgba(diffuseMapArr, animationPeriod, in_uv, anki_u_time);
  52. #else
  53. vec4 texCol = texture(diffuseMap, in_uv);
  54. #endif
  55. #if LIGHT
  56. texCol.rgb = computeLightColor(texCol.rgb);
  57. #endif
  58. vec4 colScale = colorScale;
  59. colScale.a *= in_alpha;
  60. particleAlpha(texCol, colScale, colorBias);
  61. }
  62. ]]>
  63. </source>
  64. </shader>
  65. </shaders>
  66. </shaderProgram>