diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/render.cu | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/render.cu b/src/render.cu index c1e8ea1..d9ce1b1 100644 --- a/src/render.cu +++ b/src/render.cu @@ -142,11 +142,7 @@ render(int nthreads, float3 *_origin, float3 *_direction, Geometry *geometry, float fg = 0.0f; float fb = 0.0f; for (i=0; i < n; i++) { - float alpha; - if (i < alpha_depth-1) - alpha = color_a[i].w; - else - alpha = 1.0; + float alpha = color_a[i].w; fr += scale*color_a[i].x*alpha; fg += scale*color_a[i].y*alpha; @@ -158,10 +154,10 @@ render(int nthreads, float3 *_origin, float3 *_direction, Geometry *geometry, if (n < alpha_depth) a = floorf(255*(1.0f-scale)); else - a = 255; - unsigned int r = floorf(fr); - unsigned int g = floorf(fg); - unsigned int b = floorf(fb); + a = 255; + unsigned int r = floorf(fr/(1.0f-scale)); + unsigned int g = floorf(fg/(1.0f-scale)); + unsigned int b = floorf(fb/(1.0f-scale)); pixels[id] = a << 24 | r << 16 | g << 8 | b; } |