Render.ru

Uniform parameters in Slim Template

#1
Всем привет!
Давеча занялся переводить некоторые полезные ShaderMan-овские briks-ы в Slim-овские темплейты и наткнулся на пару непонятностей. Наверное больше вопрос к Kidd-ую Например, почему нельзя экспортировать в темплейт любой не присоединенный к root-у набор briks-ов? (Темплейт ведь может быть float или color) И касательно uniform параметров:
если этот модификатор присутствует в описании параметра в RSL функции, то и в секции параметров темплейта, тоже получается например:

parameter uniform float receiveShadows2 {
detail varying
label "receiveShadows2"
default "1"
}
Из-за чего я полчаса пытался въехать, почему эти параметры не отображаются в Slim-овском Appearance. Оказалось -- из-за слова uniform!!!

А теперь, хотелось бы определить с практической точки зрения, когда уместно использовать этот модификатор. Пока читаешь в книжке, все кажется логичным и убедительным, но когда дело доходит до дела, то отсутствие твердого знания привдит к непоняткам. Проще конечно, если не уверен, то и не использовать (благо работать будет), но все же хотелось бы разобраться.
 
#2
Когда на 100% уверен что этот параметр одинаков в любой точке объекта
и ничто не может его изменить. (типа константа)
У тебя параметр объявлен как uniform а detail стоит varying
что предполагает возможность коннектов которые в свою очередь
могут сделать его varying....что есть недопустимо.
varying -> uniform = нельзя
uniform -> varying = можно
Кажеться так.
А использовать uniform нужно поскольку это дает нехилую
оптимизацию...говорят.
 
#3
> Давеча занялся переводить некоторые полезные ShaderMan-овские
> briks-ы в Slim-овские темплейты и наткнулся на пару
> непонятностей. Наверное больше вопрос к Kidd-ую Например,
> почему нельзя экспортировать в темплейт любой не
> присоединенный к root-у набор briks-ов? (Темплейт ведь может
> быть float или color)

Это неправда. Можно. Правым кликом на нужном брике и из контекстного меню - Export to SLIM template

> И касательно uniform параметров:
> если этот модификатор присутствует в описании параметра в RSL
> функции, то и в секции параметров темплейта, тоже получается
> например:
>
> parameter uniform float receiveShadows2 {
> detail varying
> label "receiveShadows2"
> default "1"
> }
> Из-за чего я полчаса пытался въехать, почему эти параметры не
> отображаются в Slim-овском Appearance. Оказалось -- из-за
> слова uniform!!!

Тут смысл в том, что то, что автор брика впихнул в свое творение, то у тебя в шейдере и в экспортнутом СЛИМе и вылезет. Захотел он поставить униформ - значит, везде будет униформ.

Если есть комментарии к конкретным брикам - милости просим ;-)
 
#4
Kidd wrote:
> Это неправда. Можно. Правым кликом на нужном брике и из
> контекстного меню - Export to SLIM template
Сорри -- не досмотрел. Так работает. Достаточно удобно.
Просто у меня была ситуация, когда брики были незаконнекчены к root-у, а я пробовал экспортить из меню File->Export. При этом посоянно вываливалось:
No selected brick, nothing to export... (Хотя все было селекчено)

> Тут смысл в том, что то, что автор брика впихнул в свое
> творение, то у тебя в шейдере и в экспортнутом СЛИМе и
> вылезет. Захотел он поставить униформ - значит, везде будет
> униформ.
Это понятно. Uniform -- уточнение существенное. Повторюсь, что параметры, у которых uniform стоит в секции определения в темплейте, в Appearance не появляются (при экспорте из ShaderMana).

> Если есть комментарии к конкретным брикам - милости просим ;-)
В форум или на мыло?
 
#5
> > Это неправда. Можно. Правым кликом на нужном брике и из
> > контекстного меню - Export to SLIM template
> Сорри -- не досмотрел. Так работает. Достаточно удобно.
> Просто у меня была ситуация, когда брики были незаконнекчены
> к root-у, а я пробовал экспортить из меню File->Export. При
> этом посоянно вываливалось:
> No selected brick, nothing to export... (Хотя все было
> селекчено)

Это да. Это дурацкое сообщение об ошибке. Вернее, неинформативное ;-)

> > Если есть комментарии к конкретным брикам - милости просим
> ;-)
> В форум или на мыло?

Я думаю, лучше на мыло, чтобы тут не мусорить.
 
Сверху