Render.ru

prman bug?

#1
Интересно, это у одного меня или нет...

appnote.24.html. Пытаюсь в prman рендерить в отдельные каналы Cs и Os.

Так вот prman в анимации нормально рендерит в каналы только первый кадр, а в остальных начинает портить Cs и Os... Лечится исключительно разнесением кадров в разные файлы и затем вызовом prman отдельно для каждого - что не есть хорошо...

Кто-нибудь пробовал?
 
#2
Ничо не понял про каналы...Что ты хочеш сделать?
App N24 работает как часы и с анимацией проблем пока небыло.
Вот заколбасил на основе этой фишки:
http://www.geocities.com/andrewvk107/RatDF0001.zip
Помимо туновской заливки дополнительно в отдельные файлы
сразу же счтались нормали, Depth, OdjectID и все без проблем.
 
#4
prman - из комплекта RAT. Причем - похоже - старого, поскольку

D:\...oRealistic RenderMan 3.9.1b1\bin>prman -version
Pixar PhotoRealistic RenderMan 3.9.1b1 Copyright (c) 1988-2000 Pixar.
linked 1:59p 04 25 2000

значит, старая бета?

Андрей - я пытаюсь сделать именно это - в отдельные файлы посчитать Cs и Os, а в основном файле я считаю nizid и потом махонькой тулзой собственного изготовления из низида делаю картун лайны ;-))

Так вот вопрос в том, что когда на каждый кадр идет один файл - все в порядке, а когда все кадры идут в одном файле - начинается постепенное угавнивание каждого следующего файла с Cs и Os. тогда как основном файл рендерится нормально...

вот и вопрос был - повторяется ли баг в новых версиях.... которые я поставлю вечером ;-)) ...
 
#5
Ник только что проверил на последнем RAT - баг сохранился.

Кому дать посмореть на сорец?
 
#6
Сорец "КартунЕджеВыковыривалки" ? Дай посмотреть. Интересно.
Я забил на низид потому как выковырять качественные
линии из него стандартными средствами (DFusion, Shake) неполучилось.
Да и геморно как то лазить по его R,G,B каналам. Для композа проще
когда каждый в своем файле.
К тому же в посторонней (не ARMan) доке по этой проблеме
все сводиться к Normal + Depth + ID а не типа I.N как низиде.
С обычной картой нормалей
результат куда лучше и чище (на мой взгляд). Хотя может я чо нитак делаю.

Правда считать приходиться с резолюшином
в 3 раза больше а потом после всех композовых операций
скейлить до нужного потому как толщина линий собель фильтров есьм
величина постоянная. Что для 320х240 что для 1500х1000 примерно 3-5
пикселя.
 
#7
Андрей,

оно пока особо не приглажено, тем более что Ник все никак мне не даст ту твою сцену в рибе - просто чтобы я смог сделать пример и потом сравнить.

Но буквально на днях сделаю, выложу на сайт и напишу везде. Потому как топик интересный, особо не раскрученный (даже несмотря на то, что арман вышел уже давно) и вообще. Там будет и фришный сорец ж-))

Кстати, активное обсуждение момента идет на BMRT eGroups, там Xavier-забыл-фамилию сделал то же самое, только на C - и по моей просьбе даже немного углубился в детали. Подробности здесь: http://groups.yahoo.com/group/bmrt

Кстати, а ты сам как делал? Шейдером и потом сводил?

А кстати я попробую сделать просто по карте нормалей. На самом то деле особой разницы между ней и N.I не будет, разве что на полигонах она будет почище...
 
#8
Рыбы с крысой у Ника нет потому как пропихнуть
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 правда очень грязную.
 
#9
И что самое интересное, мой шейдер повторяет твой почти дословно... Вот только у меня собель идет отдельной программкой. Соответственно и скорость - 2 секунды на картинке Format 2360 1520 1. p3 766 256M.

Я вот думаю туда же композер встроить, а то сильно быстро получается ;-))

А риб мне нужен - я хотел с твоей картинкой сравнить ;-))
 
Сверху