From 02145966a849c708f3bf89ca1276b673210d1e7c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 24 Jan 2008 13:11:15 +0000 Subject: Fix for strand render + simplification + vector blur. With the number of strands changing between frames, vector blur couldn't work. Now speed vectors are interpolated from the surface. This also means child particles don't have to be computed in the previous and next frames, so saves time too. --- source/blender/render/intern/include/strand.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/render/intern/include/strand.h') diff --git a/source/blender/render/intern/include/strand.h b/source/blender/render/intern/include/strand.h index f1c0b6d1e3a..8e34fa27342 100644 --- a/source/blender/render/intern/include/strand.h +++ b/source/blender/render/intern/include/strand.h @@ -44,6 +44,9 @@ struct RenderBuckets; struct RenderPrimitiveIterator; struct ZSpan; struct ObjectInstanceRen; +struct StrandSurface; +struct DerivedMesh; +struct ObjectRen; typedef struct StrandPoint { /* position within segment */ @@ -89,6 +92,9 @@ void strand_eval_point(StrandSegment *sseg, StrandPoint *spoint); void render_strand_segment(struct Render *re, float winmat[][4], struct StrandPart *spart, struct ZSpan *zspan, int totzspan, StrandSegment *sseg); void project_strands(Render *re, void (*projectfunc)(float *, float mat[][4], float *), int do_pano, int do_buckets); +struct StrandSurface *cache_strand_surface(struct Render *re, struct ObjectRen *obr, struct DerivedMesh *dm, float mat[][4], int timeoffset); +void free_strand_surface(struct Render *re); + struct RenderBuckets *init_buckets(struct Render *re); void add_buckets_primitive(struct RenderBuckets *buckets, float *min, float *max, void *prim); void free_buckets(struct RenderBuckets *buckets); -- cgit v1.2.3