Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
27. Mai 2011
Irgendwann ist eben auch Schluss mit Optimierbarkeit auf unterster Ebene - irgendwo MUSS ja auch was berechnet werden :). Daher eben auch unsere Vorschläge, an höhergelegenen Logiken noch was rauszuholen. Wenn es Z sein muss, und zwar per Pixel, wird man um was auch immer für eine Interpolation für jeden Pixel nicht herum kommen, und Interpolation sind Verhältnisrechnungen, und da steckt ja schon...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
27. Mai 2011
Noch ein Stichwort frei in die Runde geschmissen: Multithreading :)
Bringt bei einem P4 wohl nicht die Welt, nur bei aktuellen Quadcores mit HT wär das sicherlich nett.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
27. Mai 2011
Das heisst, dass dein Wert 7.864.320 op/s für die Ermittlung der Z-Koords nur ein Worst-Case ist gell? Das aber nur am Rande. Nach wie vor bin ich überzeugt, dass diese dual-lineare Interpolation schneller wäre als trilinear (was du jetzt machst).
Ich hatte vor einiger Zeit auch mal einen Artikel zu heaven7 gelesen. Dort wurde mit Hilfe eines Octrees entschieden, ob Punkte tatsächlich getraced...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
27. Mai 2011
Uhlala, nen vollwertiger Z-Puffer in Software ist allerdings happig du. Da kenne ich, als "üblich" Sortierung nach Dreiecksschwerpunkt-Z und Front-to-Back Rendering mit einfachem Stencil. Man kann natürlich Fälle bekommen (bzw. mutwillig erzeugen :) ), bei denen dann mal was komisch wird (das ein oder andere Loch ggf.), aber die Ersparnis in der Verarbeitungszeit ist doch gewaltig dann -...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
27. Mai 2011
Ich meinte die Z-Coords :) Gouraud-Shading war klar.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
27. Mai 2011
Du kannst statt der Farben doch auch einfach die Z-Koordinate da einsetzen :)
Wofür brauchst du die eigentlich?
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
27. Mai 2011
Um die Division bzw. alternativ non-integers wirst du vermutlich kaum herum kommen. Eventuell findest du hier (letzte Kategorie) noch ein paar hilfreiche Anregungen.
Eine Idee hätte ich noch: Weg mit den baryzentrischen Koords, und her mit einer Scanline. Dann könnte man "von oben nach unten" durch gehen, und hätte pro Y-Koordinate pro Dreieck zwei lineare Interpolationen, plus einer weiteren...