如何在 Metal Shading Language 中使用 modf 函数?

How do I use the modf function in Metal Shading Language?

我需要将 float 的小数部分与整数部分分开。在 C 中,我可以使用 modf 来实现这一点。当我尝试在 Metal Shading Language 中使用相同的函数时,它 returns 出现以下错误:

No matching function for call to 'modf'

Fix in metal_math

按“在 metal_math 中修复”只会导致 metal_math 文件出现更多问题。有什么方法可以让我使用 modf 或替代方法来获取 Metal Shading Language 中的小数部分。到目前为止,这是我在金属着色语言中的代码。

float f = <some float of undetermined precision>;
float decimal;
modf(f, &decimal);

您应该通过引用而不是地址传递您的值。 将您的代码替换为:

modf(f, decimal);