Blender V2.61 - r43446
|
Go to the source code of this file.
Classes | |
struct | StrandPoint |
struct | StrandSegment |
Typedefs | |
typedef struct StrandPoint | StrandPoint |
typedef struct StrandSegment | StrandSegment |
typedef struct StrandShadeCache | StrandShadeCache |
Functions | |
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 | strand_minmax (struct StrandRen *strand, float *min, float *max, float width) |
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 StrandShadeCache * | strand_shade_cache_create (void) |
void | strand_shade_cache_free (struct StrandShadeCache *cache) |
void | strand_shade_segment (struct Render *re, struct StrandShadeCache *cache, struct StrandSegment *sseg, struct ShadeSample *ssamp, float t, float s, int addpassflag) |
void | strand_shade_unref (struct StrandShadeCache *cache, struct StrandVert *svert) |
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) |
void | project_hoco_to_bucket (struct RenderBuckets *buckets, float *hoco, float *bucketco) |
struct RenderPrimitiveIterator * | init_primitive_iterator (struct Render *re, struct RenderBuckets *buckets, struct RenderPart *pa) |
void * | next_primitive_iterator (struct RenderPrimitiveIterator *iter) |
void | free_primitive_iterator (struct RenderPrimitiveIterator *iter) |
Definition in file strand.h.
typedef struct StrandPoint StrandPoint |
typedef struct StrandSegment StrandSegment |
typedef struct StrandShadeCache StrandShadeCache |
void add_buckets_primitive | ( | struct RenderBuckets * | buckets, |
float * | min, | ||
float * | max, | ||
void * | prim | ||
) |
struct StrandSurface* cache_strand_surface | ( | struct Render * | re, |
struct ObjectRen * | obr, | ||
struct DerivedMesh * | dm, | ||
float | mat[][4], | ||
int | timeoffset | ||
) | [read] |
Definition at line 968 of file strand.c.
References StrandSurface::ao, BLI_addtail(), MVert::co, StrandSurface::co, co, copy_v3_v3(), StrandSurface::env, StrandSurface::face, ListBase::first, DerivedMesh::getFaceArray, DerivedMesh::getNumFaces, DerivedMesh::getNumVerts, DerivedMesh::getVertArray, ObjectRen::index, StrandSurface::indirect, MEM_callocN(), mul_m4_v3(), StrandSurface::next, StrandSurface::nextco, ObjectRen::ob, StrandSurface::obr, ObjectRen::par, StrandSurface::prevco, Render::strandsurface, StrandSurface::totface, StrandSurface::totvert, MFace::v1, MFace::v2, MFace::v3, and MFace::v4.
Referenced by render_new_particle_system().
void free_buckets | ( | struct RenderBuckets * | buckets | ) |
void free_primitive_iterator | ( | struct RenderPrimitiveIterator * | iter | ) |
void free_strand_surface | ( | struct Render * | re | ) |
Definition at line 1022 of file strand.c.
References StrandSurface::ao, BLI_freelistN(), StrandSurface::co, StrandSurface::env, StrandSurface::face, ListBase::first, StrandSurface::indirect, MEM_freeN(), StrandSurface::next, StrandSurface::nextco, StrandSurface::prevco, and Render::strandsurface.
Referenced by RE_Database_Free().
struct RenderBuckets* init_buckets | ( | struct Render * | re | ) | [read] |
struct RenderPrimitiveIterator* init_primitive_iterator | ( | struct Render * | re, |
struct RenderBuckets * | buckets, | ||
struct RenderPart * | pa | ||
) | [read] |
void* next_primitive_iterator | ( | struct RenderPrimitiveIterator * | iter | ) |
void project_hoco_to_bucket | ( | struct RenderBuckets * | buckets, |
float * | hoco, | ||
float * | bucketco | ||
) |
void render_strand_segment | ( | struct Render * | re, |
float | winmat[][4], | ||
struct StrandPart * | spart, | ||
struct ZSpan * | zspan, | ||
int | totzspan, | ||
StrandSegment * | sseg | ||
) |
Definition at line 738 of file strand.c.
References StrandSegment::buffer, StrandPoint::clip1, StrandPoint::clip2, StrandPoint::co1, StrandPoint::co2, do_strand_point_project(), StrandPoint::hoco1, StrandPoint::hoco2, StrandSegment::point1, StrandSegment::point2, projectvert(), strand_eval_point(), strand_project_point(), strand_render(), strand_segment_recursive(), StrandPoint::t, testclip(), StrandBuffer::winmat, StrandBuffer::winx, StrandBuffer::winy, StrandPoint::zco1, and StrandPoint::zco2.
Referenced by zbuffer_shadow(), and zbuffer_strands_abuf().
void strand_eval_point | ( | StrandSegment * | sseg, |
StrandPoint * | spoint | ||
) |
Definition at line 88 of file strand.c.
References add_v3_v3v3(), StrandPoint::alpha, StrandSegment::buffer, StrandVert::co, StrandPoint::co, StrandPoint::co1, StrandPoint::co2, copy_v3_v3(), cross(), cross_v3_v3v3(), data, StrandPoint::dsco, StrandPoint::dtco, StrandPoint::dtstrandco, StrandBuffer::flag, ObjectInstanceRen::flag, KEY_BSPLINE, KEY_CARDINAL, key_curve_position_weights(), key_curve_tangent_weights(), len_v3(), StrandBuffer::ma, ObjectInstanceRen::mat, StrandBuffer::minwidth, mul_m4_v3(), mul_v3_fl(), negate_v3(), StrandPoint::nor, normalize_v3_v3(), StrandSegment::obi, StrandBuffer::obr, p, R_STRAND_B_UNITS, R_STRAND_BSPLINE, R_TRANSFORMED, RE_strandren_get_simplify(), sqrt(), StrandSegment::strand, strand_eval_width(), StrandVert::strandco, StrandPoint::strandco, sub_v3_v3v3(), StrandPoint::t, StrandPoint::tan, StrandSegment::v, simple_enum_gen::w, StrandPoint::width, StrandBuffer::winmat, StrandBuffer::winx, and StrandBuffer::winy.
Referenced by render_strand_segment(), strand_segment_recursive(), and strand_shade_get().
void strand_minmax | ( | struct StrandRen * | strand, |
float * | min, | ||
float * | max, | ||
float | width | ||
) |
Definition at line 1039 of file strand.c.
References StrandVert::co, copy_v3_v3(), DO_MINMAX, and StrandRen::vert.
Referenced by finalize_render_object().
struct StrandShadeCache* strand_shade_cache_create | ( | void | ) | [read] |
Definition at line 326 of file strand.c.
References BLI_ghash_new(), BLI_ghashutil_ptrcmp(), BLI_ghashutil_ptrhash(), BLI_memarena_new(), BLI_MEMARENA_STD_BUFSIZE, MEM_callocN(), StrandShadeCache::memarena, StrandShadeCache::refcounthash, and StrandShadeCache::resulthash.
Referenced by zbuffer_transp_shade().
void strand_shade_cache_free | ( | struct StrandShadeCache * | cache | ) |
Definition at line 338 of file strand.c.
References BLI_ghash_free(), BLI_memarena_free(), MEM_freeN(), StrandShadeCache::memarena, NULL, StrandShadeCache::refcounthash, and StrandShadeCache::resulthash.
Referenced by zbuffer_transp_shade().
void strand_shade_segment | ( | struct Render * | re, |
struct StrandShadeCache * | cache, | ||
struct StrandSegment * | sseg, | ||
struct ShadeSample * | ssamp, | ||
float | t, | ||
float | s, | ||
int | addpassflag | ||
) |
Definition at line 377 of file strand.c.
References StrandSegment::buffer, fabs(), interpolate_shade_result(), pow(), ShadeSample::shr, strand_apply_shaderesult_alpha(), strand_shade_get(), StrandSegment::v, and StrandBuffer::widthfade.
Referenced by shade_strand_samples().
void strand_shade_unref | ( | struct StrandShadeCache * | cache, |
struct StrandVert * | svert | ||
) |
Definition at line 397 of file strand.c.
References BLI_ghash_lookup(), BLI_ghash_remove(), MEM_freeN(), NULL, StrandShadeCache::refcounthash, and StrandShadeCache::resulthash.
Referenced by unref_strand_samples().