Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-03-07 16:27:18 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-03-07 16:27:18 +0400
commit9fba458a7fe535e60f5c6beee9757fe25ffe2d49 (patch)
treee625eb73d3da32a01c84385e1976f81d2f8b92bd /intern/cycles/kernel/kernel.cpp
parentbdf731f03d727d3862537c59fa11477b77eb60b0 (diff)
Cycles: float texture support. Due to GPU limitations there are now 95 byte,
and 5 float image textures. For CPU render this limit will be lifted later on with image cache support. Patch by Mike Farnsworth. Also changed color space option in image/environment texture node, to show options Color and Non-Color Data, instead of sRGB and Linear, this is more descriptive, and it was not really correct to equate Non-Color Data with Linear.
Diffstat (limited to 'intern/cycles/kernel/kernel.cpp')
-rw-r--r--intern/cycles/kernel/kernel.cpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/intern/cycles/kernel/kernel.cpp b/intern/cycles/kernel/kernel.cpp
index a93f6172d28..667db1e5f03 100644
--- a/intern/cycles/kernel/kernel.cpp
+++ b/intern/cycles/kernel/kernel.cpp
@@ -84,6 +84,25 @@ void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t
#define KERNEL_IMAGE_TEX(type, ttype, tname)
#include "kernel_textures.h"
+ else if(strstr(name, "__tex_image_float")) {
+ texture_image_float4 *tex = NULL;
+ int id = atoi(name + strlen("__tex_image_float_"));
+
+ switch(id) {
+ case 95: tex = &kg->__tex_image_float_095; break;
+ case 96: tex = &kg->__tex_image_float_096; break;
+ case 97: tex = &kg->__tex_image_float_097; break;
+ case 98: tex = &kg->__tex_image_float_098; break;
+ case 99: tex = &kg->__tex_image_float_099; break;
+ default: break;
+ }
+
+ if(tex) {
+ tex->data = (float4*)mem;
+ tex->width = width;
+ tex->height = height;
+ }
+ }
else if(strstr(name, "__tex_image")) {
texture_image_uchar4 *tex = NULL;
int id = atoi(name + strlen("__tex_image_"));
@@ -184,11 +203,6 @@ void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t
case 92: tex = &kg->__tex_image_092; break;
case 93: tex = &kg->__tex_image_093; break;
case 94: tex = &kg->__tex_image_094; break;
- case 95: tex = &kg->__tex_image_095; break;
- case 96: tex = &kg->__tex_image_096; break;
- case 97: tex = &kg->__tex_image_097; break;
- case 98: tex = &kg->__tex_image_098; break;
- case 99: tex = &kg->__tex_image_099; break;
default: break;
}