Einzelnen Beitrag anzeigen

Benutzerbild von Memnarch
Memnarch

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

AW: Multiplikationen/divisionen optimieren

  Alt 10. Mär 2011, 11:10
Kurze zusammenfassung(nicht das ich was vergesse und euch dan infos fehlen^^):

Berechnen der gesamtfläche das Dreiecks(wird nur einmal ausgeführt)

Berechnen der Fläche Teildreiecke PAB/PBC/PCA
Addition und vergleich mit der gesamtfläche

eine fläche wird so berechnet:

FlächePBC = |PXBY + BXCY + CXPY - PXCY - CXBY - BXPY|
Alle teile der formel wo KEIN p drin vorkommt, werden ebenfalls einmal vor begin der routine berechnet, da sie sich nicht ändern.
Alle teile mit PY werden nur neukalkuliert, wenn sich die YAchse ändert, alle PX teile werden jedesmal neu kalkuliert. Obige formel muss 3mal angewand werden, für jedes teildreieck einmal.

Ja ich berechne mehrere punkte pro dreieck. So ziemlich jeden pixel der drin ist(im schlimsten fall der ganze bildschirm von 512*512px)>.<
Viel schöner wäre es, wenn ich in chunks rechnen könnte. Also(vorausgesetzt es ist innerhalb des dreiecks), bei einem rechteck von 8*8 punkten, nur z.b eckpunkte so aufwendig kalkulieren und den rest simpler. Aber dass weiß ich nicht.

@Lemmy, kurz zum klarstellen: das was ich mache, mache ich aus selbstlernzwecken. Experimentieren erwünscht. Es ist zumindest EIn performancekiller. Die formel zur berechnung der flächen z.B habe ich wie oben beschrieben aufgesplittet damit sie nicht bei jedem zyklus voll ins gewicht fällt.

Zu den vekoroperationen muss ich mal googlen.

EDIT: ich hab vorher mit Integern gearbeitet, hatte zu Single gewechselt um zu gucken ob die CPU performance mässig dort anders arbeitet.

EDIT2: ich hatte auchmal die kalkulation des ZWertes rausgenommen(also obige problemformel), und der Performancegewinn war beträchtlich.

EDIT3: und nochwas zur größen ordnung: Der Renderer ist eine echtzeitapplikation. Ohne DepthTest ratert der auch bei gut 1000Polygonen noch gut mit 60FPS

MFG
Memnarch

Geändert von Memnarch (10. Mär 2011 um 11:17 Uhr)
  Mit Zitat antworten Zitat