【问题标题】:Blender OSL and P (position) relative to object scaleBlender OSL 和 P(位置)相对于对象比例
【发布时间】:2019-02-12 13:21:57
【问题描述】:

我正在处理搅拌机/循环脚本节点中的着色器。 我正在测试“噪声纹理”着色器,它直接取自搅拌机源代码并简单地放入一个脚本节点。

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

如果我在应用 Stock Noise Texture 节点时缩放对象,则纹理不会改变(根据对象缩放)。

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

这就像搅拌器将对象缩放属性赋予噪声纹理,但不将其赋予脚本节点。

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

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

谢谢。

【问题讨论】:

    标签: shader blender


    【解决方案1】:

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

    使用对象变换纹理
    为了避免“纹理游泳”,我们需要 将纹理空间分配给我们的 OSL 纹理。我们可以这样做 直接在 OSL 内或使用 Blender Cycles Texture Coordinate 节点 以及进入 Vector 位置的 Mapping 节点。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      • 2019-02-09
      • 2013-02-26
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多