diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-18 23:36:09 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-18 23:49:10 +0300 |
commit | 9b406162490d9ee93e9786350432cdc1563b7bf6 (patch) | |
tree | cf573ef92132c45c7daac221296bfc76bf327628 /intern/cycles/blender/blender_texture.h | |
parent | 7d10798af22f683a8f55a8c361ad5676bd4160d2 (diff) |
Cycles: Point density texture support
This commit implements point density texture for Cycles shading nodes.
It's done via creating voxel texture at shader compilation time, Not
totally memory efficient, but avoids adding sampling code to kernel
(which keeps render time as low as possible), In the future this will
be compensated by using OpenVDB for more efficient storage of sparse
volume data.
Sampling of the voxel texture is happening at blender side and the
same code is used as for Blender Internal's renderer.
This texture is controlled by only object, particle system and radius.
Linear falloff is used and there's no turbulence. This is because
falloff is expected to happen using Curve Mapping node. Turbulence
will be done as a distortion on the input coordinate. It's already
possible to fake it using nose textures and in the future we can add
more proper turbulence distortion node, which then could also be used
for 2D texture mapping.
Particle color support is done by Lukas, thanks!
Diffstat (limited to 'intern/cycles/blender/blender_texture.h')
-rw-r--r-- | intern/cycles/blender/blender_texture.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/intern/cycles/blender/blender_texture.h b/intern/cycles/blender/blender_texture.h new file mode 100644 index 00000000000..74fbca02a9e --- /dev/null +++ b/intern/cycles/blender/blender_texture.h @@ -0,0 +1,31 @@ +/* + * Copyright 2011-2015 Blender Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __BLENDER_TEXTURE_H__ +#define __BLENDER_TEXTURE_H__ + +#include <stdlib.h> +#include "blender_sync.h" + +CCL_NAMESPACE_BEGIN + +void point_density_texture_space(BL::ShaderNodeTexPointDensity b_point_density_node, + float3& loc, + float3& size); + +CCL_NAMESPACE_END + +#endif /* __BLENDER_TEXTURE_H__ */ |