diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2020-03-16 16:42:56 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2020-03-18 13:23:05 +0300 |
commit | 7537cad5761e4778da7aed02410c5811114c24e5 (patch) | |
tree | 94b0187257e08ecaeaad5cef9eaaa4ec49aa04fd /source/blender/blenkernel/intern/volume_render.cc | |
parent | 1162ba206dd7792414d3ae716877ba1383de8dab (diff) |
Volumes: add render settings for volume datablock
* Space: volume density and step size in object or world space
* Step Size: override automatic step size
* Clipping: values below this are ignored for tighter volume bounds
The last two are Cycles only currently.
Ref T73201
Diffstat (limited to 'source/blender/blenkernel/intern/volume_render.cc')
-rw-r--r-- | source/blender/blenkernel/intern/volume_render.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/volume_render.cc b/source/blender/blenkernel/intern/volume_render.cc index d8fbbce3bae..a4833f1ffa4 100644 --- a/source/blender/blenkernel/intern/volume_render.cc +++ b/source/blender/blenkernel/intern/volume_render.cc @@ -356,3 +356,18 @@ void BKE_volume_grid_wireframe(const Volume *volume, cb(cb_userdata, NULL, NULL, 0, 0); #endif } + +/* Render */ + +float BKE_volume_density_scale(const Volume *volume, const float matrix[4][4]) +{ + if (volume->render.space == VOLUME_SPACE_OBJECT) { + float unit[3] = {1.0f, 1.0f, 1.0f}; + normalize_v3(unit); + mul_mat3_m4_v3(matrix, unit); + return 1.0f / len_v3(unit); + } + else { + return 1.0f; + } +} |