我正在搅拌器/循环脚本节点中的着色器。 我正在测试直接从Blender源代码获取的“噪声纹理”着色器,并将其放置在脚本节点中。
我不了解相对于对象比例,如何在库存噪声纹理节点和脚本节点中管理全局P。
如果在应用“杂色纹理”节点时缩放对象,则纹理不会改变(根据对象缩放)。
但是,如果我在应用脚本着色器时缩放对象,则纹理会发生变化……看起来纹理无法缩放,只是以不同的方式包装对象,因此如果我将其相对于对象“缩小”放大它,如果我缩小对象则更大。
这就像搅拌器将对象比例属性赋予“噪波纹理”,而没有将其赋予“脚本”节点。
任何信息或想法如何解决?
我可以手动更改着色器的Scale属性,但是我正在寻找更可靠的解决方案(如果有),因为我必须在不同的模型上进行很多测试。
谢谢。
答案 0 :(得分:0)
我从https://blendersushi.blogspot.com/2013/08/osl-shader-writing-journey-to-unknown.html
找到了正确的方法使用对象变换纹理
为了避免“纹理游泳”,我们需要 将纹理空间分配给我们的OSL纹理。我们可以做到 直接在OSL内部或使用Blender Cycles纹理坐标节点 以及进入Vector位置的Mapping节点。如果在下面添加单个代码,它将正确分配纹理空间 到“对象”空间。
point p = transform("object", P);