PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Help: Einfaches nVidia/ATi/PowerVR/3dfx FSAA/anisotrop Tool programmieren


Leonidas
2002-01-09, 04:54:51
In meinem Wahn kam ich auf die Idee, ob wir nicht ein einfaches FSAA/anisotrop-Tool für nVidia gfx erstellen könnten.

Die bisherigen Tools sind allesamt total funktionsüberladen, teilweise darf man sie gar nicht in die Hände von Newbies geben. Außerdem interessieren außerhalb von Tweak-Freaks und OC-Freaks doch nur wirklich diese beiden Dinge: FSAA und anisotrope Filterung. Es liegt auf der Hand, daß man dafür ein Tool proggen könnte.

Ich hab da schon konkrete Vorstellungen besonders von der Usability. Wer macht mit? Vor allem Programmierer gesucht (aber auch Freaks mit Fachwissen zu allen möglichen Settings) - denn ich kann es leider nicht.

Xmas
2002-01-09, 13:46:32
Hm, da es sich nur üm das Ändern von ein paar Registry-Einträgen dreht, sollte das ganze mit ein paar Zeilen Code zu erledigen sein.
Wäre nett, wenn mir mal jemand die entsprechenden Registry-Keys schreiben könnte. Dann würd ich das mal in Angriff nehmen.

Kai
2002-01-09, 16:30:02
Ich könnte wie bei RAL's DSC ja ne Art Splashscreen erstellen ;) Ansonsten hält sich mein Hilfevermögen in Grenzen ...

Leonidas
2002-01-09, 16:58:20
Sorry, ich halte einen Splashscreen nicht für gut. Das soll ein kleines Tool mit hohem Nutzwert und geringstmöglichem Ressourcenverbrauch sein. Optischen "Schickschnack" halte ich dort nicht für angebracht.


Könnten wir hier mal die Registry-Settings zusammensuchen, die dafür notwendig sein? Betrachtungsgrundlage sind allein der Detonator XP (alles ab 20.xx) und Windows 95/98/ME sowie 2000/XP.

aths
2002-01-09, 17:56:24
Hehe.

Wenn ich wüßte, wie man Reg-Einträge in Delphi in die Registry schreibt (das müsste ich mal recherchieren) würde ich ebenfalls so ein Tool schreiben. Für das Design hätte ich da nämlich *einige* Ideen.

aths
2002-01-09, 19:13:39
Das geht ja Schlag auf Schlag! Das Grunddesign ist schon fertig, und auf die Registrierung kann ich von Delphi aus auch zugreifen :)

Leonidas
2002-01-09, 19:42:02
Ich schlag ein einfaches und sehr logisches Design vor:


1. Nur ein Fenster.

2. Unterteilung in OpenGL und Direct3D.

3. Dort jeweils Unterteilung in anisotrop und in FSAA.

4. Die Anisotropen Settings jeweils mit exakter ATi-konformer Bezeichnung - ansonsten gibt es wieder Gebrüll, nVidia würde mehr beherrschen als nVidia

5. Beim FSAA auch die inoffiziellen Arten mit dazu.

6. Insgesamt für alles eine Buttonleisten (unten): Übernehmen, Abbrechen, Standards. Die Standards sind IMHO ja alles auf "aus", oder?

7. Eine Auto-Erkennung der gfx-Karte ist ja sicher möglich oder? Den Namen der erkannten Karte mit einblenden.

8. Möglichst alle anisotrop- und FSAA-Modes einblenden, auch diese, die mit der aktuellen Karte nicht möglich sind (diese natürlich nicht auswählbar). Update: Ist schwachsinn.

Legolas
2002-01-09, 19:50:57
Wie wärs noch mit Profilen für verschiedene Spiele??? Wäre bestimmt nicht schlecht, wenn man einfach Presets laden kann ;) Für meine Voodoo 5 wäre das imho auch nicht schlecht, weil der Voodoo Game Laucher irgendwie nicht wirklich gut mit den letzen Treibern funktioniert :D:D ;) Aber ich will ja nicht vom Thema ablenken =)

aths
2002-01-09, 19:59:31
Profile sind schon im Design enthalten, Legolas.

edit: Im Moment kümmere ich mich darum, dass Fensterpositionen usw. gespeichert werden.

Kai
2002-01-09, 20:10:51
Originally posted by aths
Profile sind schon im Design enthalten, Legolas.



Das wünsche ich mir schon ewig, wär echt Klasse! :)

