math - 快速、不准确的 sin 函数,无需查找

标签 math trigonometry shader

对于海洋着色器,我需要一个快速函数来计算 sin(x) 的非常近似值。唯一的要求是它是周期性的,并且大致类似于正弦波。

泰勒级数的 sin 太慢了,因为我需要计算 x 的 9 次方才能得到一个完整的周期。

有什么建议?

编辑:对不起,我没有提到,我不能使用查找表,因为这是在顶点着色器上。查找表将涉及纹理样本,它在顶点着色器上比内置的 sin 函数慢。
它不必以任何方式准确,它只需要看起来不错。

最佳答案

使用 Chebyshev根据需要对尽可能多的术语进行近似。如果您的输入角度被限制为表现良好(-π .. +π 或 0 .. 2π),则这特别容易,因此您不必先将参数减少到合理的值。您可以使用 2 或 3 个术语而不是 9 个。

关于math - 快速、不准确的 sin 函数,无需查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7163516/

相关文章:

c++ - OpenGL大项目,VAO-s等

opengl - CPU 到 GPU 法线映射

java - 获取加起来等于给定数字的所有可能的总和

java - 使一组 3D 点围绕一个点旋转

c# - 找到圆边上的坐标

c++ - 扇出 "arc"的卡片网格

three.js - 如何获取由fragmentShader生成的图像(或纹理)

解决代数问题的算法?

python - 如何在 PYTHON 中创建 bool 指标矩阵

c# - 内置光线追踪?