gpt4 book ai didi

c++ - 创建一个 Fast Sin() 函数来提高 fps ?快速 sin() 函数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:43 37 4
gpt4 key购买 nike

我正在实时渲染 500x500 点。我必须使用 atan() 和 sin() 函数计算点的位置。通过使用 atan() 和 sin(),我得到了 24 fps(每秒帧数)。

float thetaC = atan(value);
float h = (value) / (sin(thetaC)));

如果我不使用 sin(),我将获得 52 fps

如果我不使用 atan(),我将30 fps

所以,最大的问题是 sin()。我怎样才能使用 Fast Sin 版本。我可以为此创建一个查找表吗?我没有任何特定值来创建 LUT。在这种情况下我能做什么?

PS:我也尝试过 ASM 的 fast sin 函数,但没有得到任何区别。

谢谢。

最佳答案

等一下....

你有一个三角形,你正在计算斜边。首先,您使用 atan(value) 来获取角度,然后再次使用 valuesin 来计算 h。所以我们有三角形的一侧是 1 的场景:

   /|
h / | value
/ |
/C__|
1

您真正需要做的就是计算 h = sqrt(value*value + 1); ... 但是,sqrt 并不是最快的函数要么。

也许我没捕获要点,或者您遗漏了什么。我一直对 sincos 使用查找表,发现它们速度很快。如果您提前不知道这些值,那么您需要近似,但这意味着乘法、截断为整数(可能还有符号转换)以获得数组索引。如果您可以将单位转换为整数(有效地将 float 转换为定点数),则查找速度会更快。

关于c++ - 创建一个 Fast Sin() 函数来提高 fps ?快速 sin() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13042110/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com