aths
2002-01-09, 20:26:02
Ich bräuchte erst mal die Anisotropic-Einstellungen, für OpenGL und D3D, je bilinear und trilinear.

Leonidas
2002-01-09, 20:57:49
Zur Profil-Geschichte:


Es muss zuerst einmal ein General-Setting geben so wie vorbeschrieben. Und dann sind extra-Profile für einige Spiele sicher eine gute zusätzliche Idee.

aths
2002-01-09, 21:26:46
Leo,

dass General-Setting geht, halt bis auf den Eintrag in die Registry. Beim Verlassen des Programms werden diese Settings natürlich gespeichert.

syronth
2002-01-09, 22:19:35
Originally posted by Leonidas
Ich schlag ein einfaches und sehr logisches Design vor:

4. Die Anisotropen Settings jeweils mit exakter ATi-konformer Bezeichnung - ansonsten gibt es wieder Gebrüll, nVidia würde mehr beherrschen als nVidia



Da das Tool sich an Newbies richtet, wird aber garantiert anderes Gemaule aufkommen ("Ich will aber 32-Tap und nicht nur 16-Tap, bäääh!"). Threads werden entstehen, in denen xmal erklärt wird, daß die nVidia-Bezeichnungen nicht ganz korrekt sind.
Also warum nicht gleich in der Reg auslesen, welche Graka installed ist und die Tap-Anzeige flugs eingestellt? Ich kenne zwar nur Basic, Pascal, Java, PHP, aber mehr als ein Handgriff sollte es nicht sein.

aths
2002-01-09, 22:31:52
Da wir gerade davon sprechen,

kennst du den Schlüssel, wo man die (Chip-Bezeichnung der) Grafikkarte auslesen kann?

syronth
2002-01-09, 22:44:20
Also ich fand spontan bei meinem Win98 folgenden Registry-Eintrag:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Display\0000]
"ProviderName"="NVIDIA"
"DriverDesc"="NVIDIA GeForce3"
"MatchingDeviceId"="PCI\\VEN_10DE&DEV_0200"
"Ver"="4.0"
"DevLoader"="*vdd"
"InfPath"="NVIDIA~1.INF"
"InfSection"="NV20"
"DriverDate"="10-6-2001"

Edit: Der Schlüssel scheint Standard zu sein, allerdings weiß ich nicht, ob mit "InfSection" standardgemäß der ínstallierten Grafikchip angegeben wird.

Edit2: Wie wäre es, das Tool auf ein Tray-Icon zu reduzieren und die Einstellungen nur per Dropdown anzuhaken? Dann würde ich auch den RivaTuner kicken ;) Anstatt dutzende Profile könnten typische AA-Aniso Kombinationen aufgenommen werden, die dann mit einem Klick einstellbar sind.

aths
2002-01-09, 22:58:28
Habs gerade getestet, ich kann in die Registry schreiben.

Jetzt müsste ich "nur" noch wissen, was.

aths
2002-01-09, 22:59:34
Die Profile sind selbst konfigurierbar.

aths
2002-01-09, 23:03:16
Auch Settings für Kyro und Radeon sind herzlich willkommen.

aths
2002-01-09, 23:35:20
Also,

bei diesem Teil kann man getrennt für OpenGL und D3D jeweils die Anti-Aliasing und AF-Stufen einstellen. Es ist so vorbereitet, dass damit verschiedene Grakas behandelt werden können.

Die "Hardware-Erkennung" dürfte schwierig werden, da offenbar jeder Hersteller andere Reg-Keys benutzt. Das ist aber kein grundlegendes Problem, so lange das anhand verschiedener Schlüssel unterscheidbar bleibt.

Man kann jedes Setting als OpenGL, D3D oder Kombo-Setting speichern (und auch wieder löschen :)) Diese Profile sind standardmäßig nicht sichtbar, per Buttonklick wird das Fenster größer.

Es gibt zwei unterschiedliche Betriebs-Modi.

Normal: Das Profil wird per Doppelklick gewählt.

Fast: Das Profil wird per einfachem Klick gewählt und das Tool beendet sich sofort.

Beim Verlassen werden natürlich die Einstellungen gespeichert.

edit: Das Programm an sich ist allerdings noch völlig ohne Funktion, in die Registry wird also bislang nicht geschrieben.

