Render.ru

-=извращщщщение=-

#1
Народ, ктонть догадывается, как на sl написать алгортим, который при рендеринге выдавал бы геометрическую фигуру. Можт волюметрический шейдер какой для этолго напитсать надо? А можт а рибе надо алгоритм писать? Просто нада получить объест с, настолько сложной, формулой поверхности, что даж гудини не сожрет.
И еще, где мона взять перевод на русский этого http://www.pixar.com/renderman/developers_corner/rispec/rispec_pdf/RISpec3_2.pdf - это типа полное описание?

Заранее огромное спасибо за ЛЮБЫЕ ответы! :)))
 
#2
> как на sl написать алгортим, который при рендеринге выдавал
> бы геометрическую фигуру.

SL по своей идеологии имеет доступ к некоторым переменным внутри рендерера. Подробнее об этом - Renderman Interface v3.1 Section 12. Там они все перечислены.

Ну так вот, в случае displacement shaders можно изменять такие переменные, как:

P Surface position
dPdu Derivative of surface position along u
dPdv Derivative of surface position along v
N Surface shading normal

Если в результате изменения этих переменных получится некая геометрическая фигура - ну что ж, почему бы и нет.

Также в стандарте описаны Transformation shaders, но они нигде не реализованы. Есть еще расширение стандарта - Geometric Shaders - они есть только в Angel (www.dctsystems.freeserve.co.uk).

> Можт волюметрический шейдер какой для этолго напитсать надо?

Нет. Все, что делают шейдеры - это окрашивают некоторую точку экрана (за исключением дисплейсмента). Более того, у волюметрика нет доступа к переменным геометрии - всё, что он может сделать, это немного подкрасить основной цвет, чтобы было "как бы в тумане".

> А можт а рибе надо алгоритм писать?

Нет. RIB это стандарт описания геометрии, он не прездазначен для того, чтобы в нем описывать какие-либо алгоритмы. Строго говоря, он не интерпретируется, а просто парсится потоком as is.

> Просто нада получить объест с, настолько сложной,
> формулой поверхности, что даж гудини не сожрет.

Бутылку Клейна? ;-) Честно говоря, я не знаком с алгоритмами, которые невозможно реализовать в Гудини. Наверное, это от недостатка знакомства с оным. Что за формула такая?

> И еще, где мона взять перевод на русский этого >http://www.pixar.com/renderman/developers_corner/rispec/rispec_pdf/RISpec3_2.> pdf - это типа полное описание?

Это полное описание стандарта Renderman. Насколько я знаю, на русский язык его никто не переводит за ненадобностью - те, кому для работы он действительно нужен, хорошо понимают по-английски, не сочтите за снобизм.
 
#3
>> Можт волюметрический шейдер какой для этолго напитсать надо?
>Нет. Все, что делают шейдеры - это окрашивают некоторую точку экрана (за >исключением дисплейсмента). Более того, у волюметрика нет доступа к >переменным геометрии - всё, что он может сделать, это немного подкрасить >основной цвет, чтобы было "как бы в тумане".

а вот и неправда ваша.
см. книгу Advanced Renderman, стр. 423, раздел 15.2.2, Solid Hypertextures
там написано как сделать объект с помощью volumetric solid shader.
т.е. границы этого объекта вполне могут быть описаны и формулами, а просчет выполняется с помощью raymarching.
 
#4
Я понял. Возникло некоторое недоразумение. Я говорил о volume shaders. Вы говорите о волюметриках как об эффекте вообще. Да, такие эффекты возможны, и в армане они описаны, но делаются они не через volume shaders, а через surface shaders. Да это и понятно, поскольку, по спецификации:

file:///D:/pixar/Documentation%204.5/prman_technical_rendering/RISpec/section12.html#Volume.shaders

всё, что может видеть volume shader:

<input>
P point varying Light ray origin
E point uniform Position of the eye
I point varying Ray direction
Ci color varying Ray color
Oi color varying Ray opacity
ncomps float uniform Number of color components
time float uniform Current shutter time

<output>
Ci color varying Attenuated ray color at origin
Oi color varying Attenuated ray opacity at origin

Вот.

Налицо недоразумение и путаница между volume shaders и volumetric effects, достигаемых путем специализированных surface shaders. Я говорил про первые.
 
#5
Впринципе ничто не мешает волум шейдеру полностью
переопределить цвет и прозрачность некой точки.
"Гулять" вдоль I можно...единственное что нужно делать
для придания ему surface вида так ето как то калькулить нормали
и пользовать illuminance вместо стандартных diffuse, specular
Если бы поверхность (существует/не существует)
а так же ее нормаль в некой точке пространства можно было бы
описать математически то вобщем ето было бы возможно...
вопрос в том нахрена ето надо...
 
#6
Огромное спасибо за ответ. Эх, надо было почаще сюды заглядывать, пришлось самому допереть, что нада дисплейсмент делать.

Нужно получить вот такие штуковины http://astronomy.swin.edu.au/~pbourke/fractals/quaternionjulia/
в трехмере. Есть куча прог, в т. ч. povray, которые это делают, таже на турбо си с исходником, но надо-то в трехмере.

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

Как я понял в дисплейсменте алгоритм такой: рендерман пробегается по всем Р поверхности, и ставит вместо них своими руками запрограмированные значение, ну а N он может из P подсчитать. Осталось только расковырять исходник проги на турбо си и сотворить что-то в сл. Т. е. каждому P с поверхности, например, шара поставить в соответствие новый P и N. Пока проблем особых не вижу, тока смущает то, что нет одной волшебной формулы, которая переделает шар в эти фракталы, в лучшем случае алгоритм в пол страницы.

Заранее спасибо за советы. Если есть идеи, то есть работенка :)))

Вот, например, как сделать шарик из кубика или любой фигуры, но с некоторыми ограничениями:

displacement
spere003(float RR=1)
{
point A;
point B;
point C;
point D;
float R;
A = point "camera" (xcomp(P), ycomp(P), zcomp(P));
B = transform ("camera", "object", A);
C = RR*normalize (B);

P = transform("object", "camera", C);
/* N = normalize(P);*/
N = normalize(calculatenormal(P));
}
 
#7
> http://astronomy.swin.edu.au/~pbourke/fractals/quaternionjulia/

Ну ты себе задачи ставишь ;-)

Вот тебе линков до кучи:

http://groups.yahoo.com/group/lightflow/message/770
http://www.cs.ualberta.ca/~andreas/math/matrfaq_latest.html
http://groups.yahoo.com/group/lightflow/message/171
http://groups.yahoo.com/group/lightflow/message/417
http://groups.yahoo.com/group/lightflow/message/124

ну и мегалинк

http://www.hypercomplex.org/quats.htm

p.s. Здраво подумав, я бы эту геометрию эмитил через DSO. В нем бы считал все эти четырехмерности, а наружу выдавал исключительно геометрию. Рибовскую. Точками. Или, скорее, метаболлами.
 
Сверху