Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#11

AW: Multiplikationen/divisionen optimieren

  Alt 10. Mär 2011, 14:52
Da haste wohl Recht Den Z-Buffer kann man sich (mehr oder weniger) allerdings sparen, wenn man die Faces im Screenspace back-to-front sortiert und so auch zeichnet. Damit gingen dann auch Transparenzen, wobei man noch die "hidden faces" wegoptimieren kann um zu viel mehrfach gezeichnete Pixel zu verhindern - deren Erkennung kostet aber natürlich auch ne Kleinigkeit. Front-To-Back ist schneller, braucht nur einen 1-Bit Stencil-Buffer, aber Transparenzen werden zu nem ziemlichen Spezialfall.
Die einzigen Fälle, bei denen das ohne pixelweisen Z-Buffer schief geht, sind sich schneidende Faces, oder sich im Screenspace überlappende Faces, die etwas ungünstig angeordnet sind.
Dann könnte man auch noch überlegen, ob der Z-Buffer, wenn er schon sein muss, nicht evtl. in Integer-Auflösung genügt. Dann wird aus dem "/" ein schnelleres "div", und man spart das Umsatteln in die FPU Register.

Insgesamt ist Rechnen mit Floats prinzipiell langsamer, es sei denn du fummelst dir mitm Inline-Assembler was mit SSE2 zurecht. Darauf müssen aber dann auch die gesamte Verarbeitungspipeline und Datenstrukturen angepasst sein, sonst machen die Mode-Switches der FPU wieder viel gewonnenes kaputt.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat