From a2d734a72ff37a5798608563c7550cd09abff951 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Sun, 28 Oct 2018 22:18:00 +0000 Subject: disabled lut --- gui/src/chainImage.cpp | 118 ++++++++++++++++++++++++++++--------------------- 1 file changed, 67 insertions(+), 51 deletions(-) (limited to 'gui/src/chainImage.cpp') diff --git a/gui/src/chainImage.cpp b/gui/src/chainImage.cpp index f30677c..c93f9c0 100644 --- a/gui/src/chainImage.cpp +++ b/gui/src/chainImage.cpp @@ -5,9 +5,9 @@ float distance(ofPoint p1,ofPoint p2){ } void chainImage::init(ofPoint _linkPos,float _linkScale,float _linkRot){ -//#ifdef GPU_ALGORITHM +#ifdef GPU_ALGORITHM shader.load("shader"); -//#endif //GPU_ALGORITHM +#endif //GPU_ALGORITHM linkPos=_linkPos; linkScale=_linkScale; @@ -17,6 +17,9 @@ void chainImage::init(ofPoint _linkPos,float _linkScale,float _linkRot){ dragPos=ofPoint(0,0); dragRot=0; dragScale=0; + + remap.load(); + } void chainImage::start(bool reverse){ @@ -33,6 +36,8 @@ void chainImage::start(bool reverse){ transition ); */ + + } void chainImage::gpu_drawImage(){ @@ -408,25 +413,7 @@ void chainImage::drawRecursive(float fadeIn,bool additive,float intensity,float glPopMatrix(); } */ -ofImage makeLut(float gamma,float pedestal,float clamp){ - ofImage image; - image.allocate(512,512,OF_IMAGE_COLOR); - uint8_t *pixels=&image.getPixels()[0]; - for (uint32_t b=0;b<64;b++){ - uint32_t bluecolumn=b%8; - uint32_t bluerow=b>>3; - for (uint32_t g=0;g<64;g++){ - for (uint32_t r=0;r<64;r++){ - uint8_t *pixel=&pixels[(r+(g<<9)+(bluecolumn<<6)+(bluerow<<15))*3]; //+(b<<12))*3]; - pixel[0]=(uint8_t)((pedestal+(pow(r/64.0f,gamma)*(clamp-pedestal)))*255); - pixel[1]=(uint8_t)((pedestal+(pow(g/64.0f,gamma)*(clamp-pedestal)))*255); - pixel[2]=(uint8_t)((pedestal+(pow(b/64.0f,gamma)*(clamp-pedestal)))*255); - } - } - } - image.update(); - return image; -} + void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoomMultiplier,float startGamma){ @@ -437,16 +424,6 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom glPushMatrix(); - if (additive){ - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE); - ofSetColor(255,255,255,255*(1.0f-min(1.0,transition/fadeIn))*intensity); - } - else { - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - ofSetColor(255,255,255,255*intensity); - } //ofDisableAlphaBlending(); @@ -456,6 +433,7 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom //add a scale factor to the outgoing image that builds up over the transition + glDisable(GL_BLEND); glPushMatrix(); //if this is linear we see the jump from the unlessaccelerated phase @@ -466,17 +444,21 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom glScalef(zoomFactor,zoomFactor,zoomFactor); - //ofSetColor(colour); - - float gamma=1.0f; //transition; //(startGamma*transition)+(1.0f*(1.0f-transition)); - float pedestal=0.0f; - float clamp=1.0f; //-transition; - lut.load(makeLut(gamma,pedestal,clamp)); - lut.setBlend(1.0f); - lut.begin(); + //need to use the LUT shader on both images so the they match + //float gamma=1.0f; + //float pedestal=0.0f; + //float clamp=1.0f; + + //if (!lutLoaded){ + // lut.load(makeLut(gamma,pedestal,clamp,8)); + // lutLoaded=true; + //} + + + //lut.begin(); //setAlpha(1.0f); draw(0,0,getWidth(),getHeight()); - lut.end(); + //lut.end(); glPopMatrix(); @@ -487,7 +469,16 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom glScalef(getLinkScale(),getLinkScale(),getLinkScale()); //ofEnableAlphaBlending(); - glEnable(GL_BLEND); + if (additive){ + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE); + ofSetColor(255,255,255,255*(1.0f-min(1.0,transition/fadeIn))*intensity); + } + else { + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + ofSetColor(255,255,255,255*intensity); + } //ofSetColor(255,255,255,255*min(1.0,transition/fadeIn)*intensity); //setting alpha here doesn't work with shader? @@ -495,18 +486,43 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom link->setAnchorPoint(link->getWidth()/2,link->getHeight()/2); - gamma=((1.0f-transition)*10.0f)+1.0f; //(startGamma*transition)+(1.0f*(1.0f-transition)); - pedestal=0.0f; - clamp=1.0f; //transition; - lut.load(makeLut(gamma,pedestal,clamp)); - lut.setBlend(transition); - lut.begin(); + //gamma=1.0f; //((1.0f-transition)*0.5f)+1.0f; //(startGamma*transition)+(1.0f*(1.0f-transition)); + //pedestal=0.0f; + //clamp=1.0f; + //lut.load(makeLut(gamma,pedestal,clamp,8)); + remap.setBlend(transition); + remap.setGamma(1.0f+(1.0f-transition)); //(2.0f-transition)*10.0f); + remap.setClamp(1.0f); //transition); + remap.setPedestal(-1.0f+transition); + remap.begin(); - //ofSetColor(link->colour); - //link->setAlpha(transition); - link->draw(0,0,link->getWidth(),link->getHeight()); + //ofSetColor(link->colour); + //link->setAlpha(transition); + link->draw(0,0,link->getWidth(),link->getHeight()); + remap.end(); - lut.end(); + //potentially + + glPushMatrix(); + + glTranslatef(link->getLinkPos().x,link->getLinkPos().y,0); + + glRotatef(link->getLinkRot(),0,0,1); + + glScalef(link->getLinkScale(),link->getLinkScale(),link->getLinkScale()); + + remap.setBlend(link->transition); + remap.setGamma(1.0f+(1.0f-link->transition)); + remap.setClamp(1.0f); //transition); + remap.setPedestal(-1.0f+link->transition); + remap.begin(); + + link->link->draw(0,0,link->link->getWidth(),link->link->getHeight()); + remap.end(); + + glPopMatrix(); + + glDisable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); -- cgit v1.2.3