Render.ru

shadow()

#1
Пишу lightshader.
blur = 16;
result = shadow(filename, Q,
"samples", samples,
"swidth", blur,
"twidth", blur);
вот так всё нормально.
когда меняю установку blur с константы на, например, random()
PRMan пишет следующее:
S05001 Shadeop error: argument 8 is wrong type (vertex scalar) in op shadow at pc 47 in "rmanshader/Spot_0".
Shader "rmanshader/Spot_0", Geometry "|pCube1|pCubeShape1". (WARNING)

и ничего не меняется. хотелось бы знать почему. мне надо чтобы blur не был статичен, а менялся в зависимости от того какая точка в данный момент обрабатывается.

Заранее благодарен, Майк.
 
#2
По поводу ошибки так ты просто забыл что
random() (как впрочем и другие функции) , бывают
разных типов ( float, point и.т.п )
Просто нужно было писать с указанием типа:
float random ()
А по поводу самой идеи - недумаю что бы это сработало
Похоже что аргумент для фильтров не может быть varying.
Хотя может я и обшибаюсь.
Если че получиться - сообчи :)
 
#3
Скорее всего - нет, не будет работать, поскольку shadow будет вызываться в цикле для каждого пиксела - varying тип не сработает.
 
Сверху