diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-08-28 17:55:59 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-08-28 17:55:59 +0400 |
commit | bae896691aa3d7bb2a75292da3cc490894996b01 (patch) | |
tree | 9c3703f11ccdf76c575c2ea18b70dee1ff665913 /intern/cycles/device/device_cuda.cpp | |
parent | d48e4fc92be346810baa8cac595ab0a735882a87 (diff) |
Cycles:
* Add alpha pass output, to use set Transparent option in Film panel.
* Add Holdout closure (OSL terminology), this is like the Sky option in the
internal renderer, objects with this closure show the background / zero
alpha.
* Add option to use Gaussian instead of Box pixel filter in the UI.
* Remove camera response curves for now, they don't really belong here in
the pipeline, should be moved to compositor.
* Output full float values for rendering now, previously was only byte precision.
* Add a patch from Thomas to get a preview passes option, but still disabled
because it isn't quite working right yet.
* CUDA: don't compile shader graph evaluation inline.
* Convert tabs to spaces in python files.
Diffstat (limited to 'intern/cycles/device/device_cuda.cpp')
-rw-r--r-- | intern/cycles/device/device_cuda.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp index 0537e231f44..cc1c1275bf4 100644 --- a/intern/cycles/device/device_cuda.cpp +++ b/intern/cycles/device/device_cuda.cpp @@ -607,7 +607,7 @@ public: } } - void draw_pixels(device_memory& mem, int y, int w, int h, int width, int height) + void draw_pixels(device_memory& mem, int y, int w, int h, int width, int height, bool transparent) { if(!background) { PixelMem pmem = pixel_mem_map[mem.device_pointer]; @@ -621,11 +621,16 @@ public: glEnable(GL_TEXTURE_2D); + if(transparent) { + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + } + glColor3f(1.0f, 1.0f, 1.0f); glPushMatrix(); glTranslatef(0.0f, (float)y, 0.0f); - + glBegin(GL_QUADS); glTexCoord2f(0.0f, 0.0f); @@ -640,6 +645,9 @@ public: glEnd(); glPopMatrix(); + + if(transparent) + glDisable(GL_BLEND); glBindTexture(GL_TEXTURE_2D, 0); glDisable(GL_TEXTURE_2D); @@ -649,7 +657,7 @@ public: return; } - Device::draw_pixels(mem, y, w, h, width, height); + Device::draw_pixels(mem, y, w, h, width, height, transparent); } void task_add(DeviceTask& task) |