Render.ru

Мечта жизни!

#1
Мечта жизни у мен простая.. может затупил или что то типа того...
но вот мне очень хочеться поотключать спекуляры у света...
помогите кто чем может..

Ой
тоесть мне просто интересно можно ли это сделать через Свежий РАТ5 как еибудь дефаултно...

P.S. т.к похерил темплейт который это делал..
P.S_2 нетрвы....
P.S_3 если по новой с ним копаться то вырву сердце у компа..
 
#2
/*
** A modified spot shader to take into account the __nonspecular and __nondiffuse
** By Alex Ongaro
** alex.ongaro@swissonline.ch
**
**
** ----------------------------------------------------------------------------
*/

light AO_RatSpot (
color Light_Color = color(1,1,1);
float Kl=1;
float ConeAngle=30;
float PenumbraAngle=5;
float Non_Specular=0, Non_Diffuse=0;
output varying float __inShadow=0;
output varying float __nonspecular=0;
output varying float __nondiffuse=0;
)
{
#ifdef BMRT
point from = P;
vector axis = normalize(N);
#else
point from = point "shader"(0,0,0);
vector axis = normalize(vector "shader"(0,0,1));
#endif
uniform float angle = radians(ConeAngle);
uniform float penumbra = radians(PenumbraAngle);
uniform float cosoutside = cos(angle);
uniform float cosinside = cos(angle-penumbra);

__nonspecular = Non_Specular;
__nondiffuse = Non_Diffuse;
color ColorL = Light_Color;

illuminate(from, axis, angle) {
varying float atten, cosangle;
cosangle = L.axis / length(L);
atten = smoothstep( cosoutside, cosinside, cosangle );
atten *= 1 / pow(length(L), 0);
Cl = atten * Kl * ColorL;
Cl = mix(Cl,color(0,0,0), __inShadow);
}
}
 
#4
Ну я думаю, что если найти в родных темплейтах описание SpotLight и добавить туда пару нужных строчек, то так и будет.
При желании, можно попробовать и mtorSpotLight переписать.
Видимо, не всем эта фича нужна по дефолту.
 
#5
Спасибо...
вообщем... я думаю займусь копанием темплейта.. этак на выходных..
 
#6
Добавь вот параметры в template light Spot:

parameter float Specular {
description "Emmit Specular"
subtype switch
default 1
detail uniform
}
parameter float Diffuse {
description "Emmit Diffuse"
subtype switch
default 1
detail uniform
}
parameter float __nonspecular {
access output
display hidden
detail varying
provider variable
default 0
}
parameter float __nondiffuse {
access output
display hidden
detail varying
provider variable
default 0
}
И в RSLMain, где-то ПЕРЕД illuminate(from, axis, angle) :
output "__nonspecular = 1 - [getvar Specular];"
output "__nondiffuse = 1 - [getvar Diffuse];"

Наслаждайся...
 
#8
Можно даже еще проще: ratUberlight.slo, который лежит вместе со всеми остальными стандартными шейдерами RAT, имеет галочку nonspecular...
 
Сверху