glsl & perspektive korrektur variierender werte

Wird jeder variierende Scheitelpunktwert (oder in neueren Versionen von glsl-Werten, die aus einem Scheitelpunkt-Shader "herausgehen") vom Rasterizer mithilfe der perspektivischen Korrektur interpoliert? Ist diese Hardware abhängig?

Wie werden die Werte an den Schnittpunkten berechnet, wenn ein Schnitt auftritt?

Ich versuche, die Perspektivkorrektur rückgängig zu machen und merkwürdiges Verhalten für abgeschnittene Polygone zu bemerken, und ich möchte besser verstehen, was sich hinter den Kulissen abspielt.

Antworten auf die Frage(1)

Lösung für das Problem

die einzige Möglichkeit, die perspektivisch korrekte Interpolation zu beeinflussen, ist ein Hinweis. Allgemein,glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST) aktiviert die perspektivisch korrekte Interpolation bei allen VariationenglHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST) wird es in der Regel ausschalten. Beachten Sie, dass dies Treiberhinweise und nichts weiter sind. Fahrer nichthaben auf diese Weise reagieren.

In GLSL 1.30+ (OpenGL 3.0+) haben Sie die Möglichkeit, jeden Ausgang / Eingang zu einer bestimmten Interpolation zu zwingen. DasInterpolationsqualifizierer smooth bedeutet perspektivisch korrekt; Dies ist die Standardeinstellung, wenn Sie kein Qualifikationsmerkmal angeben.noperspective bedeutet ... das Offensichtliche.

Das Ausschneiden erfolgt immer so, dass es genau so funktioniert, als wäre es nicht ausgeschnitten (oder in der Nähe der Hardware-Genauigkeit). Wenn also ein Wert perspektivisch korrekt interpoliert wird, muss der für den abgeschnittenen Scheitelpunkt generierte Wert auch perspektivisch korrekt interpoliert werden.

 user128293104. Apr. 2012, 23:29
oh, das hört sich so an, als würde es die Sache viel einfacher machen! werde es gleich ausprobieren! Vielen Dank! eine weitere Sache: gl_FragCoord.z ​​wird interpoliert, ohne dass eine Perspektivenkorrektur angewendet wird, richtig?

Ihre Antwort auf die Frage