PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was war das eigentilch damals? -> HSR und die Voodoos


MadManniMan
2004-01-11, 14:58:38
...was waren das für Bildfehler, was wurde dort versucht? Warum gabs die Fehler nur ab ner bestimmten Frequenz?

Fragen über Fragen... warum komm ich eigentlich gerade heute darauf? :|



/edit: Jaja ich weiß... falsches Forum...

Ailuros
2004-01-11, 15:08:15
Nach so langer Zeit kann ich wohl mal ein vertrauliches e-mail veroeffentlichen:

Date: Thu, 23 Aug 2001 13:43:18 EDT
From: <deleted>
To: <deleted>
Subject: RE: HSR?

It doesn't work, and it never did (this is from talking to the guy that
implemented it, who works here now). Maybe at one time it was intended to
work, but it evolved into more of a joke feature--along the lines of "hey,
we can maintain 60 hz if we drop geometry when the rendering starts taking
too long". Software HSR is possible, but their implementation was silly...

..er arbeitet hier jetzt...sollte wohl helfen woher das e-mail stammt.

Der "Erfinder" dieses Dings wollte nur die Gigapixel Kerle mit ihren tiling Zeug veralbern.

MadManniMan
2004-01-15, 02:20:30
Dankedanke, AiL :)

Also hat das Kerlchen einfach hin und wieder das Trisetup Kauderwelsch ausspucken lassen, den ganzen Apparat zu beschleunigen?

Ailuros
2004-01-15, 03:05:16
So etwa; Vorraussetzung war dass es einen oberen threshold von 60Hz gab um der Mehrzahl von Artifakten zu entgehen. Je aggressiver das hypothetische 'tiling' setting, desto mehr wurde verworfen und desto mehr die Artifakte.

Man kann es auch als serioese Verletzung des BSPs der engine eventuell ansehen.

Egon Olsen hat mal eine nette Erklaerung ueber das BSP der q3a engine geschrieben:

The problem lies in the method the Quake3 engine uses for hidden surface determination/removal. Usually, the engine itself is the best place to perform HSR, because the engine knows (should know) what it is about to draw.

HSR in the videocard is HSR at the lowest level, performed if everything else has failed. That doesn't mean that it's useless but the videocard is simply "the last line of defense". So where is the problem in this particular scene? To understand this better, one should know a little bit about HSR algorithms and how the Q3 engines makes use of them.

The Q3 engine uses basically a combination of BSP (binary space partitioning) and PVS (potentially (or possible, whatever you prefer) visible set). The BSP is a tree structure that allows the engine to determine the polygons in the view frustum in order (back to front or front to back, whatever you want). This sorting is done 'automatically' by parsing the BSP tree regarding the current position and direction of the camera (the player).

The BSP does NOT store information about what is visible from a specific position and what is not (as long it lies into the view frustum). This means that if you are standing in front of a wall with zillions of polygons behind it (which can't be seen), the BSP doesn't give you any information that only the wall has to be drawn. In this case, the whole bunch of polygons will be processed and thrown to the videocard. In the best case, all but the wall polygons are rejected by the ZBuffer. In the worst case, all of these polygons are drawn over another and finally they are all overdrawn by the wall. This cost some fillrate of course, but that shouldn't be that much of a problem as one may think.

A bigger problem is, that all these polygons need to be transformed, clipped, lit and projected...for nothing (because they are not visible). To reduce this overhead, the Q3 engine uses a PVS. This PVS contains information about which other parts (represented for example by the leafs of the BSP tree, but that goes into too much detail...) are potentially visible from the current position. The problem is, that this information is precalculated and that it doesn't take the viewing direction into account (it wouldn't be possible to do this at a precalculation stage).

Imagine yourself standing in your kitchen. You may see the living room and your bathroom from there, but you dont, because you are facing the kitchen wall with the living room and the bath room behind you. You ask your PVS and it says: "fine, you are in the kitchen, you may see the bathroom and the livingroom". Then you ask your BSP tree. Because you are facing away from both rooms, the BSP says: "No living room and no bathroom visible, because both rooms are behind you (and therefor not in the view frustum)".

This is the situation in your example when you are standing looking at the wall of the cave with the ladder behind you. Now, turn aorund in your kitchen. You are now facing the other wall, still unable to see the living room or the bathroom. The PVS again tells you "Living room, Bathroom". The BSP can't do any better if both rooms are into the view frustum (that means that they could be seen, if you would remove the kitchen wall). In your example, this is the case when facing the ladder. PVS and BSP can't determine that the whole cave complex is not visible in this situation.

