diff options
author | Ton Roosendaal <ton@blender.org> | 2003-07-20 19:55:02 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2003-07-20 19:55:02 +0400 |
commit | d5c829e413e3755750a46e2dee26905b16b1ff57 (patch) | |
tree | 692a83ce474ac3984bc5a233795c9d334c99a8ea /source/blender/render | |
parent | 502b6722190c5431c237cf4a8e0e6ea79119f35a (diff) |
- added the 'no diffuse' and 'no specularity' options for Lamps, as were
in Tuhopuu
- added the Tuhopuu feature which displays material-buttons and lamp-
buttons integrated. saves button presses that way!
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/source/pixelshading.c | 11 | ||||
-rw-r--r-- | source/blender/render/intern/source/rendercore.c | 10 |
2 files changed, 15 insertions, 6 deletions
diff --git a/source/blender/render/intern/source/pixelshading.c b/source/blender/render/intern/source/pixelshading.c index 1c2ac2509c7..337f6ffcd0a 100644 --- a/source/blender/render/intern/source/pixelshading.c +++ b/source/blender/render/intern/source/pixelshading.c @@ -1169,7 +1169,11 @@ void shadeLampLusFloat() /* dot product and reflectivity*/ inp=i= vn[0]*lv[0] + vn[1]*lv[1] + vn[2]*lv[2]; - if(lar->type==LA_HEMI) { + + if(lar->mode & LA_NO_DIFF) { + i= 0.0; // skip shaders + } + else if(lar->type==LA_HEMI) { i= 0.5*i+0.5; } else { @@ -1198,7 +1202,7 @@ void shadeLampLusFloat() } /* specularity */ - if(ma->spec!=0.0) { + if(ma->spec!=0.0 && !(lar->mode & LA_NO_SPEC)) { if(lar->type==LA_SUN || lar->type==LA_HEMI) { if(lar->type==LA_SUN) { @@ -1246,7 +1250,8 @@ void shadeLampLusFloat() } } } - if(i>0.0) { + + if(i>0.0 && !(lar->mode & LA_NO_DIFF)) { ir+= i*lar->r; ig+= i*lar->g; ib+= i*lar->b; diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index b34f5bd1a29..34a1436c514 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -1796,7 +1796,10 @@ void shade_lamp_loop() /* dot product and reflectivity*/ inp= vn[0]*lv[0] + vn[1]*lv[1] + vn[2]*lv[2]; - if(lar->type==LA_HEMI) { + if(lar->mode & LA_NO_DIFF) { + i= 0.0; // skip shaders + } + else if(lar->type==LA_HEMI) { i= 0.5*inp + 0.5; } else { @@ -1822,7 +1825,7 @@ void shade_lamp_loop() } /* specularity */ - if(ma->spec!=0.0) { + if(ma->spec!=0.0 && !(lar->mode & LA_NO_SPEC)) { if(lar->type==LA_SUN || lar->type==LA_HEMI) { if(lar->type==LA_SUN) { @@ -1868,7 +1871,8 @@ void shade_lamp_loop() } } } - if(i>0.0) { + /* in case 'no diffuse' we still do most calculus, spec can be in shadow */ + if(i>0.0 && !(lar->mode & LA_NO_DIFF)) { ir+= i*lar->r; ig+= i*lar->g; ib+= i*lar->b; |