Added image background with adjustment sliders

- Brightness/contrast/saturation and RGBA sliders added
- Fullscreen functionality added
This commit is contained in:
James Alliban 2014-01-07 00:48:58 +00:00
parent 3053981175
commit 721d59e5f7
12 changed files with 147 additions and 11 deletions

View File

@ -38,3 +38,38 @@
<Name>End alpha</Name> <Name>End alpha</Name>
<Value>255.000000000</Value> <Value>255.000000000</Value>
</Widget> </Widget>
<Widget>
<Kind>4</Kind>
<Name>Brightness</Name>
<Value>0.980263174</Value>
</Widget>
<Widget>
<Kind>4</Kind>
<Name>Contrast</Name>
<Value>0.986842096</Value>
</Widget>
<Widget>
<Kind>4</Kind>
<Name>Saturation</Name>
<Value>0.967105269</Value>
</Widget>
<Widget>
<Kind>4</Kind>
<Name>Red</Name>
<Value>0.684210539</Value>
</Widget>
<Widget>
<Kind>4</Kind>
<Name>Green</Name>
<Value>0.947368443</Value>
</Widget>
<Widget>
<Kind>4</Kind>
<Name>Blue</Name>
<Value>0.644736826</Value>
</Widget>
<Widget>
<Kind>4</Kind>
<Name>Alpha</Name>
<Value>1.000000000</Value>
</Widget>

View File

@ -1,20 +1,20 @@
<Widget> <Widget>
<Kind>4</Kind> <Kind>4</Kind>
<Name>RED</Name> <Name>RED</Name>
<Value>68.782897949</Value> <Value>19.292762756</Value>
</Widget> </Widget>
<Widget> <Widget>
<Kind>4</Kind> <Kind>4</Kind>
<Name>GREEN</Name> <Name>GREEN</Name>
<Value>67.944076538</Value> <Value>21.809211731</Value>
</Widget> </Widget>
<Widget> <Widget>
<Kind>4</Kind> <Kind>4</Kind>
<Name>BLUE</Name> <Name>BLUE</Name>
<Value>104.013153076</Value> <Value>21.809211731</Value>
</Widget> </Widget>
<Widget> <Widget>
<Kind>4</Kind> <Kind>4</Kind>
<Name>ALPHA</Name> <Name>ALPHA</Name>
<Value>200.476974487</Value> <Value>139.243423462</Value>
</Widget> </Widget>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 MiB

View File

@ -0,0 +1,57 @@
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect baseMap;
uniform float brightness;
uniform float contrast;
uniform float saturation;
uniform float alpha;
uniform float red;
uniform float green;
uniform float blue;
uniform float shadowIntensity;
void main(void)
{
// Extract colors from baseMap
vec4 baseColor = texture2DRect( baseMap, gl_TexCoord[0].st );
vec3 baseColor3 = baseColor.rgb;
// Brightness, contrast and saturation
const float AvgLumR = 0.5;
const float AvgLumG = 0.5;
const float AvgLumB = 0.5;
const vec3 LumCoeff = vec3(0.2125, 0.7154, 0.0721);
vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB);
vec3 brtColor = baseColor3 * brightness;
vec3 intensity = vec3(dot(brtColor, LumCoeff));
vec3 satColor = mix(intensity, brtColor, saturation);
vec3 conColor = mix(AvgLumin, satColor, contrast);
baseColor.rgb = conColor;
// colour, alpha, lighting
//vec3 normal = normalize( v_normal );
vec3 colourVec = vec3(red, green, blue);
baseColor.rgb *= colourVec;
//float ndotl = max(dot(normal, v_light_dir), shadowIntensity);
//baseColor.rgb *= ndotl;
//baseColor.a = alpha;
vec4 result = clamp(baseColor, 0.0, 1.0);
//result.r += v_colour.r;
//result.g = 1.0;
//result += v_colour;
//result.a = v_colour.a;
gl_FragColor = result;
}

View File

@ -0,0 +1,8 @@
void main(void)
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = ftransform();
}

View File

