# HG changeset patch # User John Tsiombikas # Date 1419861595 -7200 # Node ID 5417c25cb23887001473f4b67fdf2f53cb9cf9a2 # Parent 04330eb80b363e013fbe6113962d2f438d8d505d moving to a simpler transfer function diff -r 04330eb80b36 -r 5417c25cb238 src/rend_fast.cc --- a/src/rend_fast.cc Mon Dec 29 05:41:36 2014 +0200 +++ b/src/rend_fast.cc Mon Dec 29 15:59:55 2014 +0200 @@ -3,6 +3,8 @@ #include "rend_fast.h" #include "sdr.h" +static inline float smoothstep(float a, float b, float x); + #define XFER_MAP_SZ 1024 static unsigned int sdr; @@ -55,6 +57,12 @@ return Renderer::transfer_curve(color); } +void RendererFast::set_simple_transfer(float low, float high) +{ + xfer_tex_valid = false; + Renderer::set_simple_transfer(low, high); +} + void RendererFast::update(unsigned int msec) { if(!vol) return; @@ -118,9 +126,18 @@ for(int i=0; i= b) return 1.0; + + x = (x - a) / (b - a); + return x * x * (3.0 - 2.0 * x); +} diff -r 04330eb80b36 -r 5417c25cb238 src/rend_fast.h --- a/src/rend_fast.h Mon Dec 29 05:41:36 2014 +0200 +++ b/src/rend_fast.h Mon Dec 29 15:59:55 2014 +0200 @@ -16,6 +16,7 @@ void set_volume(Volume *vol); Curve &transfer_curve(int color); + void set_simple_transfer(float low, float high); void update(unsigned int msec); void render() const; diff -r 04330eb80b36 -r 5417c25cb238 src/renderer.cc --- a/src/renderer.cc Mon Dec 29 05:41:36 2014 +0200 +++ b/src/renderer.cc Mon Dec 29 15:59:55 2014 +0200 @@ -12,6 +12,9 @@ xfer[i].set_point(1, 1); } + xfer_low = 0.0; + xfer_high = 1.0; + for(int i=0; i