Blender的着色器里做一个MUX
Blender的着色器里做一个MUX
刚开始用Blender的着色器编辑器,觉得很奇怪,这玩意咋没有全局常量呢?
用着用着才知道,组就是全局函数,假如组只有输出没有输入,那它就是全局常量了。
![](https://img2020.cnblogs.com/blog/1640902/202108/1640902-20210831160042149-1621140455.jpg)
一个人物模型有很多贴图可以选,而且往往按部位分成了多个图片,我想能够一次操作就能替换掉一组贴图,而不是不停地把线连来连去。
这种东西叫多路选择器MUX,写代码时管它叫Switch.
直接上图!
![](https://img2020.cnblogs.com/blog/1640902/202108/1640902-20210831160101377-295803177.jpg)
“比较”是“运算”这个函数的一个功能,当值1和值2的差的绝对值小于Epsilon时,输出1,否则输出0.
“混合”:系数为0时输出色彩1,系数为1时输出色彩2,系数在0~1之间则按比例混合。
所以只要把左边的值改成0,1,2,即可输出对应输入通道的颜色。这玩意按shift-d复制以后,无论在哪修改左边的值,全部函数里的值都会改变。除非你点组旁边的数字复制一份单用户拷贝,这样它就变成独立的函数了。
![](https://img2020.cnblogs.com/blog/1640902/202108/1640902-20210831160116928-9033232.jpg)
贴图颜色输出了,但是有些贴图是Bump贴图,所需的Bump强度还不同。。
那再整个输出强度的呗(这不就是个数组吗?!!)。或者在贴图中乘个值也可以。
![](https://img2020.cnblogs.com/blog/1640902/202108/1640902-20210831160135902-791024142.jpg)
希望哪天Blender能官方在着色器中支持数组这种东西。。
顺便做了一个多路分配器DEMUX,但感觉没啥实际用途。选中的通道会输出 Output Color通道的颜色,未选中的会输出默认颜色。
![](https://img2020.cnblogs.com/blog/1640902/202108/1640902-20210831160200232-1814466788.jpg)
本文来自博客园,作者:mariocanfly,转载请注明原文链接:https://www.cnblogs.com/mariocanfly/p/15210812.html