ForwardShadingParticles.ankiprog 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. <descriptorSet index="1"/>
  9. <mutators>
  10. <mutator name="ANIMATED_TEXTURE" values="0 1"/>
  11. <mutator name="LIGHT" values="0 1"/>
  12. </mutators>
  13. <shaders>
  14. <shader type="vert">
  15. <inputs>
  16. <input name="mvp" type="mat4"/>
  17. <input name="cameraRotMat" type="mat3"/>
  18. <input name="viewMat" type="mat4"/>
  19. </inputs>
  20. <source><![CDATA[
  21. #include "shaders/ForwardShadingCommonVert.glsl"
  22. void main()
  23. {
  24. particle(mvp, cameraRotMat, viewMat);
  25. }
  26. ]]>
  27. </source>
  28. </shader>
  29. <shader type="frag">
  30. <inputs>
  31. <input name="diffuseMap" type="sampler2D">
  32. <mutators>
  33. <mutator name="ANIMATED_TEXTURE" values="0"/>
  34. </mutators>
  35. </input>
  36. <input name="diffuseMapArr" type="sampler2DArray">
  37. <mutators>
  38. <mutator name="ANIMATED_TEXTURE" values="1"/>
  39. </mutators>
  40. </input>
  41. <input name="animationPeriod" type="float" const="1">
  42. <mutators>
  43. <mutator name="ANIMATED_TEXTURE" values="1"/>
  44. </mutators>
  45. </input>
  46. <input name="colorScale" type="vec4" const="1"/>
  47. <input name="colorBias" type="vec4" const="1"/>
  48. </inputs>
  49. <source><![CDATA[
  50. #include "shaders/ForwardShadingCommonFrag.glsl"
  51. void main()
  52. {
  53. #if ANIMATED_TEXTURE == 1
  54. vec4 texCol = readAnimatedTextureRgba(diffuseMapArr, animationPeriod, in_uv, anki_u_time);
  55. #else
  56. vec4 texCol = texture(diffuseMap, in_uv);
  57. #endif
  58. #if LIGHT
  59. texCol.rgb = computeLightColor(texCol.rgb);
  60. #endif
  61. vec4 colScale = colorScale;
  62. colScale.a *= in_alpha;
  63. particleAlpha(texCol, colScale, colorBias);
  64. }
  65. ]]>
  66. </source>
  67. </shader>
  68. </shaders>
  69. </shaderProgram>