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>2003-07-20 19:55:02 +0400
committerTon Roosendaal <ton@blender.org>2003-07-20 19:55:02 +0400
commitd5c829e413e3755750a46e2dee26905b16b1ff57 (patch)
tree692a83ce474ac3984bc5a233795c9d334c99a8ea /source/blender/render
parent502b6722190c5431c237cf4a8e0e6ea79119f35a (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.c11
-rw-r--r--source/blender/render/intern/source/rendercore.c10
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;