Esempio n. 1
0
        void draw(){
            wc.begin();
            if(!switchVideo){
                wc.setUniformTexture("colorMap", img.getTexture(),  1);
                wc.setUniformTexture("heightMap",gray.getTexture(), 2);
            }
            else{
                wc.setUniformTexture("colorMap", player.getTexture(), 1);
                fboDepth.begin();
                player.draw(0,0);
                fboDepth.end();
                wc.setUniformTexture("heightMap",fboDepth.getDepthTexture(),2);
            }
            wc.setUniform1f("time", ofGetElapsedTimef()*time);
            wc.setUniform1f("gradientStep", stepGradient);
            wc.setUniform1f("advectStep",   advectStep);
            wc.setUniform1f("flipHeightMap",flipHeightMap);
            wc.setUniform4f("advectMatrix",advectMatrix->w,advectMatrix->x,advectMatrix->y,advectMatrix->z);

            fbo.draw(0,0);

            wc.end();
            img.draw(0,0,img.getWidth()/4,img.getHeight()/4);
            player.draw(img.getWidth()/4,0,img.getWidth()/4,img.getHeight()/4);
            gui.draw();
        }
 // need to have depth enabled for some fx
 void PostProcessing::process(ofFbo& raw)
 {
     numPasses = 0;
     for (int i = 0; i < passes.size(); ++i)
     {
         if (passes[i]->getEnabled())
         {
             if (numPasses == 0) passes[i]->render(raw, pingPong[1 - currentReadFbo], raw.getDepthTexture());
             else passes[i]->render(pingPong[currentReadFbo], pingPong[1 - currentReadFbo], raw.getDepthTexture());
             currentReadFbo = 1 - currentReadFbo;
             numPasses++;
         }
     }
 }
Esempio n. 3
0
 // need to have depth enabled for some fx
 void PostProcessing::process(ofFbo& raw, bool hasDepthAsTexture)
 {
     numProcessedPasses = 0;
     for (int i = 0; i < passes.size(); ++i)
     {
         if (passes[i]->getEnabled())
         {
             if (arb && !passes[i]->hasArbShader()) ofLogError() << "Arb mode is enabled but pass " << passes[i]->getName() << " does not have an arb shader.";
             else
             {
                 if (hasDepthAsTexture)
                 {
                     if (numProcessedPasses == 0) passes[i]->render(raw, pingPong[1 - currentReadFbo], raw.getDepthTexture());
                     else passes[i]->render(pingPong[currentReadFbo], pingPong[1 - currentReadFbo], raw.getDepthTexture());
                 }
                 else
                 {
                     if (numProcessedPasses == 0) passes[i]->render(raw, pingPong[1 - currentReadFbo]);
                     else passes[i]->render(pingPong[currentReadFbo], pingPong[1 - currentReadFbo]);
                 }
                 currentReadFbo = 1 - currentReadFbo;
                 numProcessedPasses++;
             }
         }
     }
 }