- Separates displace from Var slider. Added Disp Slider to
authorRobert Wenzlaff <rwenzlaff@soylent-green.com>
Thu, 15 Jan 2004 04:06:24 +0000 (04:06 +0000)
committerRobert Wenzlaff <rwenzlaff@soylent-green.com>
Thu, 15 Jan 2004 04:06:24 +0000 (04:06 +0000)
  control how the intensity channel affects displacement.  Nor
  slider still controls how Nor channel affects displacement.

- Scaled Nor displacement to make Nor slider more usable.

- Removed Data scale from displacement routines.  Made
  sliders unusable for objects scaled in editmode.  Displacement
  now relative to unit sized object.  Displace still tracks
  with object scale, so scale out of editmode if you want a
  large object with deep displacement.

source/blender/makesdna/DNA_texture_types.h
source/blender/render/intern/source/texture.c
source/blender/renderconverter/intern/convertBlenderScene.c
source/blender/src/buttons_shading.c

index ba95e2ecbedff014ce7fe6727383b6349795762d..8b5afb2e2baa089152e7d164b08e2696800e8f7d 100644 (file)
@@ -58,6 +58,8 @@ typedef struct MTex {
        float def_var;
        
        float colfac, norfac, varfac;
+       float dispfac; 
+       short pad1, pad2; 
        
 } MTex;
 
index 30b49bbf918ab9131c5acbc2aa107fbde783a9ea..a32ae75ce555fa7eb727d05b633617d38ffce678 100644 (file)
@@ -1219,9 +1219,9 @@ void do_material_tex(ShadeInput *shi)
                                        if(mtex->maptoneg & MAP_DISPLACE) tex->norfac= -mtex->norfac;
                                        else tex->norfac= mtex->norfac;
 
