diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-02-15 17:40:39 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-02-15 23:26:29 +0300 |
commit | 1c4f21f85e17ac557c9867a7764a31d5ebe74eb0 (patch) | |
tree | 72ea537d6624e43e452ce7465f25f92832b88e4f /intern/cycles/kernel/kernel_compat_cuda.h | |
parent | b5171e250c6816ecce26227615d53cf6f6339892 (diff) |
Cycles: Initial support of 3D textures for CUDA rendering
Supports both smoke/fire and point density textures now.
Reduces number of textures available for sm_20 and sm_21, but you have
to compromise somewhere on such a limited hardware.
Currently limited to linear interpolation only, and decoupled ray
marching is not supported yet. Think those could be considered just a
further improvement.
Some quick example:
https://developer.blender.org/F282934
Code is minimal and we can fully consider it a fix for missing
support of 3D textures with CUDA.
Reviewers: lukasstockner97, brecht, juicyfruit, dingto
Reviewed By: brecht, juicyfruit, dingto
Subscribers: mib2berlin
Differential Revision: https://developer.blender.org/D1806
Diffstat (limited to 'intern/cycles/kernel/kernel_compat_cuda.h')
-rw-r--r-- | intern/cycles/kernel/kernel_compat_cuda.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/intern/cycles/kernel/kernel_compat_cuda.h b/intern/cycles/kernel/kernel_compat_cuda.h index 9fdd3abfec3..193c255610c 100644 --- a/intern/cycles/kernel/kernel_compat_cuda.h +++ b/intern/cycles/kernel/kernel_compat_cuda.h @@ -62,6 +62,7 @@ typedef texture<int, 1> texture_int; typedef texture<uint4, 1> texture_uint4; typedef texture<uchar4, 1> texture_uchar4; typedef texture<float4, 2> texture_image_float4; +typedef texture<float4, 3> texture_image3d_float4; typedef texture<uchar4, 2, cudaReadModeNormalizedFloat> texture_image_uchar4; /* Macros to handle different memory storage on different devices */ @@ -79,6 +80,7 @@ typedef texture<uchar4, 2, cudaReadModeNormalizedFloat> texture_image_uchar4; #define kernel_tex_fetch(t, index) t[(index)] #endif #define kernel_tex_image_interp(t, x, y) tex2D(t, x, y) +#define kernel_tex_image_interp_3d(t, x, y, z) tex3D(t, x, y, z) #define kernel_data __data |