Hauptsache ist ja das man Spaß dabei hat. Wenn es einem nichts ausmacht - warum nicht. Man kann ja später immer noch eine eigene Variante entwickeln.
Schade das Delphi keine Inline Funktionen kann. Dafür wäre das sicherlich nützlich. FreePascal soll das angeblich unterstützen. Vielleicht hat jemand schon ausprobiert wie groß der Geschwindigkeitsunterschied ist?
Registriert: Mo Mai 06, 2002 20:27 Beiträge: 479 Wohnort: Bremen
Auch ein Feature das Delphi leider nicht unterstützt und das für diesen Bereich sehr interessant wäre, wären überladene Operatoren. Dann könnte man Vektoren addieren, multiplizieren etc wie man das sonst von Zahlen kennt was den Code bedeutend lesbarer machen würde....
Man kann eine Klasse von TCustomVariant ableiten und dort die entsprechenden Methoden überschreiben. Dann kann man auch Vektoren direkt addieren. Das ist natürlich etwas langsamer als die normalen Funktionen.
Statt dem Funktionsaufruf wird die Funktion direkt an die Stelle, von der sie aufgerufen wird, kopiert. Gerade bei kurzen Funktionen macht der Aufruf einiges an der gesammten Laufzeit aus. Daher bringt das eine Geschwindigkeitssteigerung. Man könnte das auch von Hand machen, indem man den Quelltext einfach kopiert. Das bringt bei Schleifen mit vielen Berechnungen bestimmt was.
Andererseits ist man noch nicht mal mehr durch die Anzahl der Dreiecke, die die Karte zeichnen kann, sondern eher durch die Füllrate begrenzt. Daher bringt es vermutlich in den meisten Fällen sowieso nichts auf schnelle Vertex Berechnung hin zu optimieren, sondern man kann eine ganze Menge Zeit auf der CPU verbrauchen um die verschwendete Füllrate zu Minimieren und wird dabei noch schneller. Denn daran hängt es in den meisten Fällen und mit Shadern sowieso.
Zuletzt geändert von LarsMiddendorf am Mi Feb 25, 2004 21:11, insgesamt 1-mal geändert.
Ja weil die Funktion dann dort hinein kopiert wird. Es würde mich mal interessieren ob das .Net Framework in der Lage ist Funktionen automatisch zu inlinen. Denkbar wäre es ja.
Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.