-                                       shi->displace[0]+= Tnor*tex->norfac*tex->nor[0];
-                                       shi->displace[1]+= Tnor*tex->norfac*tex->nor[1];
-                                       shi->displace[2]+= Tnor*tex->norfac*tex->nor[2];
+                                       shi->displace[0]+= 0.1f*Tnor*tex->norfac*tex->nor[0];
+                                       shi->displace[1]+= 0.1f*Tnor*tex->norfac*tex->nor[1];
+                                       shi->displace[2]+= 0.1f*Tnor*tex->norfac*tex->nor[2];
                                }
                                
                                if(rgbnor & TEX_RGB) {
@@ -1230,10 +1230,10 @@ void do_material_tex(ShadeInput *shi)
                                }
 
                                if(mtex->maptoneg & MAP_DISPLACE) {
-                                       factt= (0.5-Tin)*mtex->varfac; facmm= 1.0-factt;
+                                       factt= (0.5-Tin)*mtex->dispfac; facmm= 1.0-factt;
                                }
                                else {
-                                       factt= (Tin-0.5)*mtex->varfac; facmm= 1.0-factt;
+                                       factt= (Tin-0.5)*mtex->dispfac; facmm= 1.0-factt;
                                }
 
                                if(mtex->blendtype==MTEX_BLEND) {
index cde2e5554a8cf3879397295ec061fd423c2b2fbc..c673859bbbf763b47eb3669da3a090cd4c5fc0a6 100644 (file)
@@ -3031,42 +3031,8 @@ void do_displacement(Object *ob, int startface, int numface, int startvert, int
        float min[3]={1e30, 1e30, 1e30}, max[3]={-1e30, -1e30, -1e30};
        float scale[3]={1.0f, 1.0f, 1.0f}, temp[3], xn;
        int i, texflag=0, flipnorm;
-       BoundBox *bb; 
-       Mesh *me;
-       Curve *cu;
-       MetaBall *mb; 
        Object *obt;
-
-       /* Calculate Texture space scale factor */
-       if (ob->type == OB_MESH) {
-               me=(Mesh *)(ob->data);
-               if (me->bb == NULL) tex_space_mesh(me);
-               bb=me->bb;
-               texflag=me->texflag;
-       }
-       else if ((ob->type == OB_CURVE)||(ob->type == OB_SURF)||(ob->type == OB_FONT)) {
-               cu=(Curve *)(ob->data);
-               if (cu->bb == NULL) tex_space_curve(cu);
-               bb=cu->bb;
-               texflag=cu->texflag;
-       }
-       else if (ob->type == OB_MBALL) { /* Metaballs have bb but don't seem to use it */
-               mb=(MetaBall *)(ob->data);
-               if (ob->bb == NULL) ob=find_basis_mball(ob);
-               if (ob->bb == NULL) tex_space_mball(ob);
-               bb=ob->bb;
-               texflag=mb->texflag;
-       }
-       else bb=ob->bb; /* Need to test? */     
-       
-       /* Relative scale of Data  We reat amount of displacement */
-       /* the same as other texture coords.  Scale with data id AutoTexSpace is on. */
-       if ( texflag & 1) { /* Bit 0 = Autotex */
-               for(i=0; i<8; i++){ DO_MINMAX(bb->vec[i], min, max); }
-               VecSubf(scale, max, min);
-               printf("data scale=%f, %f, %f\n", scale[0], scale[1], scale[2]);
-       }
-       
+               
        /* Object Size with parenting */
        obt=ob;
        while(obt){
@@ -3216,9 +3182,9 @@ void displace_render_vert(ShadeInput *shi, VertRen *vr, float *scale)
        //vr->co[0], vr->co[1], vr->co[2]);
        
        /* 0.5 could become button once?  */
-       vr->co[0] += 0.25 * shi->displace[0] * scale[0] ; 
-       vr->co[1] += 0.25 * shi->displace[1] * scale[1] ; 
-       vr->co[2] += 0.25 * shi->displace[2] * scale[2] ; 
+       vr->co[0] +=  shi->displace[0] * scale[0] ; 
+       vr->co[1] +=  shi->displace[1] * scale[1] ; 
+       vr->co[2] +=  shi->displace[2] * scale[2] ; 
        
        //printf("after co=%f, %f, %f\n", vr->co[0], vr->co[1], vr->co[2]); 
 
index b2e10a8320a5c9811d27140f0d4c68b26eb5a354..d9461134c1b5f3fc6931ea449da793e55835dc5d 100644 (file)
@@ -1441,10 +1441,10 @@ static void world_panel_mapto(World *wrld)
        uiDefButS(block, ROW, B_MATPRV, "Add",                  1182,130,41,19, &(mtex->blendtype), 9.0, (float)MTEX_ADD, 0, 0, "Sets texture to add the values or colour");
        uiDefButS(block, ROW, B_MATPRV, "Sub",                  1226,130,40,19, &(mtex->blendtype), 9.0, (float)MTEX_SUB, 0, 0, "Sets texture to subtract the values or colour");
        uiBlockBeginAlign(block);
-       uiDefButF(block, NUMSLI, B_MATPRV, "Col ",              1087,50,179,19, &(mtex->colfac), 0.0, 1.0, 0, 0, "Sets the amount the texture affects colour values");
-       uiDefButF(block, NUMSLI, B_MATPRV, "Nor ",              1087,30,179,19, &(mtex->norfac), 0.0, 1.0, 0, 0, "Sets the amount the texture affects normal values");
-       uiDefButF(block, NUMSLI, B_MATPRV, "Var ",              1087,10,179,19, &(mtex->varfac), 0.0, 1.0, 0, 0, "Sets the amount the texture affects other values");
-
+       uiDefButF(block, NUMSLI, B_MATPRV, "Col  ",             1087,50,179,19, &(mtex->colfac), 0.0, 1.0, 0, 0, "Sets the amount the texture affects colour values");
+       uiDefButF(block, NUMSLI, B_MATPRV, "Nor  ",             1087,30,179,19, &(mtex->norfac), 0.0, 1.0, 0, 0, "Sets the amount the texture affects normal values");
+       uiDefButF(block, NUMSLI, B_MATPRV, "Var  ",             1087,10,179,19, &(mtex->varfac), 0.0, 1.0, 0, 0, "Sets the amount the texture affects other values");
+       
 }
 
 static void world_panel_texture(World *wrld)
@@ -2137,9 +2137,10 @@ static void material_panel_map_to(Material *ma)
        uiDefButS(block, ROW, B_MATPRV, "Add",                  1182,120,41,18, &(mtex->blendtype), 9.0, (float)MTEX_ADD, 0, 0, "Sets texture to add the values or colour");
        uiDefButS(block, ROW, B_MATPRV, "Sub",                  1226,120,40,18, &(mtex->blendtype), 9.0, (float)MTEX_SUB, 0, 0, "Sets texture to subtract the values or colour");
        uiBlockBeginAlign(block);
-       uiDefButF(block, NUMSLI, B_MATPRV, "Col ",              1087,50,179,18, &(mtex->colfac), 0.0, 1.0, 0, 0, "Sets the amount the texture affects colour values");
-       uiDefButF(block, NUMSLI, B_MATPRV, "Nor ",              1087,30,179,18, &(mtex->norfac), 0.0, 5.0, 0, 0, "Sets the amount the texture affects normal values");
-       uiDefButF(block, NUMSLI, B_MATPRV, "Var ",              1087,10,179,18, &(mtex->varfac), 0.0, 1.0, 0, 0, "Sets the amount the texture affects other values");
+       uiDefButF(block, NUMSLI, B_MATPRV, "Col ",              1087,70,179,18, &(mtex->colfac), 0.0, 1.0, 0, 0, "Sets the amount the texture affects colour values");
+       uiDefButF(block, NUMSLI, B_MATPRV, "Nor ",              1087,50,179,18, &(mtex->norfac), 0.0, 5.0, 0, 0, "Sets the amount the texture affects normal values");
+       uiDefButF(block, NUMSLI, B_MATPRV, "Var ",              1087,30,179,18, &(mtex->varfac), 0.0, 1.0, 0, 0, "Sets the amount the texture affects other values");
+       uiDefButF(block, NUMSLI, B_MATPRV, "Disp ",             1087,10,179,19, &(mtex->dispfac), 0.0, 1.0, 0, 0, "Sets the amount the texture displaces the surface");
        uiBlockEndAlign(block);
 }