compositor for 2d shader
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GRAUZONE.pde 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. class GRAUZONE extends Shader {
  2. float inc1, inc2;
  3. int nFrames = 20;
  4. int iWrite = 0, iRead = 1;
  5. PImage[] buffer;
  6. PGraphics grauz;
  7. GRAUZONE() {
  8. name = "fxGRAUZONE";
  9. //params.add(new Param ("discance", 3, 100));
  10. params.get(0).setValue(.2);
  11. buffer = new PImage[nFrames];
  12. }
  13. void animate() {
  14. inc1+=.03;
  15. inc2+=.04;
  16. //params.get(0).setValue((sin(inc1)+1)/2);
  17. if (random(1) > .99) {
  18. for (int i = 0; i < params.size(); i++)
  19. params.get(i).randomize();
  20. }
  21. iWrite++;
  22. iRead++;
  23. if (iRead >= nFrames-1) {
  24. iRead = 0;
  25. }
  26. if (iWrite >= nFrames-1) {
  27. iWrite = 0;
  28. }
  29. }
  30. void apply() {
  31. //buffer[iWrite] = renderer.get();
  32. grauz = createGraphics(renderer.width, renderer.height);
  33. grauz.beginDraw();
  34. // grauz.resize(renderer.width, renderer.height);
  35. buffer[iWrite] = renderer.get();
  36. if (buffer[iRead] != null) {
  37. grauz.tint(255, 127);
  38. if (this.animating) {
  39. buffer[iRead].filter(INVERT);
  40. }
  41. grauz.image(buffer[iRead], 0, 0, renderer.width, renderer.height);
  42. grauz.tint(255, 255);
  43. }
  44. grauz.endDraw();
  45. renderer.beginDraw();
  46. renderer.image(grauz, 0, 0, renderer.width, renderer.height);
  47. renderer.endDraw();
  48. }
  49. }