diff options
Diffstat (limited to 'intern/cycles/blender/blender_volume.cpp')
-rw-r--r-- | intern/cycles/blender/blender_volume.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/intern/cycles/blender/blender_volume.cpp b/intern/cycles/blender/blender_volume.cpp index 237c5d061e8..7f393fcb819 100644 --- a/intern/cycles/blender/blender_volume.cpp +++ b/intern/cycles/blender/blender_volume.cpp @@ -15,6 +15,7 @@ */ #include "render/colorspace.h" +#include "render/image.h" #include "render/mesh.h" #include "render/object.h" @@ -68,6 +69,15 @@ class BlenderSmokeLoader : public ImageLoader { metadata.height = resolution.y * amplify; metadata.depth = resolution.z * amplify; + /* Create a matrix to transform from object space to mesh texture space. + * This does not work with deformations but that can probably only be done + * well with a volume grid mapping of coordinates. */ + BL::Mesh b_mesh(b_ob.data()); + float3 loc, size; + mesh_texture_space(b_mesh, loc, size); + metadata.transform_3d = transform_translate(-loc) * transform_scale(size); + metadata.use_transform_3d = true; + return true; } |