Начиная с введения в спецификации OSL,
Поверхностные и объемные шейдеры OSL вычисляют явное символическое описание, называемое «замыканием», того, как поверхность или объем рассеивает свет в единицахяркости.
В Blender узлы циклов с зеленым выходным сокетом являются узлами "замыкания", они обеспечивают вычисления BRDF / BSDF , которыепридать вид в рендере.Cycles предоставляет доступный тип замыканий, OSL не может реализовать новые типы замыканий.
Так что да, вам придется изменить код блендера, чтобы предлагать разные типы замыканий, но сценарий OSL может добавить множество настроек дляциклически обрабатывает дерево узлов без необходимости изменения кода блендера.Сценарий OSL скомпилирован с использованием JIT-компилятора LLVM для запуска на текущем используемом процессоре.Таким образом, скрипт OSL «внедряет» новый код в движок рендеринга, он просто ограничен в том, как он может изменить конечный результат.
Обратите внимание, что скрипт OSL не должен обеспечивать вывод закрытия, он можетвыходные значения с плавающей запятой или цвета, которые позволяют ему предоставлять промежуточные узлы в дереве узлов.
В качестве примеров сценариев OSL LGHexTiles.osl предоставляет полный узел, который может использоваться сам по себе какматериал.В то время как MAscales.osl обеспечивает вывод цвета и с плавающей запятой, которые составляют только один узел в материале.
И, как и многие другие, скриптами OSL можно злоупотреблять. Здесь вы найдете информацию о старой Amiga Juggler, реализованной в OSL-скрипте.Да, простой движок рендеринга, написанный на OSL.Я почти уверен, что он продолжил развивать raytracer.