PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : was ist Geometrie Instancing


Chatama Chatanga
2006-06-23, 10:02:42
ist das eine weitere Optimierung die auf Kosten von leichten Qualitätsverlusten, die Performance etwas anhebt?

Spasstiger
2006-06-23, 10:09:43
Nein, Geometry Instancing ist ein Feature, das die Bildqualität nicht verschlechtert und bisher nur von wenigen Spielen genutzt wird. Mir fällt auf die Schnelle nur Farcry ein, hier mit Bildern und Erklärungstext: http://www.computerbase.de/news/hardware/grafikkarten/2004/juli/far_cry_version_12_sm_20b/.

Durch diese Funktion, die ebenfalls alle DirectX-9-fähigen ATi-Chips beherrschen, ist es den Entwicklern ermöglicht worden, die sonst als zweidimensionale Sprites dargestellte Vegetation in der Ferne durch wirkliche Objekte mit Geometrie-Daten auszutauschen. Dadurch sieht weit entfernte Vegetation nun weitaus besser aus, da diese nun auch animiert werden kann und nicht wie ein Sprite nur fix verankert ist. Auch Geometry Instancing ist eigentlich ein fester Teil des SM 3.0, wird aber trotzdem - wie bereits erwähnt - auch von ATi-Hardware beherrscht, die eigentlich nur maximal DirectX 9.0b unterstützt.

Die Gurus hier werden sicherlich auch noch ihren Teil dazusagen.

Mr. Lolman
2006-06-23, 10:46:51
AFAIK muss das jew. Objekt nur 1x an die GraKa übertragen werden und die rendert dann gleich auch die weiteren Instanzen. Funzt aber nur, wenn immerwieder das gleiche Objekt dargestellt werden soll, zB. Bäume in einem Wald.

Wären Spiele so realistisch, dass jedes Objekt nur 1x vorkommt, gäbs für GI kenie Verwendung mehr.

Monger
2006-06-23, 10:49:04
Bin kein Guru, ich sag aber trotzdem was dazu...

Geometry Instancing war quasi ein Hack, weil nVidia plötzlich ankam und sagte: "mit unseren Shader 3.0 Karten können wir per Branching riesige Mengen gleichartiger Objekte erzeugen!"
Dann kam ATI und sagte: "das können wir genauso schnell, und zwar auf SM 2.0b Basis!"

Da dieses Feature aber eben erst ab SM 3.0 eigentlich zur Verfügung stand, durfte ATI dieses Feature nicht standardmäßig in den eigenen Treibern aktivieren. Du musstest es explizit aktivieren, um davon zu profitieren. Spiele die das genutzt haben (wie eben Far Cry), wurden dadurch aber gleich eine gute Spur schneller. Da sich bei höheren fps der LOD nach hinten verschiebt, wurde mit Geometry Instancing aus dem Pixel Brei plötzlich ein hochdetaillierter Wald...

Die aktuellen ATI Karten haben das Dank SM 3.0 gar nicht mehr nötig. Der Haken für GI ist zwar noch da, lässt sich aber gar nicht deaktivieren. Deshalb hört man von diesem Feature auch nichts mehr, weil viele Spiele es nutzen ohne dass es einem noch auffällt.


Der Begriff ist also ein Überbleibsel aus dem letzten ATI vs nVidia Scharmützel, und in zwei Jahren wird sich vermutlich niemand mehr daran erinnern.

Gast
2006-07-03, 07:17:06
die zwei Einträge in der Reg von 1 auf 0 dann kann man es setzen wie man möchte.

Gast
2006-07-03, 12:16:40
Mr. Lolman[/POST]']

Wären Spiele so realistisch, dass jedes Objekt nur 1x vorkommt, gäbs für GI kenie Verwendung mehr.

Das wäre allerdings höchst unrealistisch. Wenn ich mir einen Kasten Bier kaufe, da sind dann immer 20 oder 24 gleiche Objekte (=Flaschen) drin.

Mr. Lolman
2006-07-03, 12:20:11
Gut für Bierkästen wär GI schon praktisch... :rolleyes:

tokugawa
2006-07-03, 17:26:37
Monger[/POST]']Bin kein Guru, ich sag aber trotzdem was dazu...

Geometry Instancing war quasi ein Hack, weil nVidia plötzlich ankam und sagte: "mit unseren Shader 3.0 Karten können wir per Branching riesige Mengen gleichartiger Objekte erzeugen!"
Dann kam ATI und sagte: "das können wir genauso schnell, und zwar auf SM 2.0b Basis!"

Da dieses Feature aber eben erst ab SM 3.0 eigentlich zur Verfügung stand, durfte ATI dieses Feature nicht standardmäßig in den eigenen Treibern aktivieren. Du musstest es explizit aktivieren, um davon zu profitieren. Spiele die das genutzt haben (wie eben Far Cry), wurden dadurch aber gleich eine gute Spur schneller. Da sich bei höheren fps der LOD nach hinten verschiebt, wurde mit Geometry Instancing aus dem Pixel Brei plötzlich ein hochdetaillierter Wald...

