U
ich denke da denkst du falsch, ich haenge eher AMD-Codeanalyst und Intel-VTune nach. da ich sehr oft rasterizer schreibe und optimiere, weiss ich dass deine ideen, dass speicherzugriffe linear erfolgen und triangle-setup zu vernachlaessigen ist das gegenteil der realen welt sind.
Das meine ich, ich kann es einfach nicht einschätzen, was wirkllich performance-relevant ist. Wenn Du schon oft rasterizer geschrieben und optimiert hast, kannst Du mir nicht mit nem Codegerüst auf die Srünge helfen bzw. mir ein paar nützliche Links nennen, damit ich durchstarten kann und nicht bei Null anfangen muss? Wäre echt super!
normalerweise hat man im schnitt ein vertex pro triangle (im schnitt), falls du pro triangle 3vertices hast und transformierst, koenntest du es jetzt also von 0.2ms auf 0.06ms bringen. meist sind ja die highlevel optimierungen effizienter als lowlevel(intel)libs
Stimmt, hast Recht, ich benutze auch bereits einen Index-Array und mache keine redundanten Transformationen. Hab nicht drüber nachgedacht beim Schreiben, hatte nur die Zeitmessung im Kopf und eine Zahl dazu gesucht...
Falls du irgendwo temporäre dynamische Speicheranforderungen brauchst verwende einen "Zeiger verschieben" Allocator. ...
Eine eigene, einfache und schnelle Speicherverwaltung habe ich bereits drin. Auch eigene Listenklassen, die genau auf meine Anforderungen zugeschnitten sind und blockweise alloziieren hab ich schon.
dann leg einen float buffer an falls du ne relativ neue graka hast. mit ein wenig programmieraufwand kannst du auch in beide buffer zur selben zeit rendern.
Interessant, das mit dem beide buffer zur selben zeit rendern. Wie geht denn das? Multiple Render Targets?
Wie gesagt, suche ich aber eigentlich nach einer Lösung, die hardwareunabhängig arbeitet...