Blender OSL和P(位置)相对于对象比例

问题描述 投票:0回答:1

我正在使用blender / cycles脚本节点中的着色器。我正在测试“噪声纹理”着色器,直接从blender源代码中获取并简单地放入Script节点。

我无法理解全局P如何在库存噪声纹理节点和脚本节点中相对于对象比例进行管理。

如果在应用库存“噪波纹理”节点时缩放对象,则纹理不会更改(根据对象进行缩放)。

但是如果我在应用脚本着色器时缩放对象,纹理会发生变化......看起来纹理不会缩放,只是以不同方式包裹对象,所以如果我将其缩放,它看起来相对于对象“更小” ,如果我缩小对象,则更大。

它就像blender将对象比例属性赋予Noise Texture,但不会将其赋予Script节点。

任何信息或想法如何解决?

我可以手动更改着色器的Scale属性,但我正在寻找更强大的解决方案,如果有的话,因为我必须在不同的模型上做很多测试。

谢谢。

shader blender
1个回答
0
投票

我从https://blendersushi.blogspot.com/2013/08/osl-shader-writing-journey-to-unknown.html找到了正确的方法

用对象转换纹理 为了避免“纹理游泳”,我们需要为我们的OSL纹理指定纹理空间。我们可以直接在OSL中进行,也可以使用Blender Cycles Texture Coordinate节点和Mapping节点进入Vector位置。

如果您在下面添加单个代码,它将正确地将纹理空间分配给“对象”空间。

point p = transform("object", P);

© www.soinside.com 2019 - 2024. All rights reserved.