Die aktuellen ATI Karten haben das Dank SM 3.0 gar nicht mehr nötig. Der Haken für GI ist zwar noch da, lässt sich aber gar nicht deaktivieren. Deshalb hört man von diesem Feature auch nichts mehr, weil viele Spiele es nutzen ohne dass es einem noch auffällt.


Der Begriff ist also ein Überbleibsel aus dem letzten ATI vs nVidia Scharmützel, und in zwei Jahren wird sich vermutlich niemand mehr daran erinnern.

Irgendwie kommt mir das vor wie Schmonzes, da Geometry Instancing erst mal gar nix mit Shader Model 3.0 zu tun hat, aber egal.


Geometry Instancing reduziert Draw-Calls, indem "ähnliche" Objekte (sie müssen nicht völlig gleich sein - etwa Vertexverschiebungen für Animationsphasen gehen schon, damit lassen sich auch verschiedenartige Bäume realisieren) nur als 1 Objekt zur Grafikkarte wandern. Über diverse Datenstreams kann man dann einen bestimmten Verzerrungsgrad oder ähnliches angeben, um die identischen Objekte dann doch etwas zu verformen und "anders" zu machen.

Gerade in DirectX macht das insofern Sinn als dort Draw-Calls schnell zu einem Bottleneck werden können (bei OpenGL ist dies nicht so drastisch, deswegen wurden erst kürzlich der Vollständigkeit halber die Vertexstreams/Geometry-Instancing ARB-Extensions ratifiziert).

ShadowXX
2006-07-03, 17:37:04
tokugawa[/POST]']Irgendwie kommt mir das vor wie Schmonzes, da Geometry Instancing erst mal gar nix mit Shader Model 3.0 zu tun hat, aber egal.

MS hat SM3.0-Fähigkeit der GPU tatsächlich als Bedingung für die Verwendung von GI vorgeschrieben (und es wohl auch so in DX verankert, das man es auf SM2.0-HW dann nicht benutzen kann, selbst wenn die HW dazu in der Lage ist).

Das das nix miteinander zu tun hat, hat ATI mit Ihrem Hack ja bewiesen....aber ATI müsste eben diesen Treiber-Hack bei <SM3.0 Karten mit einbauen, damit es die Devs dann trotzdem benutzen können (ist ein FourCC-Hack: es ist als "neues" Pixel-Format für die Devs zu erkennen, dass die Karte GI kann).

Gast
2006-07-03, 17:38:37
aber warum verankern die das fest als gesetzt?

Monger
2006-07-03, 17:44:56
tokugawa[/POST]']Irgendwie kommt mir das vor wie Schmonzes, da Geometry Instancing erst mal gar nix mit Shader Model 3.0 zu tun hat, aber egal.

Ich hab noch nie einen Shader geschrieben, deshalb kann ich es dir nicht sagen... aber der Grundgedanke war wohl der, erstmal alle nötigen Berechnungen auf einem Pfad zu machen, und dann die Variationen (Position, Skalierung, Drehung...) für jedes einzelne Objekt auszurechnen.

nVidia hat behauptet: genau dafür braucht man Branching, und deshalb unsere SM 3.0 fähigen Grafikkarten.
ATI hat daraufhin gesagt: das ist Blödfug, und wir zeigen euch auch warum. Wir rechnen einfach alle Wege hintereinander (bzw. parallel) durch und lassen die Ergebnisse verfallen die wir nicht brauchen, und sind immer noch schneller als eure ach so intelligenten SM 3.0 Karten.
Womit sie auch Recht hatten. Bei den kleinen Shaderlängen konnte man durch Bedingungen kaum an Instruktionslänge einsparen.

Gast[/POST]']aber warum verankern die das fest als gesetzt?
Weil die Unterstützung dieses Features ab DirectX 9.0c ohnehin Pflicht ist.

ShadowXX
2006-07-03, 17:46:26
Gast[/POST]']aber warum verankern die das fest als gesetzt?
Das musst du MS fragen.

Eigentlich ist es so, dass sich MS zusammen mit den IHVs an einen Tisch setzt und dann besprochen wird, was und wie etwas neues in das nächste DX einfliessen soll.
Dabei kann jeder seine Wünsche, Vorschläge und auch technische Grenzen einbringen.

Irgendwie und irgendwann einigt man sich dann (mehr oder minder) und die IHVs fangen an Ihre HW zu bauen (das ganze ist jetzt extrem verkürzt und vereinfacht dargestellt).

Bei einem dieser Prozesse hatte man sich wohl darauf geeinigt, das GI erst mit den CHips kommt, die auch SM3.0 können (warum auch immer, vielleicht hat auch MS das so mehr oder weniger festgelegt).
Und deshalb wurde das dann auch so in DX verankert.

Warum ATI damals zum Festlegungzeitpunkt nicht schon aufschrie und sagte: "Das könne aber wohl auch schon unserer SM2.0-Architekturen", kann ich dir aber auch nicht sagen. Vielleicht ist es bei ATI auch wieder eine halbe Treiberlösung, an deren Realisierbarkeit Sie damals noch nicht dachten.