Einzelnen Beitrag anzeigen

Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#8

AW: Z-Buffering (Mal wieder ^^)

  Alt 25. Apr 2016, 17:21
Fürs Backfaceculling:
Normale des Polygons kalkulieren, falls Negativ fällts weg

Z-Buffering:

Ich versteh nicht wieso du immer vor und zurück rechnest.
Du brauchst mehrere matrizen. Minimal:
ObjectPositionMatrix
WorldPositionMatrix
ProjectionMatrix

Die ObjectMatrix*Worldmatrix*Projectionsmatrix; Letztere wird dabei so gefüttert, dass sie eine Isometrische Ansicht erzeugt(wobei ich die Werte dafür nochmal nachschlagen müsste). Dann kannst du später die Z-Werte der Vertices über das Polygon im Screenspace interpolieren und hast pro Pixel die normalisierte Tiefe(0-1). Dann kannst du die Z-Werte in einen ZBuffer schreiben und für jeden Pixel gucken ob der neue ZWert näher ist, bevor du zeichnest.

Ich empfehle DRINGENST(!):
Bau dir eine Unit für Matrizen und deren Mathematik. Das willst du nicht im ganzen Source verstreut haben. Hab mir für meine Softwarerenderer damals diese Unit geschrieben:

https://github.com/Memnarch/Software...ter/Math3D.pas

Wobei ich die heute anders schreiben würde, mehr mit Records und operatorüberladungen.
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden

Geändert von Memnarch (25. Apr 2016 um 17:24 Uhr)
  Mit Zitat antworten Zitat