Kai
2002-01-10, 00:26:40
Originally posted by aths
Die "Hardware-Erkennung" dürfte schwierig werden, da offenbar jeder Hersteller andere Reg-Keys benutzt. Das ist aber kein grundlegendes Problem, so lange das anhand verschiedener Schlüssel unterscheidbar bleibt.

Verwende doch die Device ID (hier Windows98) unter

HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10DE&DEV_0200&SUBSYS_2860107D&REV_A3\000800

für den primären Display-Adapter ... - oder lass das Tool in der Registry nach der "GraKa DeviceDesc" suchen ...

Kai
2002-01-10, 00:29:13
@ aths: Kann man die Profile auch mit Shortcuts auf dem Desktop verknüpfen? So das man sein Lieblingsspiel querfeldein über das Tool jagen kann, welches dann das Spiel startet ?

Oder anders - kann man eventuell auch eigene Icons im Tool für das jeweilige Programm hinterlegen?

Leonidas
2002-01-10, 01:54:43
Vorsicht! Bei mir ist die aktuelle gfx nicht der primäre Adapter! Der ist eine Radeon - die gar nicht im Rechner ist. Ein solcher Fall tritt immer ein, wenn die gfx gewechselt wurde und die alten Treiber nicht deinstalliert wurden (bei mir ist es bewußt).

Also: Wenn, dann alle devices überprüfen und falls mehrere existieren, nachfragen, welches aktiv ist. IMHO gibt es aber bessere Lösung als die Devices. In den Devices sammeln sich auch Installationsleichen an -> so kann der User z.B. 2x eine GF2 installiert haben -> und welche soll er dann auswählen? Powerstrip findet jedenfalls die wirklich aktive Grafikkarte und das sollte das Tool auch können.

Leonidas
2002-01-10, 01:55:18
PS: Muß ja alles net heute fertig werden. Gut Ding will Weile haben.

aths
2002-01-10, 07:47:08
Kai,

solche Funktionalität habe ich auch schon angedacht. Ehe ich das weiter verfolge, würde ich gerne etwas überhaupt funktionsfähiges haben. Wenn das Tool via Schnellstart-Leiste in Windows eingebunden ist, kann man es ja mit einem Klick starten. Im Fast Mode ist mit einem weiteren Klick das gewünschte Profil eingestellt.


Leo,

ja zumal in der nächsten Woche die ersten schriftlichen Prüfungs(vor)leistungen erbracht werden müssen. Die Hardware-"Erkennung" werde ich wohl zunächst dem User überlassen.

nggalai
2002-01-10, 08:15:18
Dass NV gerne mal die Registry-Keys anders benennt, je nach Detonator, habt ihr bedacht?

ta,
.rb

Leonidas
2002-01-10, 09:55:04
Wir wollen momentan nur für den Detonator XP das machen. Und hoffen, daß nVidia das nicht mehr all zu oft ändert :-)

aths
2002-01-10, 16:42:17
Im Moment ruht die "praktische" Entwicklung. Ich möchte mir das genaue Anforderungs-Profil durch den Kopf gehen lassen, um das Programm möglichst "gut" werden zu lassen.

Wie Leo vorschlug ist Einfachheit Trumpf. Man kann für OpenGL und D3D jeweils AA und AF einstellen. Mehr nicht. Es wird für die Graka keine zusätzlichen Optionen geben. Während andere Tools mit vielen Optionen aufwarten, steht hier einfachste und schnellste Bedienbarkeit im Vordergrund.

Das mit der Auto-Erkennung könnte ein Problem werden. Aber warum so kompliziert? Ich denke es ist das beste, wenn das Programm mit vorgefertigten Settings geliefert wird. Diese sind im reinen Textmodus. Der Nutzer lädt sich also zunächst die Binary und dann das Setting für seine Graka/seinen Treiber. Kommt ein neuer Treiber mit neuen Keys, muss lediglich das alte Setting mit dem neuen überschrieben werden.

Die "Hardware-Prüfung" würde sich dann darauf beschränken, ob ein im Setting vorhandener Schlüssel gefunden wird.

Es wäre natürlich auch denkbar, alle bekannten Settings ins Programm einzbauen. Das würde allerdings ziemlich aufwändig und wäre auch noch weniger flexibel.

Leonidas
2002-01-10, 18:19:31
Ich denke, daß reicht auch fürs erste. Das Tool soll bei 90% der Anwender funktionieren - die doppelte Arbeit zu machen, nur damit es bei 99% läuft, ist nicht sinnvoll.

