ForwardShadingParticles.ankiprog 1.7 KB

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