diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2014-02-25 21:29:11 +0400 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2014-02-25 21:29:11 +0400 |
commit | 0bef196894abd19903b0741ec6250e0558b4f1a4 (patch) | |
tree | a65b0078c166fd60c194530ec9bd8435d3c92b15 /intern/cycles/render/object.h | |
parent | ef73d547cc7c663ad180721094c81b3c81482ac3 (diff) |
Fix T38811: Cycles particle ids are inconsistent when using multiple particle systems.
Problem is that the particle systems in the cycles database are not
stored in a well-defined order. This means the particle_id for dupli
objects can not simply be assigned using a global running index during
sync.
Now the particle index is assigned locally for each particle system.
When transferring particle data to the device as a single texture, the
particle indices are offset based on the final order of particle systems
in the database.
Reviewers: brecht
Reviewed By: brecht
CC: Andreas80
Differential Revision: https://developer.blender.org/D352
Diffstat (limited to 'intern/cycles/render/object.h')
-rw-r--r-- | intern/cycles/render/object.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/intern/cycles/render/object.h b/intern/cycles/render/object.h index 5da85be3873..31400f3c7f1 100644 --- a/intern/cycles/render/object.h +++ b/intern/cycles/render/object.h @@ -27,6 +27,7 @@ CCL_NAMESPACE_BEGIN class Device; class DeviceScene; class Mesh; +class ParticleSystem; class Progress; class Scene; struct Transform; @@ -50,7 +51,8 @@ public: float3 dupli_generated; float2 dupli_uv; - int particle_id; + ParticleSystem *particle_system; + int particle_index; Object(); ~Object(); |