Вот, для тех кто в курсе, что такое Sler. Если это не про вас, смотрите это.
Релизовал я таки в Sler AOV, хотя и не до конца. Получилось хоть и Output Variables, но точно уж не Arbitrary.
Посмотреть чего я натворил и как это использовать можно тут.
Суть такова, что все входы всех блоков не будут использоваться для аргументов генерируемых шейдеров (как это было раньше), если это явно не указать. Что вроде бы логично, т.е. обычно нужно изменять только некоторые атрибуты шейдера. В будущем нужно будет реализовать высокоуровневые команды, типа "Установить все инпуты всех блоков ниже по иерархии для использования в качестве аргументов шейдера". Ну и так далее.
Более того, аргументы можно объявить как output, что даст возможность записывать в файлы всё, что присваивается им внутри кода шейдера, т.е. то с чем это аргумент соеденён в редакторе графа.
И ещё, для инпутов теперь можно задать storage class (см. инфу по RenderMan, например, спеку) и вот как это работает.
Если инпут используется как аргумент, и ни с чем не соеденён, то storage class просто указывается в аргументах шейдера. По умолчанию storage class для всех будет uniform.
Если инпут используется как аргумент и соеденён с чем либо (имеет смысл только если он также объявлен как output), то storage class игнорируется, и в шейдере записывается storage class источника.
Если инпут не используется в качестве аргумента, то и storage class не используется никак, т.к. при генерации подставляется значение инпута, а не имя его переменной. Мало того, переменная не создаётся вообще.
Ну вот и всё вроде.
P.S. Ну а для того, чтобы сделать полноценный AOV нужно всего лишь реализовать возможность создания пользовательских инпутов, а остальное прибудет автоматически. Это должно быть понятно из вышесказаного.
Подписаться на:
Комментарии к сообщению (Atom)

Комментариев нет:
Отправить комментарий