diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-12-04 16:57:28 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-12-04 16:57:28 +0300 |
commit | 32a8b4f8e686938ec2f0f95e6acc2eb3c25ebfdf (patch) | |
tree | ff232d89da0b2f0db1da4becb1980af513ea2274 /source/blender/render/intern/include/renderdatabase.h | |
parent | ebfedd20b290e356f35eb1fcbcb5ddfb8e8bf0a9 (diff) |
Particles
=========
- Fix crash in particle transform with the particle system not editable.
- Particle child distribution and caching is now multithreaded.
- Child particles now have a separate Render Amount next to the existing
Amount. The render amount particles are now only distributed and cached
at render time, which should make editing with child particles faster.
- Two new options for diffuse strand shading:
- Surface Diffuse: computes the strand normal taking the normal at
the surface into account.
- Blending Distance: the distance in Blender units over which to
blend in the normal at the surface.
- Special strand rendering for more memory efficient and faster hair and
grass. This is a work in progress, and has a number of known issues,
don't report bugs to me for this feature yet.
More info:
http://www.blender.org/development/current-projects/changes-since-244/particles/
Diffstat (limited to 'source/blender/render/intern/include/renderdatabase.h')
-rw-r--r-- | source/blender/render/intern/include/renderdatabase.h | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/source/blender/render/intern/include/renderdatabase.h b/source/blender/render/intern/include/renderdatabase.h index dc70ade25ae..febf90d9d6e 100644 --- a/source/blender/render/intern/include/renderdatabase.h +++ b/source/blender/render/intern/include/renderdatabase.h @@ -39,6 +39,8 @@ struct Render; struct MCol; struct MTFace; struct CustomData; +struct StrandBuffer; +struct StrandRen; #define RE_QUAD_MASK 0x7FFFFFF #define RE_QUAD_OFFS 0x8000000 @@ -59,9 +61,20 @@ typedef struct VlakTableNode { struct MTFace **mtface; struct MCol **mcol; int totmtface, totmcol; + float *surfnor; struct CustomDataNames **names; } VlakTableNode; +typedef struct StrandTableNode { + struct StrandRen *strand; + float *winspeed; + float *surfnor; + struct MCol **mcol; + float **uv; + int totuv, totmcol; + struct CustomDataNames **names; +} StrandTableNode; + typedef struct CustomDataNames{ struct CustomDataNames *next, *prev; @@ -75,18 +88,20 @@ void free_renderdata_vertnodes(struct VertTableNode *vertnodes); void free_renderdata_vlaknodes(struct VlakTableNode *vlaknodes); void set_normalflags(Render *re); -void project_renderdata(struct Render *re, void (*projectfunc)(float *, float mat[][4], float *), int do_pano, float xoffs); +void project_renderdata(struct Render *re, void (*projectfunc)(float *, float mat[][4], float *), int do_pano, float xoffs, int do_buckets); /* functions are not exported... so wrong names */ struct VlakRen *RE_findOrAddVlak(struct Render *re, int nr); struct VertRen *RE_findOrAddVert(struct Render *re, int nr); +struct StrandRen *RE_findOrAddStrand(struct Render *re, int nr); struct HaloRen *RE_findOrAddHalo(struct Render *re, int nr); struct HaloRen *RE_inithalo(struct Render *re, struct Material *ma, float *vec, float *vec1, float *orco, float hasize, float vectsize, int seed); struct HaloRen *RE_inithalo_particle(struct Render *re, struct DerivedMesh *dm, struct Material *ma, float *vec, float *vec1, float *orco, float *uvco, float hasize, float vectsize, int seed); -void RE_addRenderObject(struct Render *re, struct Object *ob, struct Object *par, int index, int sve, int eve, int sfa, int efa); +void RE_addRenderObject(struct Render *re, struct Object *ob, struct Object *par, int index, int sve, int eve, int sfa, int efa, int sst, int est); +struct StrandBuffer *RE_addStrandBuffer(struct Render *re, struct Object *ob, int totvert); float *RE_vertren_get_sticky(struct Render *re, struct VertRen *ver, int verify); float *RE_vertren_get_stress(struct Render *re, struct VertRen *ver, int verify); @@ -97,6 +112,12 @@ float *RE_vertren_get_winspeed(struct Render *re, struct VertRen *ver, int verif struct MTFace *RE_vlakren_get_tface(struct Render *re, VlakRen *ren, int n, char **name, int verify); struct MCol *RE_vlakren_get_mcol(struct Render *re, VlakRen *ren, int n, char **name, int verify); +float *RE_vlakren_get_surfnor(struct Render *re, VlakRen *ren, int verify); + +float *RE_strandren_get_winspeed(struct Render *re, struct StrandRen *strand, int verify); +float *RE_strandren_get_surfnor(struct Render *re, struct StrandRen *strand, int verify); +float *RE_strandren_get_uv(struct Render *re, struct StrandRen *strand, int n, char **name, int verify); +struct MCol *RE_strandren_get_mcol(struct Render *re, struct StrandRen *strand, int n, char **name, int verify); struct VertRen *RE_vertren_copy(struct Render *re, struct VertRen *ver); struct VlakRen *RE_vlakren_copy(struct Render *re, struct VlakRen *vlr); |