diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2012-08-31 21:27:08 +0400 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2012-08-31 21:27:08 +0400 |
commit | f0d247748408bd10f49c54d3a28a925e37683c4b (patch) | |
tree | b47851a73399e6b30c501550ec9024897d65c186 /intern/cycles/render/object.h | |
parent | 5ecff7a240514e8f16e17aa163c6f0055b9edaf2 (diff) |
Fix for #32184 and redesign of particle storage in Cycles.
The particle data used by the Particle Info node was stored in cycles as a list in each object. This is a problem when the particle emitter mesh is hidden: Objects in cycles are only intended as instances of renderable meshes, so when hiding the emitter mesh the particle data doesn't get stored either. Also the particle data can potentially be copied to multiple instances of the same object, which is a waste of texture space.
The solution in this patch is to make a completely separate list of particle systems in the Cycles scene data. This way the particle data can be generated even when the emitter object itself is not visible.
Diffstat (limited to 'intern/cycles/render/object.h')
-rw-r--r-- | intern/cycles/render/object.h | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/intern/cycles/render/object.h b/intern/cycles/render/object.h index 9b2f5bc8768..88677d79dff 100644 --- a/intern/cycles/render/object.h +++ b/intern/cycles/render/object.h @@ -35,12 +35,6 @@ struct Transform; /* Object */ -struct Particle { - int index; - float age; - float lifetime; -}; - class Object { public: Mesh *mesh; @@ -56,7 +50,6 @@ public: bool use_holdout; int particle_id; - vector<Particle> particles; Object(); ~Object(); @@ -78,7 +71,6 @@ public: void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); void device_update_transforms(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); - void device_update_particles(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); void device_free(Device *device, DeviceScene *dscene); void tag_update(Scene *scene); |