depth-testing

___ tag123opengl ___ OpenGL (Open Graphics Library) ist ein Grafikstandard und eine API, die plattformunabhängig und für Desktops, Workstations und mobile Geräte verfügbar ist. Es wurde entwickelt, um hardwarebeschleunigtes Rendering bereitzustellen und bietet daher eine erheblich verbesserte Leistung gegenüber dem herkömmlichen Software-Rendering. OpenGL wird für Anwendungen wie CAD-Software und Computerspiele verwendet. Der OpenGL-Standard sowie OpenGL ES werden von der Khronos-Gruppe gesteuert. ___ tag123graphics ___ Grafiken sind visuelle Präsentationen. Fragen, die dieses Tag verwenden, sollten auch mit dem entsprechenden verwendeten Sprach- und Grafiksubsystem versehen sein. Bei allgemeinen Grafikfragen sollten Sie Computer Graphics Stack Exchange (computergraphics.stackexchange.com) in Erwägung ziehen. ___ qstnhdr ___ Bedeutung und Verwendung des Faktors in glPolygonOffset ___ qstntxt ___

Ich habe Schwierigkeiten, die Bedeutung des ersten Parameters in %code% function zu verstehen.

%Vor%

In der offiziellen Dokumentation steht dieser Faktor

  

Gibt einen Skalierungsfaktor an, der zum Erstellen eines variablen Tiefenoffsets für jedes Polygon verwendet wird.

und das

  

Der Tiefenwert jedes Fragments wird versetzt, nachdem es aus den Tiefenwerten der entsprechenden Scheitelpunkte interpoliert wurde. Der Wert des Offsets ist Faktor × DZ + r × Einheiten, wobei DZ ein Maß für die Änderung der Tiefe relativ zum Bildschirmbereich des Polygons ist und r der kleinste Wert ist, der garantiert einen auflösbaren Offset für ein gegebenes ergibt Implementierung.

Ich verstehe was %code% und %code% sind. Was ich nicht verstehe ist, was %code% ist, dh was ist gemeint mit der "Messung der Änderung der Tiefenwerte auf den Bildschirmbereich des Polygons" und warum müsste ich Faktor auf etwas anderes als 0 setzen.

Wenn ich möchte, dass mein Drahtgitter versetzt ist, muss ich nur ein paar Einheiten zum Tiefenwert hinzufügen / substatieren, nicht wahr? Was ist die Bedeutung, Zweck und Verwendungsbeispiel des Faktors Parameter (und der DZ im Dokument erwähnt)?

    
___ answer13431932 ___

Ich muss hier einige Ignoranz zugeben, aber ich fand diesen Artikel , der es erklärt. Sie sagen:

  

Um ein schönes Rendering des hervorgehobenen Objekts ohne visuelle Artefakte zu erzielen, können Sie entweder ein positives Offset zum festen Objekt hinzufügen (von Ihnen wegschieben) oder ein negatives Offset zum Drahtgitter (ziehen Sie es zu sich). Die große Frage ist: "Wie viel Offset ist genug?" Leider hängt der erforderliche Versatz von verschiedenen Faktoren ab, einschließlich der Tiefensteigung jedes Polygons und der Breite der Linien im Drahtgitter.

Sie erklären dann die Tiefensteigung auf diese Weise:

  

Die Tiefensteigung ist die Änderung der z (Tiefe) -Werte dividiert durch die Änderung der x- oder y-Koordinaten, wenn Sie ein Polygon durchlaufen. Die Tiefenwerte sind in Fensterkoordinaten, fest im Bereich [0, 1]. Verwenden Sie diese Formel, um die maximale Tiefensteigung eines Polygons (m in der Offset-Gleichung) zu schätzen: m = max {| delV / delS |, | delV / delT |}. (wo del eine partielle Ableitung ist)

Daraus folgern sie:

  

Bei Polygonen, die parallel zu den nahen und fernen Clipping-Ebenen sind, ist die Tiefensteigung Null. [...] Für Polygone, die in einem großen Winkel zu den Clipping-Ebenen stehen, kann die Tiefensteigung signifikant größer als Null sein, und ein größerer Offset kann erforderlich sein. Kleine, von null verschiedene Werte für Faktor wie 0,75 oder 1,0 reichen wahrscheinlich aus, um unterschiedliche Tiefenwerte zu erzeugen und die unangenehmen visuellen Artefakte zu beseitigen.

    
___ tag123depthesting ___ Eine Technik, die in 3D-Grafiken verwendet wird, um sicherzustellen, dass nur die Objekte, die dem Betrachter am nächsten sind, in einer Szene gezeichnet werden. ___ tag123depthbuffer ___ Tiefenpufferung (Z-Pufferung), ist die Verwaltung von Bildtiefenkoordinaten in dreidimensionalen (3-D) Grafiken. ___ tag123c ___ C ist eine universelle Computerprogrammiersprache, die für Betriebssysteme, Bibliotheken, Spiele und andere Hochleistungsanwendungen verwendet wird. Dieses Tag sollte bei allgemeinen Fragen zur C-Sprache verwendet werden, wie in der Norm ISO 9899: 2011 definiert. Fügen Sie ggf. ein versionsspezifisches Tag wie c99 oder c90 für Fragen zu älteren Sprachstandards hinzu. C unterscheidet sich von C ++ und es sollte nicht mit dem C ++ - Tag kombiniert werden, wenn ein rationaler Grund fehlt. ___
1
Antwort

Bedeutung und Verwendung des Faktors in glPolygonOffset

Ich habe Schwierigkeiten, die Bedeutung des ersten Parameters in glPolygonOffset function zu verstehen. %Vor% In der offiziellen Dokumentation steht dieser Faktor    Gibt einen Skalierungsfaktor an, der zum Erstellen eines variablen...
17.11.2012, 13:47