|
Community Links |
Interessengemeinschaften |
Benutzerliste |
Foren durchsuchen |
Stichwortsuche |
Erweiterte Suche |
Uns unterstützen |
Shoppen bei Amazon |
Spende per Patreon |
Spende per PayPal |
Spende per Steady |
alle Möglichkeiten |
Gehe zu... |
![]() |
|
Themen-Optionen
![]() |
Ansicht
![]() |
![]() |
#1 (im Thread / einzeln) |
Admiral Member
Registriert: 2003-09-23
Beiträge: 3.769
|
Massive Shadows - Ultra Shadow vs. HyperZ III+
Hallo,
nachdem nun DeusEx2 rausgekommen ist, haben liegt nun ein "Schattenspiel" auf dem Ladentisch (auch wenn der Laden nicht direkt vor der eigenen Haustür ist). Dabei sorgt das Aktivieren der Schatten offensichtlich für einen ordentlichen Performance-Einbruch. Nun hatte ich kraft meines Unwissens mehrfach die Vermutung geäußert, dass die NV35-basierten Chips dank ihrer Ultra-Shadow-Technik mit solchen Schattenspielen besser zurechtkommen, als die R3XX-Serie. Nun tauchte aber mehrmals die Behauptung auf, "Ultra-Shadow" könnte durch "HyperZ III+" kompensiert werden, es wären sogar einander ähnliche Funktionen. Nun habe ich dann doch ein paar Fragen: 1.) Was ist "Ultra-Shadow" bzw. HyperZ III+ (bloß in knappen Worten die das große Ganze treffend umschreiben, ich bin nicht so der große Technik-im-Detail-Versteher) 2.) Was ist davon Marketing und was bewirkt es wirklich? 3.) Ist davon auszugehen, dass sowas wie DeusEx2 bei beiden gleich gut/schlecht läuft? Wenn nein bzw. ja, warum, wieso, weshalb? Vielen Dank im Voraus! Grüße
Rock and Roll aint noise pollution...
Geändert von Gaestle (2003-12-18 um 10:32:40 Uhr) |
![]() |
![]() ![]() |
![]() |
#3 (im Thread / einzeln) |
3DCenter Crew & 3D-Guru
Registriert: 2001-07-27
Beiträge: 43.720
|
Re: Massive Shadows - Ultra Shadow vs. HyperZ III+
HyperZ enthält HierZ, um der Grafikkarte einige Z-Tests von vornherein ersparen zu können. Das ist eine Art mehrstufige Early-Z-Occlusion. Ultra Shadow kann in einem Takt Vorder- und Rückseite einer Fläche testen, und spart beim Stencil Shading Füllrate.
. |
![]() |
![]() ![]() |
![]() |
#4 (im Thread / einzeln) |
3DCenter Crew & 3D-Guru
|
Re: Re: Massive Shadows - Ultra Shadow vs. HyperZ III+
Original geschrieben von aths Ultra Shadow soll aber wirklich Füllrate sparen indem es Pixel die ausserhalb eines definibaren Z-Bereichs liegen erst gar nicht bearbeitet und gleich aussortiert. Dieser Bereich kann zum Beispiel über die grösse des Lichtkegels einer Lampe bestimmt werden. Oder bei einem Raum (ohne fenster) bei dem alle Türen geschlossen sind könnten man über die Wände den Z-Bereich errechnen. Das Schattenspiele auf den Radeons immer wieder probleme machen liegt an der nicht ganz so effektiven implementation der Stencilbuffer Funktionen. |
![]() |
![]() ![]() |
![]() |
#5 (im Thread / einzeln) |
3DCenter Crew & 3D-Guru
Registriert: 2001-07-27
Beiträge: 43.720
|
Re: Re: Re: Massive Shadows - Ultra Shadow vs. HyperZ III+
Original geschrieben von Demirug . |
![]() |
![]() ![]() |
![]() |
#6 (im Thread / einzeln) |
3DCenter Crew & 3D-Guru
|
Re: Re: Re: Re: Massive Shadows - Ultra Shadow vs. HyperZ III+
Original geschrieben von aths |
![]() |
![]() ![]() |
![]() |
#7 (im Thread / einzeln) |
Admiral Member
Threadstarter Registriert: 2003-09-23
Beiträge: 3.769
|
![]()
Danke für die Antworten!
Also hab' ich das richtig verstanden: HyperZ testet die Z-Werte gegeneinander und wirft entsprechende Pixel aus der Pipeline raus, so dass die nicht weiter bearbeitet werden. Ultra-Shadow schmeisst pauschal alle Pixel aus der Weiterbearbeitung, deren Z-Wert größer als ein definierbares X ist. Ist das eine oder das andere effektiver? Mit der Darstellung von Schatten hat wohl beides nichts zu tun, oder? Was ist, wenn man z.B. einem Dreick global einen Z-Wert zuordnet und dann alle Pixel, die zu diesem Dreieck gehören gleich behandelt? Spart man da nicht ein Haufen Einzel-Z-Tests? Allerdings müssten Dreiecke, die nur zum Teil verdeckt sind, komplett gerendert werden... Grüße
Rock and Roll aint noise pollution...
Geändert von Gaestle (2003-12-19 um 12:32:46 Uhr) |
![]() |
![]() ![]() |
![]() |
#8 (im Thread / einzeln) |
del_4901
Gast
Beiträge: n/a
|
Original geschrieben von Gaestle Und ob man jedem Face (Dreiecksfläche) nur einen Z-Wert zuordnen kann halte ich für sehr gefährlich, da man ja nicht weiß auf welchem Normalenvektor die Fläche steht, bzw. man weiß es schon, aber das würde auch wieder Berrechnungen nach sich ziehen. Welche höchstwarscheinlich nicht linear (n) Zeit benötigen sondern ich schätze mal das der Aufwand (n²) Zeit benötigt. Da ich nicht nur den Z_test mache sondern gleichzeitig Die Z-Werte interpolieren muss, wenn der Winkel ungünstig ist. (n ist die Anzahl der Eingabedaten, Pixel/Vertices sucht euch was aus ![]() |
![]() ![]() |
![]() |
#9 (im Thread / einzeln) |
3DCenter Crew & 3D-Guru
|
Z-Werte musst du schon Pixelweise (bzw Subpixel beim AA) prüfen sonst bekommst du heftigen Ärger wenn sich Teile gegenseitig verdecken oder noch schlimmer überschneiden.
Der vollständigkeit halber nochmal etwas ausfürlicher. HyperZ (ATI): HyperZ nutzt einen mehrstufigen Test bei dem bei jeder Stufe ein kleineres Quadrat geprüft. Für jedes Quadrat wird dabei immer ein Z-Wert gespeichert und für das zu prüfende Dreieck ebenfalls ein Wert für diese Quadrat berechnet. Dabei handelt es sich entweder um den grössten oder kleinsten Wert. Abhängig ist das davon welcher Z-Vergleich genutzt wird. Auf der höchsten Ebene wird eine 8*8 Pixel Tile geprüft. Kann der Chip nicht sicher sagen das alle 64 Pixel beim abschliessenden Z-Test verworfen würden geht es in die nächste Stufe. Hier wird das gleiche mit 4*4 Tiles wiederholt und abschliessen kommt noch eine Prüfung mit 2*2 Tiles zu Einsatz. Das Verfahren erreicht mit 64 Pixel/Takt eine hohe HSR Leistung die allerdings schnell sinkt wenn der Test auf den höheren Ebenen fehlschlägt. Ein weiteres Problem ist das man aufgrund der Tatsache das nur ein Z-Wert pro Tile gespeichert wird während eines Frames die Art der Z-Prüfung nicht ändern darf. Tut man diese doch wird das Hir-Z solange deaktiviert bis man wieder zur ursprünglichen Prüfung zurückwechsel. Die Verwendung von genauen Z-Prüfungen (gleich, ungleich) führt ebenfalls zum Abschalten von Hir-Z. Das veränder der Z-Prüfung ist übrigenes bei der Art wie DOOM III Schatten rendert notwendig. EarlyZ (nVidia). nVidia nutz kein gestuftes Verfahren sondern prüft 4 2*2 Tiles gleichzeitig. Dadurch erreichen sie nur maximale eine HSR Leistung von 16 Pixel/Takt. Das System ist aber weniger empfindlich. Zudem funktioniert es bei jeder Art von Z-Prüfung und man darf auch beliebig dazwischen wechseln. Ultra-Shadow (nVidia). Ultra Shadow führt nun eine andere Art von Z-Prüfung durch. Dort wird nicht der Z-Wert im Framebuffer mit dem Z-Wert des zu rendernden Objekts verglichen. Sondern der Z-Wert im Framebuffer gegen einen einstellbare Bereich. Damit erreicht man das Pixel die sowieso ausserhalb des Einflussbereichs einer Lichtquelle liegen sofort verworfen werden. Das Funktioniert daher weil aufgrund des notwendigen Z-Passes für jeden Pixel auf dem Bild die entgültige Z-Position schon früh feststeht. Desweiteren weiss man bei einer Lichtquelle aufgrund der Position, Art (Punktfömig, Spot, ...) sowie der Reichweite sehr schnell welchen Z-Bereich diese maximal abdecken kann. Alles was ausserhalb liegt braucht man beim Render nicht zu beachten und genau das macht Ultra-Shadow. |
![]() |
![]() ![]() |
![]() |
#10 (im Thread / einzeln) |
Gast
Gast
Beiträge: n/a
|
Original geschrieben von Demirug Ich dachte eigentlich immer, dass ATI eine Variante des NV-Verfahrens benutzt und NV nimmt einfach den Z-Buffer.
|
![]() ![]() |
![]() |
#11 (im Thread / einzeln) |
3DCenter Crew & 3D-Guru
Registriert: 2001-07-27
Beiträge: 43.720
|
Original geschrieben von Gast ATIs Verfahren ist effizienter, wenn man "normal" rendert: Man braucht weniger Z-Bandbreite fürs Early Z, und kann außerdem mehr Pixel pro Takt verwerfen. Original geschrieben von Gast . Geändert von aths (2003-12-19 um 14:46:56 Uhr) |
![]() |
![]() ![]() |
![]() |
#12 (im Thread / einzeln) |
3DCenter Crew & 3D-Guru
|
Original geschrieben von Gast Meinst du mit dem Fettgedruckten nicht den Z-Wert des zu rendernden Objektes? |
![]() |
![]() ![]() |
![]() |
#13 (im Thread / einzeln) |
Gast
Gast
Beiträge: n/a
|
Original geschrieben von Demirug
verwechsel ich da wieder mal was (Volumenschatten)? |
![]() ![]() |
![]() |
#14 (im Thread / einzeln) |
Gast
Gast
Beiträge: n/a
|
Original geschrieben von aths Bestenfalls kann ich noch den Z-Wert pro 8x8 Tile gelten lassen, aber alles weitere ist wirklich Kleinkram und (wie gesagt) ziemlich sinnlos.[/SIZE][/QUOTE]
|
![]() ![]() |
![]() |
#15 (im Thread / einzeln) |
3DCenter Crew & 3D-Guru
|
Original geschrieben von Gast |
![]() |
![]() ![]() |
![]() |
Lesezeichen |
Ansicht |
![]() |
![]() |
![]() |
|
|