Рыбы с крысой у Ника нет потому как пропихнуть
1.7 Mb для меня в последнее время весьма
проблематично. Один из вариантов шейдера вот:
surface
AKToon ( float Ka = 0.5;
float Kd = 1.0;
color Color = 0.7;
string ColTex = "";
float NumLevels = 3;
float Opacity = 1.0;
float ObjID = 1.0;
string EdgeTex = "";
output varying color Normal = 0;
output varying color ZDepth = 0;
output varying color ID = 0;
output varying color TexID = 0;
)
{
normal Nf;
Nf = faceforward( normalize(N), I );
varying float id;
if ( Nf.N >= 0.0 )
id = ObjID;
else
id = ObjID + 1;
float X = (xcomp(Nf)+1)/2;
float Y = (ycomp(Nf)+1)/2;
float Z = (zcomp(Nf)+1)/2;
Normal = color( X, Y, Z );
ZDepth = color mix(color 1, color 0, depth(P));
ID = color cellnoise(id);
if (EdgeTex != "")
TexID = texture(EdgeTex,s,t);
color DiffColor = diffuse(Nf);
float DiffRamp = 0.3 * comp(DiffColor,0) +
0.59 * comp(DiffColor,1) +
0.11 * comp(DiffColor,2);
float Mixer = Ka + (Kd - Ka) * floor(DiffRamp * NumLevels) / NumLevels;
if (ColTex != "")
Ci = texture(ColTex,s,t) * Mixer * Opacity;
else
Ci = Color * Mixer * Opacity;
Oi = color Opacity;
}
Кадр (1500х1200 + Normal + Depth + ID) на P450 128 Mb.
считался что то около 4 мин кажеться...уже непомню.
Потом все это сводил в Digital Fusion его стандартным
собель фильтром и сведенную картинку скейлил до 500х400
на что уходило примерно по 10 сек. на кадр.
TexID в данном случае я не использовал. Он нужен если
вдруг понадобиться нарисовать морщины на лбу, обрисовать
нарисованный карман...короче если нужны custom обводки.
Что до полигонов то да есть такое дело.
Я после собеля Normal мапки ставил колор корректор.
Так когда им рулиш вообще можно получить картину всех
полифэйсов типа wireframe правда очень грязную.