UE4 - 为什么在着色器中似乎 cosine() 似乎 return 1 对于自然数
UE4 - Why in shaders it seems that cosine() seems to return 1 for natural numbers
我需要帮助了解 UE4 着色器中的余弦函数行为。
我有这么简单的着色器:
Simple line shader
它在每个像元大小步长处呈现一条线,而我希望它大致每 2pi * 像元大小呈现一条线。
如您所见(希望如此),我只是将 (world position x)/cellsize 值提供给余弦函数,并将结果作为输出颜色。
我得到的结果是:
enter image description here
球仅供参考。
蓝色的有世界坐标 5300,0,0
红色的有 5500,0,0
着色器应用于平面。
可以清楚地看到,着色器生成的线条完美地位于球下方,因此似乎余弦函数在每个单元格大小步长(在我的示例中为 100)生成 1(在我的示例中是有效的白色)。
我特意选择了 x=5500 因为 cos(5500/100) 等于 ~0 所以红球下实际上应该有黑色。
问题是,谁能解释一下着色器中的 UE4 余弦函数为什么似乎为自然数生成 1?
这让我难以置信我可以依赖任何数学 class 在尝试将它们应用到 UE4 时所学过的数学;]
非常感谢任何帮助。
谢谢
如果您查看余弦和正弦 material 图形节点,它们有一个默认为 1.0 的 'period' 参数。这将使余弦的周期为 1.0 而不是您期望的 2 PI。您可以修改它以获得您期望的结果。
我需要帮助了解 UE4 着色器中的余弦函数行为。
我有这么简单的着色器:
Simple line shader
它在每个像元大小步长处呈现一条线,而我希望它大致每 2pi * 像元大小呈现一条线。
如您所见(希望如此),我只是将 (world position x)/cellsize 值提供给余弦函数,并将结果作为输出颜色。
我得到的结果是:
enter image description here
球仅供参考。 蓝色的有世界坐标 5300,0,0 红色的有 5500,0,0
着色器应用于平面。
可以清楚地看到,着色器生成的线条完美地位于球下方,因此似乎余弦函数在每个单元格大小步长(在我的示例中为 100)生成 1(在我的示例中是有效的白色)。
我特意选择了 x=5500 因为 cos(5500/100) 等于 ~0 所以红球下实际上应该有黑色。
问题是,谁能解释一下着色器中的 UE4 余弦函数为什么似乎为自然数生成 1?
这让我难以置信我可以依赖任何数学 class 在尝试将它们应用到 UE4 时所学过的数学;]
非常感谢任何帮助。
谢谢
如果您查看余弦和正弦 material 图形节点,它们有一个默认为 1.0 的 'period' 参数。这将使余弦的周期为 1.0 而不是您期望的 2 PI。您可以修改它以获得您期望的结果。