diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-02-14 19:02:28 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-02-14 23:45:57 +0300 |
commit | b5fe00d1ac43c16ec8f74d3ad7689599dfb2ef00 (patch) | |
tree | e2dcae056cde3c6eaa3bcaf2c1b9117a0a5e87a1 /intern/cycles/kernel/svm | |
parent | f6107af4cf4d907495e2e9c18e5866fd1d420650 (diff) |
Cycles: restore Particle Info Index for now, keep it next to Random.
It seems to be useful still in cases where the particle are distributed in
a particular order or pattern, to colorize them along with that. This isn't
really well defined, but might as well avoid breaking backwards compatibility
for now.
Diffstat (limited to 'intern/cycles/kernel/svm')
-rw-r--r-- | intern/cycles/kernel/svm/svm_geometry.h | 8 | ||||
-rw-r--r-- | intern/cycles/kernel/svm/svm_types.h | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/intern/cycles/kernel/svm/svm_geometry.h b/intern/cycles/kernel/svm/svm_geometry.h index 2f85a801112..81308d6f12b 100644 --- a/intern/cycles/kernel/svm/svm_geometry.h +++ b/intern/cycles/kernel/svm/svm_geometry.h @@ -114,9 +114,15 @@ ccl_device void svm_node_particle_info(KernelGlobals *kg, uint out_offset) { switch(type) { + case NODE_INFO_PAR_INDEX: { + int particle_id = object_particle_id(kg, sd->object); + stack_store_float(stack, out_offset, particle_index(kg, particle_id)); + break; + } case NODE_INFO_PAR_RANDOM: { int particle_id = object_particle_id(kg, sd->object); - stack_store_float(stack, out_offset, particle_random(kg, particle_id)); + float random = hash_int_01(particle_index(kg, particle_id)); + stack_store_float(stack, out_offset, random); break; } case NODE_INFO_PAR_AGE: { diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index 9e19ab4444d..390d3255684 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -160,6 +160,7 @@ typedef enum NodeObjectInfo { } NodeObjectInfo; typedef enum NodeParticleInfo { + NODE_INFO_PAR_INDEX, NODE_INFO_PAR_RANDOM, NODE_INFO_PAR_AGE, NODE_INFO_PAR_LIFETIME, |