From fc0840d79de70c51acc8394273eccfd521da96b7 Mon Sep 17 00:00:00 2001 From: Joscha Date: Sun, 30 Apr 2017 09:23:00 +0000 Subject: [PATCH] Fix fitness function bug (hopefully) The shader rounds to the nearest color when rendering, sometimes it rounds up. I made it only round down, --- compare.glsl | 8 ++++---- src/Fitness.cpp | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/compare.glsl b/compare.glsl index 431fa72..9f31b4f 100644 --- a/compare.glsl +++ b/compare.glsl @@ -34,10 +34,10 @@ void main(void) // encode to rgba channels in current pixel vec4 col = vec4(0.0, 0.0, 0.0, 1.0); -// total = total/200.0; - col.r = mod(total, 256.0/255.0); - col.g = mod(total/256.0, 256.0/255.0); - col.b = mod(total/65536.0, 256.0/255.0); +// total = total/255.0; + col.r = floor(mod(total*255.0, 256.0))/255.0; + col.g = floor(mod(total*255.0/256.0, 256.0))/255.0; + col.b = floor(mod(total*255.0/65536.0, 256.0))/255.0; // color.g = 0.0; // color.b = 0.0; // color.g = mod(total, 256.0/255.0); diff --git a/src/Fitness.cpp b/src/Fitness.cpp index d5a7636..5142726 100644 --- a/src/Fitness.cpp +++ b/src/Fitness.cpp @@ -81,10 +81,10 @@ unsigned long long Fitness::of(Chromosome chr) for (unsigned int y=0; y