Render.ru

Как юзать BMRT ?

#1
Тут много было разговоров о использовании prMan и BMRT. Как я ни старался я мало чего понял. Господа (товарищи) специалисты, если не затруднит, уделите чуть-чуть внимание начинающим в этом деле, расскажите поподробней, как же это все сделать под NT.
Конкретно я имею в виду честное отражение, преломление. Если можно с каким нибудь примерчиком.

P.S. Опишите любой способ, как это можно сделать.
 
#2
Я уже говорил - под NT не получится. Ларри обещает исправить. RTFM.
 
#3
?

погодите-погодите...
как так не получится? вы говорили bmrt+prman (что-б radiosity) под nt не получится а пара maxman и bmrt под nt получится ?
очень интересно...

?
 
#4
Не получится под NT вызывать BMRT *из-под* Prman'а в качестве rayserver'а. А по отдельности и BMRT и Prman юзай сколько влезет.
 
#6
Если речь идет об использовании MTOR + BMRT - RenderMan то:
1. Убедись что BMRT стоит правиьно (энвиронменты установлены)
2. В дире (у меня) D:\PIXAR\RenderMan Artist Tools 4.1\bin
сделай фаил slimBmrtRender.bat который содержит:

rendrib %1
sho -dspy slim -dspyfile %2 %2
rm -f %2

3. Там же сделай файл slcmtor.bat (спасибо JinnDOS) который содержит:

slc -I%1 %2

4. В дире (у меня) D:\PIXAR\RenderMan Artist Tools 4.1\etc
зайди в slim.ini и добавь строку:

LoadExtension slim [file join $templates bmrt.slim]

5. В дире (у меня) D:\PIXAR\RenderMan Artist Tools 4.1\lib\slim
сделай файл bmrt.slim в который вставь:

## ----------------------------------------------------------------------------
#
# bmrt.slim
#
#
slim 1 extensions pixardb {
extensions pixar pxsl {
template color BMRTReflections {
label "BMRT Reflections"
description "Collects coherent ray traced reflections.
Also you should specify BMRT's slc
as your secondary shader compiler."
parameter float Kr {
description "Multiplier for reflections."
detail varying
subtype slider
range {0 2 .01}
default .25
}
parameter color reflFilter {
label "Reflection Filter"
default {1 1 1}
}
parameter color cResult {
display hidden
access output
detail varying
default {1 1 1}
}
RSLFunction {
void
pxslBMRTReflections(
float Kr;
color reflFilter;
output color cResult;)
{
extern point P;
extern vector I;
extern normal N;

normal Nf = faceforward(normalize(N), I);
vector IN = normalize(I);

vector Rdir;
Rdir = reflect (IN, Nf);
Rdir = normalize(Rdir);


color ev;
if (Kr > 0.001) {
ev = Kr * trace(P, Rdir);
} else {
ev = 0;
}
cResult = (reflFilter * ev);
}
}
}
template color BMRTRefractions {
label "BMRT Refractions"
description "Refractions. Just choose appropriate settings for the
Refraction effects.
Also you should specify BMRT's slc as your secondary shader
compiler."
parameter float IOR {
label "Refraction Index"
description "The relative index of refraction."
subtype slider
range {0 2 .01}
default 1.3
}
parameter float Kt {
description "Multiplier for refraction."
detail varying
subtype slider
range {0 2 .01}
default 1.0
}
parameter color refrFilter {
label "Refraction Filter"
detail varying
default {1 1 1}
}
parameter color cResult {
display hidden
access output
detail varying
default {1 1 1}
}
RSLFunction {
void
pxslBMRTRefractions(
uniform float IOR;
float Kt;
color refrFilter;
output color cResult;)
{
extern point P;
extern vector I;
extern normal N;

normal Nf = faceforward(normalize(N), I);
vector IN = normalize(I);
float eta;
if (I.N < 0) {eta = 1.0/IOR;}
else {eta = IOR;}
vector Tdir;
Tdir = refract(IN, Nf, eta);
Tdir = normalize(Tdir);


color ev;
if (Kt > 0.001) {ev = Kt * trace(P, Tdir);}
else {ev = 0;}
cResult = (refrFilter * ev);
}
}
}
}
}

Теперь в слиме появятся 2 новых color элемента:
BMRT Reflections и BMRT Refractions которые можно
добавлять в AdditiveFX в качестве ченэла поверх
основного материала. Вариантов масса, тэмплыйт
примитивный и даже не использует fresnel
но на его основе можно сделать чтонить более продвинутое
Сделай сам.

6. В майке загрузи MTOR и:
зайди в RenderMan - Workspace Editor где в закладке
Resource Locations в torShaders вместо /rmanshader
руками напиши прямой путь (у меня) E:/Projects/TestBMRT/rmanshader
тоже сделай и для текстур
(которые туда и складируй (которые должны быть tif-ами)) потом
жми на Apply. В дире твоего майского проекта при этом появиться
файл RATworkspace.ws который удалять нельзя иначе придется пункт
6 повторить заново.

7. Зайди RenderMan - Slim - Preferences
где в закладке Misk проверь что бы Full Paths была выключена
(всмысле галки нет) а в закладке Expert поставь галку в
Expert Menus, в строке Secondary Compiler пропиши slcmtor.bat %I %f
в строке Render пропиши slimBmrtRender.bat %f %i

8. Зайди в RenderMan - RenderMan Globals

Display Server выбери framebuffer
Spool - Job Setup - Renderer поставь custom
Spool - Job Setup - Custom в строке Renderer пропиши rendrib
9. Все. У меня все работает.

 
Сверху