One question remains: why can't the PVS give you this information? Well, it can't do this, because it doesn't know anything about your specific position and the direction your are facing except that it does know, in which part of the level you are. This part seems to be the same in your example regardless if you are standing on top of the ladder or at the bottom. To come to an end: In this particular situation, neither the PVS nor the BSP can determine that the rest of the cave is not visible. So the CPU has to process a lot of useless stuff. And finally, that may be a reason why John Carmack (author of the quake engines) is heading for portal brushes instead in the Doom3 engine. This way, the PVS is generated at runtime and takes the direction into account (a very brief description, but anyway...).

I hope that this (rather long) posting clears up a little bit of the confusion about HSR and how it can work, what it can do and where the problems may be.

MadManniMan
2004-01-15, 03:18:04
Also jetzt nochmal für den langsamen Manni zum Mitschreiben: hat der nette Progger eine reine Verarsche mit dem Ding abgezogen und einfach x-beliebige Polys dem Trisetup garnicht erst übergeben oder bemühte das Schlawinerchen sich tatsächlich darum, mit möglichst geringem Artefakt viel Leistung zu erschumm0rln?

BTW herrliche Erklärung von PVS und BSP! :up:

Ailuros
2004-01-15, 03:44:23
Der Scherz enstand als das Gigapixel-team das Fear-Projekt bei 3dfx aufnahm. Herr X wollte die Kerle mit ihrem tiling-Firlefanz einfach ein bisschen veraeppeln und es war dann eher im Sinn "poo auf tiling ich zeig Euch wie es auch noch gehen kann".

Die Erklaerung des BSPs oben ist aeusserst relevant und ueberhaupt was fuer Moeglichkeiten es in Realitaet selbst einem TBDR ueberlaesst. Das low-level-HSR des Tilers spart zwar an Fuellrate generell, kann aber nie die eigentlichen Nachteile des BSP ueberwinden.

Ich weiss jetzt nicht genau was der Kerl mit dem Dingsda anzustellen versuchte, auf jeden Fall wuchs die Anzahl der Artefakte in diesen Teilen einer Szene, wo der Anteil von Geometrie am hoechsten wahr. Wichtige Vorraussetzung war dass man durch die eine Art oder Weise erstmal die maximale Framerate auf 60fps abgrenzen musste; es gab keinen einzigen Unterschied in realtime Leistung ausser dass das timedemo einen hoeheren Durchschnitt angab (da dieses den theshold auch ignorierte).

Natuerlich wurde das obrige konstant von V5 Benutzern abgestritten, aber der psychologische Faktor ("hoppla ich bekomme 70fps anstatt 45fps mit 2xRGSS im timedemo 1,also liegt doch daran was...") hat da IMHO viel zu viele auf falsche Pfade gehen lassen damals. Als Websites sogar mit benchmarks und Analysen damals ankamen, kam es intern bei 3dfx zum massiven Kopfklatschen.

Die reale Leistung der V5 war IMO in perfekter Analogie zu der Fuellrate ueber die die Karte damals verfuegte.

MadManniMan
2004-01-15, 03:57:47
Original geschrieben von Ailuros
Die reale Leistung der V5 war IMO in perfekter Analogie zu der Fuellrate ueber die die Karte damals verfuegte.

Fakt. :) Retrospektiv betrachtet hätt ich mir das Scheißteil Mann doch zulegen sollen... Auch ohne HSR :D Stand da nichmal sogar inner PCG und/oder PCGH was?

Ailuros
2004-01-15, 05:22:53
Keine Ahnung. Bin kein PC-Magazin Leser.

Fuer racing/flight/space sim Fans die hohe FSAA-Qualitaet zu schaetzen wussten, war es definitiv eine sehr gute Loesung fuer ihre Zeit.

MadManniMan
2004-01-15, 16:22:18
Original geschrieben von Ailuros
Keine Ahnung. Bin kein PC-Magazin Leser.

Schade, du verpaßt viele Stilblüten :naughty: *an die Gamestar HW denkt. Hiphip ahoi.*

Original geschrieben von Ailuros
Fuer racing/flight/space sim Fans die hohe FSAA-Qualitaet zu schaetzen wussten, war es definitiv eine sehr gute Loesung fuer ihre Zeit.

Nicht nur da. Alles "langsame" Halbstandbild-3D-Gedöhns war geradezu üb0rprädestiniert. Aber was bringts uns heut...

Da_andi
2004-01-15, 19:47:53
hatte nee v5 5500 und die war echt so hammer genial naja hab sie ca. nachm halben jahr gegen nee brandneue hercules gf 3 umgetauscht ohne draufzuzahlen *freu* die gf3 war ganz neu damals *gg*

