一、认识自定义函数节点

Unity提供的默认节点不能够覆盖我们所有的需求,所以它扩展性地提供了自定义函数节点,通过该节点,我们可以自由编写HLSL代码来满足自己的需求;其中,代码形式包含字符串模式和HLSL文本模式;

首先,我们需要像创建其它节点一样创建一个自定义函数节点,默认情况下,新创建的自定义函数节点没有任何输入和输出端口;我们可以通过齿轮icon来打开自定义端口菜单和自定义函数菜单;这两个菜单也就是自定义函数节点的两个核心部分了;

二、自定义端口菜单

端口分为输入端口和输出端口,分别位于两个不同的菜单列表中;

Shader Graph自定义函数节点

它提供了五种端口的操作

  • 添加:

  • 删除:

  • 重命名端口:端口的名称,它主要用于字符串模式中,我们在表达式中直接将端口名视为变量名;

  • 设置端口类型:

  • 排序:排序主要用于HLSL模式中的函数参数传递,函数的参数需要和列表顺序一一对应起来,而与函数名称无关;

三、自定义函数菜单

自定义函数一共有两种模式,字符串模式和文件模式;

字符串模式

如下,在type中选择字符串模式后,会有Name和Body选项,Name定义了生成的函数名称,Body则是表达式的主体部分;

Shader Graph自定义函数节点

 

生成的代码将如下:

Shader Graph自定义函数节点

文件模式

文件模式和编写Cg/HLSL的shader函数类似,定义一个函数,它的参数列表中包含一系列输入和输出参数,分别和自定义函数节点中的端口对应起来,其中输出端口相应的参数需要添加out关键字;

Shader Graph自定义函数节点

 

还需要特别注意的一点:函数名要加入_float或_half后缀,如上面的Name中是MyFunction,在代码中的函数名为MyFunction_float;

Shader Graph自定义函数节点

四、参考

Unity-Manual:Custom Function Node

Unity-Manual:Custom Port Menu

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-02
  • 2022-12-23
  • 2021-04-08
猜你喜欢
  • 2021-12-19
  • 2021-04-21
  • 2021-12-26
  • 2022-02-06
相关资源
相似解决方案