OSL 着色器中的颜色处理
OSL 着色器对应于我们节点系统中的 节点。输入参数显示为 OSL 纹理节点上的输入引脚。有一个 输出 参数对应于节点的输出值。
OSL 代码中的 I/O 类型 对应于以下 Octane 属性引脚类型:
color - Octane 纹理属性
point - Octane 投影属性(UV、球形、圆柱形…)
vector、normal - Octane 浮点属性(X、Y、Z)
matrix - Octane 变换属性
float - Octane 浮点属性(1D 值)
int - Octane 整数属性(1D 值)
string - Octane 文件名或枚举 ⁽¹⁾ 属性
函数签名中的默认值用作输入引脚的默认值。
OSL 允许着色器的 元数据,这些元数据提供对节点参数显示的更多控制。OctaneRender® 支持以下内容:
所有输入的元数据
string label - 覆盖在 节点检查器 中显示的名称。通常,显示变量名。
string help - 当您将鼠标悬停在引脚上时,为该引脚提供工具提示。
string page - 将引脚分组到类别中。
整数和浮点输入的元数据
float/int min, max - 为 浮点 或 整数 输入指定最小值和最大值。不保证着色器中变量的实际值在这些范围内。
float/int slidermin, slidermax - 为滑块指定更窄的值范围。您仍然可以通过按住鼠标右键并输入值来输入此范围之外(但在 min/max 内)的值。
float/int sensitivity - 为浮点/整数类型变量指定步长。
float/int sliderexponent - 设置滑块的偏斜因子。OctaneRender®,仅支持线性(sliderexponent == 1)和对数(sliderexponent > 1)。
整数输入的元数据
string widget = "checkBox" - 显示复选框而不是滑块。输入值将为 0 或 1。
string widget = "boolean" - checkBox 的同义词。
string widget = "mapper" - 将输入值转换为枚举值(PT_ENUM),OctaneRender® 使用下拉菜单表示。
string options - 使用组合框。选项由管道字符分隔,键和值由冒号分隔,例如,option one:1|option two:2|option three:3。
矩阵输入的元数据
int dim - 设置为 2 或 3,这指定矩阵应显示为 2D 还是 3D 变换。
字符串输入的元数据
string widget = "popup"/string options - 使用组合框,使用给定字符串中的选项。选项由管道字符分隔,例如,option one|option two|option three。
int editable - 如果设置为 1,您可以在组合框中输入不在选项列表中的字符串值。
文件名输入始终显示为文件输入,无论任何给定的元数据如何。
要了解更多关于使用 [Open Shader Language](javascript:void(0);.md) 编程的信息,请参阅 OSL 指南:https://docs.otoy.com/osl/