Shader Graph自定义函数节点

一、认识自定义函数节点

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

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

二、自定义端口菜单

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

它提供了五种端口的操作

  • 添加:

  • 删除:

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

  • 设置端口类型:

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

三、自定义函数菜单

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

字符串模式

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

 

生成的代码将如下:

5

文件模式

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

 

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

四、参考

Unity-Manual:Custom Function Node

Unity-Manual:Custom Port Menu

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值