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:
-rw-r--r--source/blender/render/intern/source/pixelshading.c22
-rw-r--r--source/blender/render/intern/source/rendercore.c22
-rw-r--r--source/blender/src/buttons.c4
3 files changed, 23 insertions, 25 deletions
diff --git a/source/blender/render/intern/source/pixelshading.c b/source/blender/render/intern/source/pixelshading.c
index 337f6ffcd0a..c9ddd8d189c 100644
--- a/source/blender/render/intern/source/pixelshading.c
+++ b/source/blender/render/intern/source/pixelshading.c
@@ -1204,15 +1204,12 @@ void shadeLampLusFloat()
if(ma->spec!=0.0 && !(lar->mode & LA_NO_SPEC)) {
- if(lar->type==LA_SUN || lar->type==LA_HEMI) {
- if(lar->type==LA_SUN) {
- lv[2]-= 1.0;
- }
- else {
- lv[0]+= view[0];
- lv[1]+= view[1];
- lv[2]+= view[2];
- }
+ if(lar->type==LA_HEMI) {
+ /* hemi uses no spec shaders (yet) */
+
+ lv[0]+= view[0];
+ lv[1]+= view[1];
+ lv[2]+= view[2];
Normalise(lv);
@@ -1221,9 +1218,7 @@ void shadeLampLusFloat()
if(lar->type==LA_HEMI) {
t= 0.5*t+0.5;
}
- /* watch it: shadfac and lampdist used below */
- /* sun and hemi use no shaders */
t= ma->spec*spec(t, ma->har);
isr+= t*(lar->r * ma->specr);
isg+= t*(lar->g * ma->specg);
@@ -1232,7 +1227,10 @@ void shadeLampLusFloat()
else {
/* specular shaders */
float specfac;
-
+
+ /* we force a different lamp vector for sun light */
+ if(lar->type==LA_SUN) lv[2]-= 1.0;
+
if(ma->spec_shader==MA_SPEC_PHONG)
specfac= Phong_Spec(vn, lv, view, ma->har);
else if(ma->spec_shader==MA_SPEC_COOKTORR)
diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c
index 34a1436c514..936f91bdccd 100644
--- a/source/blender/render/intern/source/rendercore.c
+++ b/source/blender/render/intern/source/rendercore.c
@@ -1827,15 +1827,12 @@ void shade_lamp_loop()
if(ma->spec!=0.0 && !(lar->mode & LA_NO_SPEC)) {
- if(lar->type==LA_SUN || lar->type==LA_HEMI) {
- if(lar->type==LA_SUN) {
- lv[2]-= 1.0;
- }
- else {
- lv[0]+= view[0];
- lv[1]+= view[1];
- lv[2]+= view[2];
- }
+ if(lar->type==LA_HEMI) {
+ /* hemi uses no spec shaders (yet) */
+
+ lv[0]+= view[0];
+ lv[1]+= view[1];
+ lv[2]+= view[2];
Normalise(lv);
@@ -1844,7 +1841,7 @@ void shade_lamp_loop()
if(lar->type==LA_HEMI) {
t= 0.5*t+0.5;
}
- /* sun and hemi use no shaders */
+
t= ma->spec*spec(t, ma->har);
isr+= t*(lar->r * ma->specr);
isg+= t*(lar->g * ma->specg);
@@ -1853,7 +1850,10 @@ void shade_lamp_loop()
else {
/* specular shaders */
float specfac;
-
+
+ /* we force a different lamp vector for sun light */
+ if(lar->type==LA_SUN) lv[2]-= 1.0;
+
if(ma->spec_shader==MA_SPEC_PHONG)
specfac= Phong_Spec(vn, lv, view, ma->har);
else if(ma->spec_shader==MA_SPEC_COOKTORR)
diff --git a/source/blender/src/buttons.c b/source/blender/src/buttons.c
index 19ca0ec3c41..7737bc61515 100644
--- a/source/blender/src/buttons.c
+++ b/source/blender/src/buttons.c
@@ -4243,7 +4243,7 @@ void matbuts(void)
if(ma->diff_shader==MA_DIFF_ORENNAYAR)
uiDefButF(block, NUM, B_MATPRV, "Rough:", 200, 70, 95,18, &(ma->roughness), 0.0, 3.14, 0, 0, "Oren Nayar Roughness");
else if(ma->diff_shader==MA_DIFF_TOON) {
- uiDefButF(block, NUM, B_MATPRV, "Size:", 200, 70, 95,18, &(ma->param[0]), 0.0, 1.0, 0, 0, "Size of diffuse toon area");
+ uiDefButF(block, NUM, B_MATPRV, "Size:", 200, 70, 95,18, &(ma->param[0]), 0.0, 3.14, 0, 0, "Size of diffuse toon area");
uiDefButF(block, NUM, B_MATPRV, "Smooth:", 200, 50, 95,18, &(ma->param[1]), 0.0, 1.0, 0, 0, "Smoothness of diffuse toon area");
}
@@ -4253,7 +4253,7 @@ void matbuts(void)
if(ma->spec_shader==MA_SPEC_BLINN)
uiDefButF(block, NUM, B_MATPRV, "Refr:", 295, 50, 90,18, &(ma->refrac), 1.0, 10.0, 0, 0, "Refraction index");
if(ma->spec_shader==MA_SPEC_TOON) {
- uiDefButF(block, NUM, B_MATPRV, "Size:", 295, 70, 90,18, &(ma->param[2]), 0.0, 1.0, 0, 0, "Size of specular toon area");
+ uiDefButF(block, NUM, B_MATPRV, "Size:", 295, 70, 90,18, &(ma->param[2]), 0.0, 1.53, 0, 0, "Size of specular toon area");
uiDefButF(block, NUM, B_MATPRV, "Smooth:", 295, 50, 90,18, &(ma->param[3]), 0.0, 1.0, 0, 0, "Smoothness of specular toon area");
}