Skip to content
Snippets Groups Projects
Commit 4bc7e044 authored by Alexander Rose's avatar Alexander Rose
Browse files

refactored intMod/intDiv shader code

parent 694fee25
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@
if (uAlpha >= uPickingAlphaThreshold) {
float marker = vMarker * 255.0;
if (marker > 0.1) {
if (mod(marker, 2.0) > 0.1) {
if (intMod(marker, 2.0) > 0.1) {
gl_FragColor.rgb = mix(uHighlightColor, gl_FragColor.rgb, 0.3);
} else {
gl_FragColor.rgb = mix(uSelectColor, gl_FragColor.rgb, 0.3);
......
......@@ -14,4 +14,6 @@ uniform vec3 uFogColor;
uniform float uAlpha;
uniform float uPickingAlphaThreshold;
uniform int uPickable;
\ No newline at end of file
uniform int uPickable;
#pragma glslify: import('./common.glsl')
\ No newline at end of file
......@@ -10,4 +10,5 @@ varying float vMarker;
varying vec3 vViewPosition;
#pragma glslify: readFromTexture = require(../utils/read-from-texture.glsl)
\ No newline at end of file
#pragma glslify: import('./common.glsl')
#pragma glslify: readFromTexture = require('../utils/read-from-texture.glsl', intMod=intMod, intDiv=intDiv, foo=foo) // foo=foo is a workaround for a bug in glslify
\ No newline at end of file
float intDiv(float a, float b) { return float(int(a) / int(b)); }
float intMod(float a, float b) { return a - b * float(int(a) / int(b)); }
\ No newline at end of file
......@@ -45,11 +45,12 @@ uniform int uPickable;
uniform sampler2D tColor;
#endif
#pragma glslify: readFromTexture = require(./utils/read-from-texture.glsl)
#pragma glslify: import('./chunks/common.glsl')
#pragma glslify: readFromTexture = require(./utils/read-from-texture.glsl, intMod=intMod, intDiv=intDiv, foo=foo) // foo=foo is a workaround for a bug in glslify
#pragma glslify: encodeIdRGB = require(./utils/encode-id-rgb.glsl)
#pragma glslify: decodeIdRGB = require(./utils/decode-id-rgb.glsl)
#pragma glslify: texture3dFrom2dNearest = require(./utils/texture3d-from-2d-nearest.glsl)
#pragma glslify: texture3dFrom2dLinear = require(./utils/texture3d-from-2d-linear.glsl)
#pragma glslify: texture3dFrom2dNearest = require(./utils/texture3d-from-2d-nearest.glsl, intMod=intMod, intDiv=intDiv, foo=foo) // foo=foo is a workaround for a bug in glslify
#pragma glslify: texture3dFrom2dLinear = require(./utils/texture3d-from-2d-linear.glsl, intMod=intMod, intDiv=intDiv, foo=foo) // foo=foo is a workaround for a bug in glslify
// uniform vec3 uLightPosition;
uniform vec3 uLightColor;
......
......@@ -21,8 +21,9 @@ varying float vRadius;
varying float vGroup;
#endif
#pragma glslify: import('./chunks/common.glsl')
#pragma glslify: encodeIdRGB = require(./utils/encode-id-rgb.glsl)
#pragma glslify: texture3dFrom2dNearest = require(./utils/texture3d-from-2d-nearest.glsl)
#pragma glslify: texture3dFrom2dNearest = require(./utils/texture3d-from-2d-nearest.glsl, intMod=intMod, intDiv=intDiv, foo=foo) // foo=foo is a workaround for a bug in glslify
uniform vec3 uBboxSize;
uniform vec3 uBboxMin;
......
......@@ -4,8 +4,6 @@
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
// TODO use myMod and myDiv to fix issues with picking?
vec3 encodeFloatRGB(in float value) {
value = clamp(value, 0.0, 16777216.0);
vec3 c = vec3(0.0);
......
......@@ -4,9 +4,6 @@
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
float intDiv(float a, float b) { return float(int(a) / int(b)); }
float intMod(float a, float b) { return a - b * float(int(a) / int(b)); }
vec4 readFromTexture (const in sampler2D tex, const in float i, const in vec2 dim) {
float x = intMod(i, dim.x);
float y = floor(intDiv(i, dim.x));
......
......@@ -5,9 +5,6 @@
* @author Michael Krone <michael.krone@uni-tuebingen.de>
*/
float intDiv(float a, float b) { return float(int(a) / int(b)); }
float intMod(float a, float b) { return a - b * float(int(a) / int(b)); }
vec4 texture3dFrom2dLinear(sampler2D tex, vec3 pos, vec3 gridDim, vec2 texDim) {
float zSlice0 = floor(pos.z * gridDim.z);
float column0 = intMod(zSlice0 * gridDim.x, texDim.x) / gridDim.x;
......
......@@ -5,9 +5,6 @@
* @author Michael Krone <michael.krone@uni-tuebingen.de>
*/
float intDiv(float a, float b) { return float(int(a) / int(b)); }
float intMod(float a, float b) { return a - b * float(int(a) / int(b)); }
vec4 texture3dFrom2dNearest(sampler2D tex, vec3 pos, vec3 gridDim, vec2 texDim) {
float zSlice = floor(pos.z * gridDim.z + 0.5); // round to nearest z-slice
float column = intMod(zSlice * gridDim.x, texDim.x) / gridDim.x;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment