diff options
author | Ton Roosendaal <ton@blender.org> | 2005-12-03 15:55:35 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2005-12-03 15:55:35 +0300 |
commit | 8cb14867b0ad104ebe1f6fd086656dd12ada5758 (patch) | |
tree | 26e38fe819a0bf1715d73347939a4361e9c0eee6 /source/blender/render | |
parent | 8a84a957f2b0cc95608cda81c2aeb655f1732788 (diff) |
Added Copy/Paste 'mapping' options for World/Lamp buttons.
Also: moved render defines from scene to render module itself.
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/extern/include/render_types.h | 32 | ||||
-rw-r--r-- | source/blender/render/intern/source/rendercore.c | 37 | ||||
-rw-r--r-- | source/blender/render/intern/source/renderdatabase.c | 29 |
3 files changed, 75 insertions, 23 deletions
diff --git a/source/blender/render/extern/include/render_types.h b/source/blender/render/extern/include/render_types.h index 3a09ba133ef..8118e72f24a 100644 --- a/source/blender/render/extern/include/render_types.h +++ b/source/blender/render/extern/include/render_types.h @@ -194,9 +194,9 @@ typedef struct VertRen float *orco; float *sticky; void *svert; /* smooth vert, only used during initrender */ - short clip, texofs; /* texofs= flag */ - float accum; /* accum for radio weighting, and for strand texco static particles */ + short clip; short flag; /* in use for clipping ztra parts */ + float accum; /* accum for radio weighting, and for strand texco static particles */ } VertRen; /* ------------------------------------------------------------------------- */ @@ -313,6 +313,34 @@ typedef struct LampRen struct MTex *mtex[MAX_MTEX]; } LampRen; +/* **************** defines ********************* */ + +/* mode flag is same as for renderdata */ +/* flag */ +#define R_ZTRA 1 +#define R_HALO 2 +#define R_SEC_FIELD 4 +#define R_LAMPHALO 8 +#define R_RENDERING 16 +#define R_ANIMRENDER 32 +#define R_REDRAW_PRV 64 + +/* vlakren->flag (vlak = face in dutch) char!!! */ +#define R_SMOOTH 1 +#define R_VISIBLE 2 +/* strand flag, means special handling */ +#define R_STRAND 4 +#define R_NOPUNOFLIP 8 +#define R_FULL_OSA 16 +#define R_FACE_SPLIT 32 +/* Tells render to divide face other way. */ +#define R_DIVIDE_24 64 +/* vertex normals are tangent or view-corrected vector, for hair strands */ +#define R_TANGENT 128 + + + + #endif /* RENDER_TYPES_H */ diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 26ac9b51af4..b1ee0908eef 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -113,10 +113,11 @@ void calc_view_vector(float *view, float x, float y) } } +#if 0 static void fogcolor(float *colf, float *rco, float *view) { - float alpha, stepsize, dist, hor[3], zen[3], vec[3], dview[3]; - float accum[4]={0.0f, 0.0f, 0.0f, 0.0f}, div=0.0f; + float alpha, stepsize, startdist, dist, hor[4], zen[3], vec[3], dview[3]; + float div=0.0f, distfac; hor[0]= R.wrld.horr; hor[1]= R.wrld.horg; hor[2]= R.wrld.horb; zen[0]= R.wrld.zenr; zen[1]= R.wrld.zeng; zen[2]= R.wrld.zenb; @@ -130,30 +131,29 @@ static void fogcolor(float *colf, float *rco, float *view) dview[0]= view[0]/(stepsize*div); dview[1]= view[1]/(stepsize*div); dview[2]= -stepsize; - -if(G.rt) printf("\n"); - for(dist= -rco[2]; dist>R.wrld.miststa; dist-= stepsize) { + + startdist= -rco[2] + BLI_frand(); + for(dist= startdist; dist>R.wrld.miststa; dist-= stepsize) { hor[0]= R.wrld.horr; hor[1]= R.wrld.horg; hor[2]= R.wrld.horb; alpha= 1.0f; do_sky_tex(vec, vec, NULL, hor, zen, &alpha); -if(G.rt) printf("dist %f ", dist); -if(G.rt) printvecf("vec", vec); - accum[3]= (dist-R.wrld.miststa)/R.wrld.mistdist; -if(G.rt) printf("accum %f\n", accum[3]); - accum[3]= hor[0]*accum[3]; + distfac= (dist-R.wrld.miststa)/R.wrld.mistdist; + + hor[3]= hor[0]*distfac*distfac; /* premul! */ - accum[0]= hor[0]*accum[3]; - accum[1]= hor[1]*accum[3]; - accum[2]= hor[2]*accum[3]; - addAlphaOverFloat(colf, accum); + alpha= hor[3]; + hor[0]= hor[0]*alpha; + hor[1]= hor[1]*alpha; + hor[2]= hor[2]*alpha; + addAlphaOverFloat(colf, hor); VECSUB(vec, vec, dview); - } - + } } +#endif float mistfactor(float zcor, float *co) /* dist en height, return alpha */ { @@ -2375,11 +2375,6 @@ void *shadepixel(float x, float y, int z, int facenr, int mask, float *col, floa } } - /* FOG */ - if(0) {//(R.wrld.mode & WO_MIST) && (shi.mat->mode & MA_NOMIST)==0 ) { - fogcolor(col, shi.co, shi.view); - } - /* MIST */ if((R.wrld.mode & WO_MIST) && (shi.mat->mode & MA_NOMIST)==0 ) { if(R.r.mode & R_ORTHO) diff --git a/source/blender/render/intern/source/renderdatabase.c b/source/blender/render/intern/source/renderdatabase.c index ee003964764..b2f7cdfca48 100644 --- a/source/blender/render/intern/source/renderdatabase.c +++ b/source/blender/render/intern/source/renderdatabase.c @@ -74,6 +74,35 @@ /* ------------------------------------------------------------------------- */ +#if 0 +/* proposal for more dynamic allocation of options for render vertices, so we dont + have to reserve this space inside vertices */ +typedef struct VertTableNode { + VertRen *vert; + float *rad; + float *sticky; + float *strand; + float *tangent; + float *stress; +} VertTableNode; + +#define RE_STICKY_ELEMS 3 +float *RE_vertren_get_sticky(VertRen *ver, int verify) +{ + float *sticky; + int a= ver->index>>8; + + sticky= R.blove[a].sticky; + if(sticky==NULL) { + if(verify) + sticky= R.blove[a].sticky= MEM_mallocN(RE_STICKY_ELEMS*sizeof(float), "sticky table"); + else + return NULL; + } + sticky+= (nr & 255)*RE_STICKY_ELEMS; +} +#endif + VertRen *RE_findOrAddVert(int nr) { VertRen *v, **temp; |