Render.ru

2 вопроса...

#1
Вот никак не найду как в темплейте:
1. Писать в риб кроме как через ribattribute (аля RIBBox из misc.slim);
2. Если никак (вроде так и есть), то как из тела одного параметра темплейта узнать значение (и т.п.) другого???

поможите уж...
 
#2
Во-первых, смотря чего ты в риб хочешь написать? Существует много способов записать в риб нужную тебе информацию, наиболее продвинутый способ - rib-generator. Но это требует знания С++ и API рендермена.

Потом есть такая фишка access output, параметр имеющий это свойство виден снаружи. Тоесть - пример у меня в источнике света (в шейдере для света) есть параметр _fogLight, имеющий свойство access output, я могу в шейдере для объемного света volume shader FogLight сделать вызов этого параметра (проверка) - lightsource ("_fogLight", foglight). Что сие значит? А это значит, что volume shader FogLight, который я написал заранее. Будет опрашивать все источники света в сцене и если у источника света есть аттрибут _fogLight, тогда функция lightsource возвращает значение 1 и присваивает переменной foglight значение параметра _fogLight, то есть один шейдер спрашивает у другого значение нужного ему параметра.

А вообще доку почитай - это там есть и еще книжку "Advanced Renderman", очень полезно. :))
 
#3
только не все так шоколадно :(
Дисплейс ни у кого ничо спросить не сможет.
Сурф может спросить только у дисплейса и лампочки.
Волуму ответят все.
А вот лампочка где попало не дает....только в специально
отведенных для етого местах (illuminance)
Ходят слухи что в 11 даже сурфы промеж собой общаться смогут...
Ето правда?
 
#4
11 еще не видел - может у кого бета и была, я пока это дело не юзал. Конечно про то кто у кого чего может спрашивать правильно - я вообще посоветовал человеку доку почитать. Вопрос вообще-то христоматийный, а книжки люди почему-то не любят читать, странно, очень увлекательное занятие на любом уровне знаний. А будет здорово если сурфы друг с другом смогут общаться. Много интересных фишек можно будет смастерить...
 
#5
to bog:

немного другая ситуация... Нужно что-то типа RIBBox, но: в нем есть несколько параметров (a, b, c ...), и там же есть ribattribute string ribString, содержимое которого и вставляется в риб. Собственно вопрос: можно ли в ентот самый ribString вставить например sin(a)+b/c, и как???
в армане про слим вроде маловато;)))

to Andrew V.K.:

насколько я понял в 11-ом общаться смогут вообще все!)
 
#6
Ты имеешь в виду RibBox или RibArchive, это немного разные вещи? Или Ensemble? В RibBox'е кроме текстового аттрибута ничего нету.
 
#7
Я имею ввиду именно RIBBox.
Он стандартно выводит содержимое ribattribute string ribString в РИБ. Пусть я завожу в RIBBox'е еще параметр, например

parameter float LALA
{
label "LALALAA"
description "..."
default 1
}

Собственно вопрос в том, ЧТО должно быть написано в ribString, чтобы в риб залить содержимое LALA? какая там конструкция...

а суть в том, что потом ribString делается hidden и все становиться красиво и удобно...

прошу прощения, что третий раз не могу сформулировать ответ(((
 
#8
Самый простой пример содержимого риб-бокса:

[if {ELEMENTTYPE == "shadow"} {return "ShadingRate 900"}]

В случае когда считается субфрейм типа "shadow", шейдинг рейт устанавливается равным 900.

Я так и не понял вопроса, на фиг тебе это надо? Ты конкретно опиши задачу. То что ты написал, как мне кажется, лишено смысла, зачем заводить в риббоксе новый параметр?
 
#9
Берем этот пример... заводим в темплейте перенную ShadingRate, хайдим RibString... и теперь надо подставить значение переменной ShadingRate в RibString, например:

[if {ELEMENTTYPE == "shadow"} {return "ShadingRate $ShadingRate"}

но это не сработает...
и не работает любой известный мне метод...
ВОПРОС: что надо написать в тексте RibString, чтоб туда запарсилось значение другой переменной теплейта (например ShadingRate)???
 
#10
Ну для такого примера, вполне можно обойтись возможностями Tcl.

1. Создаем в slim-e Tcl-box с объявлением нужных переменных.
(сам бох обзовем Declare_SR, например):
variable SR1 10
variable SR2 20

2. Создаем Rib-box под названием world_0. В нем пишем, например
такую пургу:
[ if { $ELEMENTTYPE == "final" } { return "ShadingRate $SR1" } ]
[ if { $ELEMENTTYPE == "shadow" } { return "ShadingRate [expr $SR2 + $SR1 - 5]" } ]

И получаем в основном rib-e:
#slim ribbox world_0
ShadingRate 10

А в shadow:
#slim ribbox world_0
ShadingRate 25
 
Сверху