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-04-13 18:03:10 +0400
committerTon Roosendaal <ton@blender.org>2005-04-13 18:03:10 +0400
commitc3221bac833af3cfbbb1936160a466191d1cf545 (patch)
tree0c53d094dfb991c5a43597485bff8f1d4d9fd08b /source/blender/renderconverter
parent84359bf9965adb118aff17d4e7ae22606cfebd3f (diff)
Two small corrections for subsurf + wire render;
- when edges data exists, it skips adding faces to renderlist - edges are rendered according to "Optimal" subsurf setting
Diffstat (limited to 'source/blender/renderconverter')
-rw-r--r--source/blender/renderconverter/intern/convertBlenderScene.c56
1 files changed, 33 insertions, 23 deletions
diff --git a/source/blender/renderconverter/intern/convertBlenderScene.c b/source/blender/renderconverter/intern/convertBlenderScene.c
index cbb3239dd67..7331033f877 100644
--- a/source/blender/renderconverter/intern/convertBlenderScene.c
+++ b/source/blender/renderconverter/intern/convertBlenderScene.c
@@ -1437,6 +1437,12 @@ static void init_render_mesh(Object *ob)
}
}
}
+
+ /* if wire material, and we got edges, don't do the faces */
+ if(ma->mode & MA_WIRE) {
+ end= dlm?dlm->totedge:me->totedge;
+ if(end) ok= 0;
+ }
if(ok) {
TFace *tface= NULL;
@@ -1560,32 +1566,36 @@ static void init_render_mesh(Object *ob)
if(end && (ma->mode & MA_WIRE)) {
MEdge *medge;
medge= dlm?dlm->medge:me->medge;
+
for(a1=0; a1<end; a1++, medge++) {
- MVert *v0 = &mvert[vertofs+medge->v1];
- MVert *v1 = &mvert[vertofs+medge->v2];
-
- vlr= RE_findOrAddVlak(R.totvlak++);
- vlr->ob= vlr_set_ob(ob);
- vlr->v1= RE_findOrAddVert(vertofs+medge->v1);
- vlr->v2= RE_findOrAddVert(vertofs+medge->v2);
- vlr->v3= vlr->v2;
- vlr->v4= NULL;
- xn= (v0->no[0]+v1->no[0]);
- yn= (v0->no[1]+v1->no[1]);
- zn= (v0->no[2]+v1->no[2]);
- if(do_puno==0) {
- /* transpose ! */
- vlr->n[0]= imat[0][0]*xn+imat[0][1]*yn+imat[0][2]*zn;
- vlr->n[1]= imat[1][0]*xn+imat[1][1]*yn+imat[1][2]*zn;
- vlr->n[2]= imat[2][0]*xn+imat[2][1]*yn+imat[2][2]*zn;
- Normalise(vlr->n);
+ if( (me->flag & ME_OPT_EDGES)==0 || (medge->flag & ME_EDGEDRAW)) {
+ MVert *v0 = &mvert[vertofs+medge->v1];
+ MVert *v1 = &mvert[vertofs+medge->v2];
+
+ vlr= RE_findOrAddVlak(R.totvlak++);
+ vlr->ob= vlr_set_ob(ob);
+ vlr->v1= RE_findOrAddVert(vertofs+medge->v1);
+ vlr->v2= RE_findOrAddVert(vertofs+medge->v2);
+ vlr->v3= vlr->v2;
+ vlr->v4= NULL;
+
+ xn= (v0->no[0]+v1->no[0]);
+ yn= (v0->no[1]+v1->no[1]);
+ zn= (v0->no[2]+v1->no[2]);
+ if(do_puno==0) {
+ /* transpose ! */
+ vlr->n[0]= imat[0][0]*xn+imat[0][1]*yn+imat[0][2]*zn;
+ vlr->n[1]= imat[1][0]*xn+imat[1][1]*yn+imat[1][2]*zn;
+ vlr->n[2]= imat[2][0]*xn+imat[2][1]*yn+imat[2][2]*zn;
+ Normalise(vlr->n);
+ }
+
+ vlr->mat= ma;
+ vlr->flag= 0;
+ vlr->ec= ME_V1V2;
+ vlr->lay= ob->lay;
}
-
- vlr->mat= ma;
- vlr->flag= 0;
- vlr->ec= ME_V1V2;
- vlr->lay= ob->lay;
}
}
}