昨天跟一哥们聊天,听到了Node based这个词,不知道是不是他首创,无论如何先谢谢他:)
昨天晚上我一直在想,是不是可以把shader系统做成一个个Node?,这些Node是可以配置的。大概的Node分类如下:
1: Vertex Input Node , 可以配置项,Input Stream / Output Arg
2: Vertex Modifier : 可以配置项, input arg , output Arg
3:Vertex Output Node 可以配置项, input arg , VertexOutput
其它的几种Shader类似。Shader Node之间可以串起来,形成一个完整的Shader。这个过程中,前一个Node的输出和下一个Node的输入可以做自动匹配。
这个想法听起来似乎还不错。不过似乎在程序中应用的话,如何定义API接口是个问题。但是用它做一个Shader材质编辑器却是非常容易的事情。