cansik/processing-postfx

Black screen using postFX

lucaoskaique opened this issue · 3 comments

Hi guys, i'm trying to use postFx but it's not working with my video, what am i missing?

Perhaps my computer is not powerful enough?

I'm new with processing.

import processing.video.*;
import processing.sound.*;
import ch.bildspur.postfx.builder.*;
import ch.bildspur.postfx.pass.*;
import ch.bildspur.postfx.*;

PostFX fx;

SoundFile file;
Movie myMovie;
Amplitude amp;

int numPixels;
int blockSize = 1;
color myMovieColors[];

void setup(){
 fullScreen(P3D);
  
  fx = new PostFX(this); 
  //file = new SoundFile(this, "FKAtwigs.mp3");
  //file.play();
  
  //amp = new Amplitude(this);
  //amp.input(file);
  
  myMovie = new Movie(this, "teo2.mp4");
  numPixels = width/blockSize;
  myMovieColors = new color[numPixels * numPixels];
  myMovie.loop();
}

void movieEvent(Movie m) {
  m.read();
  m.loadPixels();
  m.play();

  for(int j = 0; j < numPixels; j = j + 8){
    for(int i = 0; i < numPixels; i = i + 8){
      myMovieColors[j * numPixels + i] = m.get(i, j);
    }
  }
}
void draw(){
  background(0);
  //float vol = amp.analyze()*600;  
  
  for(int j = 0; j < numPixels; j = j + 8){
    for(int i = 0; i < numPixels; i = i + 8){
      int loc = myMovieColors[j * numPixels + i];
      float r = red(loc);
      float g = green(loc);
      float b = blue(loc);
      float br = brightness(loc);
      strokeWeight(5);  
      stroke(r, g, b);   
      point(i * blockSize, j * blockSize, (br * 1.2));
    }
  }
  //saveFrame("frames/##########.jpg");
  //image(myMovie, 100, 100);
  fx.render().bloom(0.5, 20, 40).compose();
}

Hi, could you please explain a little more precisely what is not working? What have you tried, what works (example sketches?), what exactly do you want to achieve? And I also need some information about your operating system, processing version etc.

And are you sure it's the library? And if so, please create a very simple example that shows the error. Preferably with an example frame from the video, which I can also run on my system.

For example just printing some white points works and blurring them seems to work:

import ch.bildspur.postfx.builder.*;
import ch.bildspur.postfx.pass.*;
import ch.bildspur.postfx.*;

PostFX fx;

void setup() {
  size(500, 500, P3D);

  fx = new PostFX(this);
}

void draw() {
  background(55);

  // draw a rectangle
  stroke(255);
  strokeWeight(2);
  for (int y = 0; y < 100; y++) {
    for (int x = 0; x < 100; x++) {
      point((x * 4), (y * 3) + 50);
    }
  }

  fx.render()
    .bloom(0.5, 20, 30)
    .compose();
}

Hey, @cansik , how are u, i'm sorry for the bad issue posting.

I've tried all the examples, they worked fine.

In my code i'm trying to edit a video, to make the video pixels to be 3D, this part worked, but when i use postFX thing doesn't work out.

My setup is: i5 3570, 16gb, rx570 with windows 10 build 1943 verson 21H1.

I used Processing 4, didn't had time to test with processing 3, do you think it will work better? Is build number three better for postFX?

Or am i doing something wrong forgetting something?

Ok, if all the examples run and work it maybe has to do with the points you are drawing. Does my point-drawing example sketch work?

And would it be possible to share the sketch together with the video so I can test it on my system? You can upload a zip file here (drag into the text field), if the video content is not confidential and not too big.