gpt4 book ai didi

opengl - 对于GLSL片段着色器Intel HD4000上的中等大输入,sin(x)仅返回4个不同的值

转载 作者:行者123 更新时间:2023-12-04 03:58:08 26 4
gpt4 key购买 nike

我有一个用GLSL编写的简单OpenGL 3.3片段着色器。本质上,我正在评估sin(x)中度较大的x(介于10,000和2,000,000之间),如下所示:

#version 330
out vec4 fColor;
void main() {
fColor = vec4(sin(gl_FragCoord.x * gl_FragCoord.y));
}

它在我的NVidia显卡上可以正常工作,但是在我的Intel HD4000上,正弦仅在大约10,000的输入上方返回四个不同的值(+/- 1.0 和大约+/- 0.3 )。

系统:Windows 64位,(英特尔)驱动程序版本15.28.20.64.3347。

我的问题:这是一个错误吗?还是以这种方式实现正弦信号是供应商自由的一部分?

最佳答案

在快速三角函数实现中,这是一个相当常见的“错误”,使用近似值对(-π,π)范围内的值有效,而对于较大的值则较差,这是常见的。

由于GLSL规范对于这些函数不需要任何特定级别的精度或精确度,因此可以说只要sin(x)中的误差远小于| x |。可以,但是此错误级别似乎过高。

关于opengl - 对于GLSL片段着色器Intel HD4000上的中等大输入,sin(x)仅返回4个不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21464664/

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