Skip to content

Commit

Permalink
add interpolationMode
Browse files Browse the repository at this point in the history
  • Loading branch information
aanrii authored and aanrii committed Sep 24, 2017
1 parent cc2f9df commit 369fc02
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 8 deletions.
17 changes: 17 additions & 0 deletions example/example.xcodeproj/project.pbxproj
Expand Up @@ -80,6 +80,10 @@
B449DBA8F11B159758F5004C /* ofxRD.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxRD.cpp; path = ../../../addons/ofxRD/src/ofxRD.cpp; sourceTree = SOURCE_ROOT; };
B87C60311EC1FE841C1ECD89 /* ofxLabel.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxLabel.h; path = ../../../addons/ofxGui/src/ofxLabel.h; sourceTree = SOURCE_ROOT; };
BCC5C83C153EF43F5C45B70A /* ofxRDSampleRenderer.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxRDSampleRenderer.cpp; path = ../../../addons/ofxRD/src/ofxRDSampleRenderer.cpp; sourceTree = SOURCE_ROOT; };
C6A588E61F77F34C004DBAE8 /* passthru.vert */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.glsl; path = passthru.vert; sourceTree = "<group>"; };
C6A588E71F77F34C004DBAE8 /* sampleRenderer.frag */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.glsl; path = sampleRenderer.frag; sourceTree = "<group>"; };
C6A588E81F77F34C004DBAE8 /* sampleRenderer.vert */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.glsl; path = sampleRenderer.vert; sourceTree = "<group>"; };
C6A588E91F77F34C004DBAE8 /* updateMap.frag */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.glsl; path = updateMap.frag; sourceTree = "<group>"; };
C70D8946940288799E82131E /* ofxSliderGroup.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxSliderGroup.h; path = ../../../addons/ofxGui/src/ofxSliderGroup.h; sourceTree = SOURCE_ROOT; };
C88333E71C9457E441C33474 /* ofxButton.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxButton.cpp; path = ../../../addons/ofxGui/src/ofxButton.cpp; sourceTree = SOURCE_ROOT; };
D55BB44561D6D640D99D3324 /* ofxRDSampleRenderer.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxRDSampleRenderer.h; path = ../../../addons/ofxRD/src/ofxRDSampleRenderer.h; sourceTree = SOURCE_ROOT; };
Expand Down Expand Up @@ -217,6 +221,18 @@
name = addons;
sourceTree = "<group>";
};
C6A588E51F77F34C004DBAE8 /* shaders */ = {
isa = PBXGroup;
children = (
C6A588E61F77F34C004DBAE8 /* passthru.vert */,
C6A588E71F77F34C004DBAE8 /* sampleRenderer.frag */,
C6A588E81F77F34C004DBAE8 /* sampleRenderer.vert */,
C6A588E91F77F34C004DBAE8 /* updateMap.frag */,
);
name = shaders;
path = ../shaders;
sourceTree = "<group>";
};
E4328144138ABC890047C5CB /* Products */ = {
isa = PBXGroup;
children = (
Expand All @@ -230,6 +246,7 @@
children = (
E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */,
E4EB6923138AFD0F00A09F29 /* Project.xcconfig */,
C6A588E51F77F34C004DBAE8 /* shaders */,
E4B69E1C0A3A1BDC003C02F2 /* src */,
E4EEC9E9138DF44700A80321 /* openFrameworks */,
BB4B014C10F69532006C3DED /* addons */,
Expand Down
19 changes: 14 additions & 5 deletions shaders/sampleRenderer.vert
Expand Up @@ -8,7 +8,7 @@ uniform vec4 colors[6];
uniform float colors_pos[6];
uniform float resolution;
uniform float meshDepth;
uniform bool enableSmoothing;
uniform int interpolationMode;
uniform bool enableHeatMap;
uniform vec3 minParam;
uniform vec3 maxParam;
Expand Down Expand Up @@ -173,10 +173,19 @@ void main()
int meshWidth = int(float(textureSize(cellMap).x) / resolution);
ivec2 meshIdx = ivec2(int(mod(gl_VertexID, meshWidth)), int(gl_VertexID / meshWidth));
vec2 texIdx = vec2(meshIdx.x, meshIdx.y) * resolution;

vec2 param =
(enableSmoothing) ? bicubic(texIdx, componentColor, componentHeight) :
bilinear(texIdx, componentColor, componentHeight);

vec2 param;
switch (interpolationMode) {
case 2:
param = bicubic(texIdx, componentColor, componentHeight);
break;
case 1:
param = bilinear(texIdx, componentColor, componentHeight);
break;
default:
param = getTextureValue(texIdx, componentColor, componentHeight);
break;
}

vec4 vPos = position;
vPos.z = param[1] * meshDepth;
Expand Down
3 changes: 1 addition & 2 deletions src/ofxRDSampleRenderer.cpp
Expand Up @@ -2,7 +2,7 @@

ofxRDSampleRenderer::ofxRDSampleRenderer() : updatedOptions(true) {
options.add(ofParameter<float>().set("meshDepth", 100.0f, 0.0f, 400.f));
options.add(enableBicubic.set("enableBicubic", false));
options.add(ofParameter<int>().set("interpolationMode", 1, 0, 2));
options.add(enableHeatMap.set("enableHeatMap", true));

auto colorArray = new ofVec4f[6] {
Expand Down Expand Up @@ -95,7 +95,6 @@ void ofxRDSampleRenderer::draw(){
render.setUniformTexture("cellMap", mapTexture, 0);

if (updatedOptions) {
render.setUniform1i(enableBicubic.getName(), enableBicubic);
render.setUniform1i(enableHeatMap.getName(), enableHeatMap);
render.setUniforms(options);
updatedOptions = false;
Expand Down
1 change: 0 additions & 1 deletion src/ofxRDSampleRenderer.h
Expand Up @@ -11,7 +11,6 @@ class ofxRDSampleRenderer{
float resolution;
float colors[24];
float colors_pos[6];
ofParameter<bool> enableBicubic;
ofParameter<bool> enableHeatMap;
ofParameterGroup options;
bool updatedOptions;
Expand Down

0 comments on commit 369fc02

Please sign in to comment.