Es reicht, wenn der Normalfall - einige gfx im System - gelöst werden kann. Wenn der User nach dem erstmaligen Start einen Dialog bekommt, wo er noch etwas auswählen muß, ist das auch ok. Wenn man den Dialog itelligent und vor allem einfach und mit wenigen Auswahlmöglichkeiten löst, begreifen das auch die ALDI-Käufer.



Langziel ist es in meinen Augen, dem völlig ahnungslosen User ein Tool an die Hand zu geben, mit welchem er einfachst, ohne genauen Kenntnisse über das "wie" und ohne Möglichkeiten, viel kaputt zu machen (durch zu viele Optionen wie in den anderen Tweakern) einfach FSAA und anisotrop nutzen kann. Beide Features sind mit den aktuellen gfx möglich, werden aber zu wenig benutzt. Genau gegen diesen "Mißstand" geht es.

RAL
2002-01-10, 21:02:48
Fragt sich nur was ist, wenn es im nächsten Detonator plötzlich drin ist..
Naja in dem Fall hat man halt ein bissel proggen geübt, hat ja auch was.

aths
2002-01-10, 21:05:06
"Fragt sich nur was ist, wenn es im nächsten Detonator plötzlich drin ist.."

Dann werden Settings für die Konkurrenz gemacht :)

aths
2002-01-12, 02:38:46
Das mit den Setting-Files habe ich wieder verworfen. Es ist jetzt Ziel, alles in eine Exe zu packen, die man kopieren kann. Bei der "Hardware-Erkennung" habe ich auch schon Ideen: Es werden der Reihe nach jeweils für Device0 einige Schlüssel auf Existenz abgefragt. Wird etwas gefunden, wird das als Karte vorgeschlagen, der User muss das (einmalig) bestätigen. Hierbei kann man auch das Device ändern, muss dann aber die Karte selbst auswählen.

Wird nichts gefunden, kommt man ebenfalls in die Auswahl.

Die zuletzt gefundene HW wird im Config gespeichert. Die "Erkennung" wird bei jedem Start durchgeführt. Ändert sich etwas, kommt man wieder in die Auswahl. So mein Plan.

Leo testete eine allererste Alpha, AF für OpenGL zu verändern funktionierte :)

Labberlippe
2002-01-12, 08:20:34
Das die Radeon mit den neuen Treibern erst dann die Reg Keys setzt, wenn Du eimnal die Optionen im Desktop kurz übernommen hast.

Gruss Labberlippe

aths
2002-01-12, 14:57:53
Labber,

wenn die Werte nicht da sind, werden sie angelegt :)

Allerdings muss der Schlüssel-Pfad vorher existieren, der wird nicht angelegt.

Exxtreme
2002-01-12, 17:32:25
Originally posted by Leonidas
nVidia würde mehr beherrschen als nVidia


???

Gruß
Alex

Leonidas
2002-01-12, 18:29:17
Originally posted by aths
Labber,

wenn die Werte nicht da sind, werden sie angelegt :)

Allerdings muss der Schlüssel-Pfad vorher existieren, der wird nicht angelegt.


Der existiert meist vorher auch nicht. Aber wenn man es richtig macht, wird doch der auch gleich mit angelegt, oder?

aths
2002-01-12, 19:03:56
Wenn der User eine Karte gewählt hat, werde ich es vermutlich so machen, dass die Pfade zwangsweise angelegt werden. Das ist aber alles noch nicht so wichtig. Wichtig ist, dass es prinzipiell erst mal funktioniert.

Labberlippe
2002-01-13, 14:25:43
Originally posted by Leonidas



Der existiert meist vorher auch nicht. Aber wenn man es richtig macht, wird doch der auch gleich mit angelegt, oder?

Jenachdem wie das Tweaking Tool gemacht ist.
Bei RageTweaker muss ich zuerst in den Desktop rein dann eben unter D3d und OpenGL mal kurz übernehemen und der Tweaker funzt.
Beim RadeonTweaker ist es egal.
Kurz wenn er im Tweaker gleich den Schlüssel miterstellt sollte es auch funzen.
Der Schlüssel und die darin eingetragen Werte müssen logischerweise genauso heisen wie ATi sie angibt.
Aths hat eh den Pfad von mir per mail bekommen.

Ich kann es gerne nochmal bei einer frischen Treiber Installation testen, geht aber erst Morgen da habe ich dann meinen Rechner wieder.

Gruss Labberlippe