naja hatte neen bekannten der händler war und die v5 zurückgenommen hat *ggggggggggg* *smile*

mapel110
2004-01-15, 20:42:05
das HSR per treiber funzte doch?! gab zwar doch recht starke bildfehler, aber unspielbar waren die games damit nicht. performance hatte sie fast verdoppelt zb bei serious sam.

Exxtreme
2004-01-15, 20:48:50
Original geschrieben von mapel110
das HSR per treiber funzte doch?! gab zwar doch recht starke bildfehler, aber unspielbar waren die games damit nicht. performance hatte sie fast verdoppelt zb bei serious sam.
Die Performance hatte sich nicht verdoppelt. Viel mehr wurden einzelne Frames übersprungen, so daß die Framecounter durcheinander gebracht wurden und diese dann deutlich höhere Werte anzeigten als eigentlich vorhanden waren. Man könnte das Teil als ein Cheat ansehen.

aths
2004-01-15, 21:02:36
In Glide hatte ich keine fehlenden Dreiecke, aber durchaus mehr Performance.

Haarmann
2004-01-15, 21:18:50
Ailuros

Schalt mal das HW "HSR" von NV oder ATI Karten ab und reteste Q3... es wird langsamer werden, falls Du es im Grakalimitierten Bereich nutzt.

Und mit gewissem Vorwissen lief dies HSR sogar von 3dfx - mir eigentlich egal wieso, es reichte, das dass ;).

Ailuros
2004-01-15, 22:17:16
Schalt mal das HW "HSR" von NV oder ATI Karten ab und reteste Q3... es wird langsamer werden, falls Du es im Grakalimitierten Bereich nutzt.

Keiner sagte dass es nicht langsamer wird; im Gegenteil sagte ich dass man mit low-level HSR an Fuellrate gewinnt.

Ach ja ich koennte z.B. early-Z ausschalten und der durchschnittliche Overdraw waechst von 3.17 auf 3.39...big deal.

Und mit gewissem Vorwissen lief dies HSR sogar von 3dfx - mir eigentlich egal wieso, es reichte, das dass.

Was fuer ein "Vorwissen" genau? Natuerlich war die Methode so fortschrittlich dass sie heute auch bei NVIDIA benutzt wird und 3dfx hatte auf ihrer roadmap hierarchical Z und tile based deferred rendering gerade aus dem Grund.

Ich fordere alle auf wenigstens eine oeffentliche Aussage von 3dfx ueber dieses Dingsda zu finden. Merkwuerdig dass die Firma sich nie darueber geaeussert hat, oder?

Gast
2004-01-16, 12:03:37
Original geschrieben von Exxtreme
Die Performance hatte sich nicht verdoppelt. Viel mehr wurden einzelne Frames übersprungen, so daß die Framecounter durcheinander gebracht wurden und diese dann deutlich höhere Werte anzeigten als eigentlich vorhanden waren. Man könnte das Teil als ein Cheat ansehen.

Genau.

Zu Ergaenzen waere nur noch, dass dieses "Feature" IIRC nur bei Q3 engines ueberhaupt eine Wirkung zeigte.

BadFred
2004-01-16, 12:09:32
Original geschrieben von Gast
Genau.

Zu Ergaenzen waere nur noch, dass dieses "Feature" IIRC nur bei Q3 engines ueberhaupt eine Wirkung zeigte.

Siehe ein paar Beiträge weiter oben:

Original geschrieben von mapel110
unspielbar waren die games damit nicht. performance hatte sie fast verdoppelt zb bei serious sam.

Gast
2004-01-16, 13:54:36
Original geschrieben von BadFred
Siehe ein paar Beiträge weiter oben:


Wenn ich lust dazu habe, werde ich das nachher auf meiner Voodoo testen.

Universell (= fuer alle Games einer API) funktioniert hat das Feature jedenfalls nicht.

Gast
2004-01-16, 13:59:03
Original geschrieben von Gast
Wenn ich lust dazu habe, werde ich das nachher auf meiner Voodoo testen.

Universell (= fuer alle Games einer API) funktioniert hat das Feature jedenfalls nicht.

Stimmt. Wenn ich Lust habe kann ich es auch auf meiner V5 testen ( ;) ). Serious Sam habe ich leider nicht, aber mapel110 glaube ich, dass es dort etwas brachte. Womit schon feststeht, dass 3dfx' Pseudo-HSR nicht nur bei QIII-Engine based Games arbeitet (wie auch immer "es" arbeitet). ;)

BadFred
2004-01-16, 14:00:02
Das war ich (blöde Kekse...). :-P