Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2005-12-03 15:55:35 +0300
committerTon Roosendaal <ton@blender.org>2005-12-03 15:55:35 +0300
commit8cb14867b0ad104ebe1f6fd086656dd12ada5758 (patch)
tree26e38fe819a0bf1715d73347939a4361e9c0eee6 /source/blender/render
parent8a84a957f2b0cc95608cda81c2aeb655f1732788 (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.h32
-rw-r--r--source/blender/render/intern/source/rendercore.c37
-rw-r--r--source/blender/render/intern/source/renderdatabase.c29
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;