Blender的着色器里做一个MUX

Blender的着色器里做一个MUX

刚开始用Blender的着色器编辑器,觉得很奇怪,这玩意咋没有全局常量呢?

用着用着才知道,组就是全局函数,假如组只有输出没有输入,那它就是全局常量了。


一个人物模型有很多贴图可以选,而且往往按部位分成了多个图片,我想能够一次操作就能替换掉一组贴图,而不是不停地把线连来连去。

这种东西叫多路选择器MUX,写代码时管它叫Switch.

直接上图!

“比较”是“运算”这个函数的一个功能,当值1和值2的差的绝对值小于Epsilon时,输出1,否则输出0.

“混合”:系数为0时输出色彩1,系数为1时输出色彩2,系数在0~1之间则按比例混合。

所以只要把左边的值改成0,1,2,即可输出对应输入通道的颜色。这玩意按shift-d复制以后,无论在哪修改左边的值,全部函数里的值都会改变。除非你点组旁边的数字复制一份单用户拷贝,这样它就变成独立的函数了。


贴图颜色输出了,但是有些贴图是Bump贴图,所需的Bump强度还不同。。

那再整个输出强度的呗(这不就是个数组吗?!!)。或者在贴图中乘个值也可以。


希望哪天Blender能官方在着色器中支持数组这种东西。。

顺便做了一个多路分配器DEMUX,但感觉没啥实际用途。选中的通道会输出 Output Color通道的颜色,未选中的会输出默认颜色。

posted @ 2021-08-31 16:04  mariocanfly  阅读(161)  评论(0编辑  收藏  举报