@ -17,7 +17,7 @@ void GUI::setup()
dim = 8; dim = 8;
addKeyboardShortcutsGUI(); addKeyboardShortcutsGUI();
addGraphAnimationGUI(); //addGraphAnimationGUI();
addBarGraphDesignGUI(); addBarGraphDesignGUI();
addGraphSimulationGUI(); addGraphSimulationGUI();
addBackgroundGUI(); addBackgroundGUI();
@ -40,6 +40,8 @@ void GUI::addKeyboardShortcutsGUI()
gui->addLabel("SPACE - SHOW/HIDE GUI", OFX_UI_FONT_SMALL); gui->addLabel("SPACE - SHOW/HIDE GUI", OFX_UI_FONT_SMALL);
gui->addLabel("'[' - PREVIOUS GUI", OFX_UI_FONT_SMALL); gui->addLabel("'[' - PREVIOUS GUI", OFX_UI_FONT_SMALL);
gui->addLabel("']' - NEXT GUI", OFX_UI_FONT_SMALL); gui->addLabel("']' - NEXT GUI", OFX_UI_FONT_SMALL);
gui->addLabel("'p' - TOGGLE PAUSE ANIMATION", OFX_UI_FONT_SMALL);
gui->addLabel("'f' - TOGGLE FULLSCREEN", OFX_UI_FONT_SMALL);
finaliseCanvas(gui, true); finaliseCanvas(gui, true);
@ -96,14 +98,26 @@ void GUI::addBackgroundGUI()
ofxUICanvas* gui = getNewGUI(title); ofxUICanvas* gui = getNewGUI(title);
gui->addLabel("GRADIENT COLOUR"); gui->addLabel("GRADIENT COLOUR");
gui->addSpacer(length, 1);
gui->addSlider("Start red", 0, 255, &app->scene.bgGradStartCol[0], length, dim); gui->addSlider("Start red", 0, 255, &app->scene.bgGradStartCol[0], length, dim);
gui->addSlider("Start green", 0, 255, &app->scene.bgGradStartCol[1], length, dim); gui->addSlider("Start green", 0, 255, &app->scene.bgGradStartCol[1], length, dim);
gui->addSlider("Start blue", 0, 255, &app->scene.bgGradStartCol[2], length, dim); gui->addSlider("Start blue", 0, 255, &app->scene.bgGradStartCol[2], length, dim);
gui->addSlider("Start alpha", 0, 255, &app->scene.bgGradStartCol[3], length, dim); gui->addSlider("Start alpha", 0, 255, &app->scene.bgGradStartCol[3], length, dim);
gui->addSpacer(length, 1);
gui->addSlider("End red", 0, 255, &app->scene.bgGradEndCol[0], length, dim); gui->addSlider("End red", 0, 255, &app->scene.bgGradEndCol[0], length, dim);
gui->addSlider("End green", 0, 255, &app->scene.bgGradEndCol[1], length, dim); gui->addSlider("End green", 0, 255, &app->scene.bgGradEndCol[1], length, dim);
gui->addSlider("End blue", 0, 255, &app->scene.bgGradEndCol[2], length, dim); gui->addSlider("End blue", 0, 255, &app->scene.bgGradEndCol[2], length, dim);
gui->addSlider("End alpha", 0, 255, &app->scene.bgGradEndCol[3], length, dim); gui->addSlider("End alpha", 0, 255, &app->scene.bgGradEndCol[3], length, dim);
gui->addSpacer(length, 1);
gui->addLabel("BACKGROUND IMAGE");
gui->addSlider("Brightness", 0, 2, &app->scene.brightness, length, dim);
gui->addSlider("Contrast", 0, 2, &app->scene.contrast, length, dim);
gui->addSlider("Saturation", 0, 2, &app->scene.saturation, length, dim);
gui->addSlider("Red", 0, 2, &app->scene.red, length, dim);
gui->addSlider("Green", 0, 2, &app->scene.green, length, dim);
gui->addSlider("Blue", 0, 2, &app->scene.blue, length, dim);
gui->addSlider("Alpha", 0, 2, &app->scene.alpha, length, dim);
ofAddListener(gui->newGUIEvent, this, &GUI::variousGUIEvent); ofAddListener(gui->newGUIEvent, this, &GUI::variousGUIEvent);
finaliseCanvas(gui, true); finaliseCanvas(gui, true);

View File

@ -3,11 +3,10 @@
// TODO // TODO
// ==== // ====
// - Make graph system with 3 simple (for now) but different graphs that can be interchanged // - Make graph system with 3 simple (for now) but different graphs that can be interchanged
// - Make events system to send data to scene // - Add image to background and create a mask
// - Use a shader to adjust image brightness/contrast and colour
// - // -
// - // - Add to config
// - Add to GUI
// - - Publisher choice
// - - IP address // - - IP address
// - - Host name // - - Host name
// - - App name // - - App name
@ -67,7 +66,7 @@ void testApp::mousePressed(int x, int y, int button)
void testApp::keyPressed(int key) void testApp::keyPressed(int key)
{ {
if (key == 'p') if (key == 'p')
{
isPaused = !isPaused; isPaused = !isPaused;
} else if (key == 'f')
ofToggleFullscreen();
} }

View File

@ -11,6 +11,8 @@
void Scene::setup() void Scene::setup()
{ {
bgImg.loadImage("images/tanks.jpg");
rgbShader.load("shaders/RGBShader");
barGraph.setup(); barGraph.setup();
} }
@ -27,6 +29,23 @@ void Scene::draw()
ofColor(bgGradEndCol[0], bgGradEndCol[1], bgGradEndCol[2], bgGradEndCol[3]), ofColor(bgGradEndCol[0], bgGradEndCol[1], bgGradEndCol[2], bgGradEndCol[3]),
OF_GRADIENT_CIRCULAR); OF_GRADIENT_CIRCULAR);
rgbShader.begin();
rgbShader.setUniform1f("brightness", brightness);
rgbShader.setUniform1f("contrast", contrast);
rgbShader.setUniform1f("saturation", saturation);
rgbShader.setUniform1f("red", red);
rgbShader.setUniform1f("green", green);
rgbShader.setUniform1f("blue", blue);
rgbShader.setUniform1f("alpha", alpha);
bgImg.draw(0, 0, ofGetWidth(), ofGetHeight());
rgbShader.end();
barGraph.draw(); barGraph.draw();
} }

View File

@ -21,6 +21,10 @@ public:
void draw(); void draw();
BarGraph barGraph; BarGraph barGraph;
ofShader rgbShader;
ofImage bgImg;
float brightness, contrast, saturation, red, green, blue, alpha;
float bgGradStartCol[4]; float bgGradStartCol[4];
float bgGradEndCol[4]; float bgGradEndCol[4];