Ich habe einen einfachen OpenGL 3.3 Fragment Shader in GLSL geschrieben. Im Grunde bin ich der Bewertung sin(x)
für mäßig große x (zwischen 10.000 und 2.000.000), etwa so:sin (x) gibt nur 4 verschiedene Werte für moderat große Eingabe auf GLSL Fragment Shader, Intel HD4000
#version 330
out vec4 fColor;
void main() {
fColor = vec4(sin(gl_FragCoord.x * gl_FragCoord.y));
}
Es funktioniert gut auf meine NVidia-Grafikkarte, aber auf meinem Intel HD4000 die Sinus gibt nur vier verschiedene Werte (+/- 1.0 und um +/- 0,3) über einem Eingang von ungefähr 10.000.
System: Windows 64 Bit, (Intel) Treiberversion 15.28.20.64.3347.
Meine Fragen: Ist das ein Fehler? oder ist es Teil der Freiheit des Verkäufers, den Sinus so zu implementieren?
Dies war nur ein minimiertes Beispiel von dem, was ich verwendet habe und es funktioniert auf meinen NVidia und ATI Grafikkarten. Trotzdem habe ich die Versionsrichtlinie der Vollständigkeit halber überarbeitet. –