Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Die Mindestvoraussetzungen werden doch nicht von der verwendeten Grafikschnittstelle gesetzt.Diese beruhen auf den Anforderungen deiner Anwendung...je nachdem wie detailliert deine Szenen sind, wie viele Texturen du nutzt (bzw. wie hoch die aufgelöst sind) usw.
Prinzipiell läuft OpenGL nämlich auf jedem Windowsrechner, und wenn die Grafikkarte keine OpenGL-ICD mitbringt, dann läufts halt über den (sehr langsamen) OpenGL-Softwarerasterizer von Microsoft (der AFAIK OpenGL1.1 unterstützt) .Wenn der dir zu wenige Funktionen bietet, dann kannst du immernoch auf <a href='http://www.mesa3d.org/' target='_blank'>MesaGL</a> ausweichen, eine SoftwareGL-Lib, die auch die neusten Extensions unterstützt.
Aber wie gesagt sind die Mindestvorraussetzungen ganz von deiner Anwendung, und nicht von der verwendeten 3D-API abhängig...
Zitat:
Es ist mir klar, dass ohne entsprechende GraKa gewisse Spezialfunktionen nicht funktionieren, bzw. die Performance entsprechend schlecht ausfällt.
Und genau hier liegts in der Hand des Programmierers, verschiedenen Renderpfade für verschiedene GPUs zu proggen.Man frägt halt ganz einfach ab, ob die verwendete Grafikkarte Extension XYZ unterstützt, und wenn nicht dann versucht man dieses Feature auf andere Weise zu implementieren oder lässt es (schlechter) ganz weg.Siehe z.B. DOOMIII, wo John Carmack jede Menge verschiedener Renderpfade implementiert hat.Da gibts einen für die NV25-Serie, die NV30-Serie, die R2xx-Reihe und die R3xx-Reihe.Am Ende sieht das Ergebniss dann auf fast allen Karten identisch aus, mit dem unterschied das z.B. der R2xx-Renderpfad halt mehr Renderdurchläufe wie der R3xx-Pfad benötigt und deshalb schneller ist.Allerdings ist so sichergestellt, das eine möglichst breite Benutzerbasis das Spiel nutzen kann.
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Zumal ich zu SOS eigentlich nur noch ergänzend einwerfen möchte, dass der Software-Modus in der heutigen ZEIT IMAO total zu vernachlässigen ist. Auch wenn es immer wieder ne Aufschrei gibt, mehr als ne drehendes Dreieck für ne Logo taugt das Ding nichts. Man wird keine Anwendung bekommen, die andere wirklich noch vom Hocker reißt und auch die Vorurteile über die "Büro-Grafikkarten" sind nicht wirklich korrekt. Viele davon haben ne Menge 3D-Power drunter zumindest solange man nicht Dinge aus der Neuzeit verwendet. Aber es macht einfach keinen Spass mehr ne Graka die vor 1998 gebaut wurde einzusetzen, zumal das Argument "kann nicht leisten" kaum zählt, den die meisten GeForce2MX-Karten wird man von allen Leuten nachgeschmissen bekommen und die Leistung/Preis ist IMAO wirklich nicht schlecht... (Zumindest im Gegensatz zu einem Software-Renderer)
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Wobei hier evtl. noch anzumerken wäre, dass Softwarerenderer sowohl für die Fehlersuche als auch für's Offscreenrendering (z.B. in unkonventionellen Pixelformaten - etwa ein Double pro Farbkomponente) schon noch von Nutzen sind.
Einen Softwarerenderer wie MesaGL kann man auch statisch in sein Projekt dazulinken - und ist dann völlig unabhängig von irgendwelchen Treibern die manche Leute installiert haben oder eben nicht.
Von der Programmierung von Echtzeitanwendungen (wie Spielen) würde ich allerdings abraten - obwohl ich auch schon auf einem Pentium 233 mit 2 MB Grafikkarte (ohne 3D-Beschleunigung) OpenGL Anwendungen geschrieben habe, die noch zufriedenstellend gelaufen sind (man muss sich halt auf wenige Objekte beschränken und das bilineare Filtern von Texturen tunlichst deaktivieren - außerdem, so möglich, ein 8 Bit Pixelformat mit Palette verwenden).
Ok, ich gebs' zu, für Echtzeitanwendungen bringt der Softwaremodus echt nix mehr...
Registriert: Di Jun 10, 2003 22:41 Beiträge: 8 Wohnort: Bad Ischl / Oberösterreich
Zur Info:
Bei meinem Anwendungsfall geht es lediglich um eine einfach 3D-Darstellung mit einfachen Schwenkbewegungen zur Änderung der Ansicht ohne jegliche Spezialeffekte oder Texturen. Wenn die Schwenkbewegung um 90° nur in 3 Schritten erfolgt (Megaruckel), dann bin ich auch schon zufrieden. Nur Funktionieren muss das ganze.
Linken eines entsprechenden Renderers wäre eine Idee! Ich muss davon ausgehen, dass manche Anwender absolute DAU's sind.
Trotz meiner Anforderung sind aber auch andere Aspekte interessant.
Also im Normalfall sollte es ausreichen, wenn du dich einfach auf OpenGL 1.1 Funktionalität beschränkst und Windows entscheiden läßt, welches Pixelformat tatsächlich angemessen ist. Dann verwendest du auch nur einen Renderkontext und achtest drauf, dass die Texturen eher klein bleiben (ok, du verwendest eh keine) und lässt die Finger von Alpha, Accumulation und Stencilbuffer. Programme die nach diesen Gesichtspunkten geschrieben sind, laufen (bei einfacheren Szenarien) auch im Softwaremodus noch flüssig - und auch schrottige OpenGL Treiber (wie Ati Rage Pro und Konsorten) kommen damit einwandfrei zurecht.
Den MesaGL Treiber zu linken, ist nur in C/C++ Programmen relativ einfach. Für Delphi müsstest du die entsprechende .obj Datei erstellen und selbst eine Unit erstellen, die die entsprechenden Funktionsköpfe zur Verfügung stellt (was den Aufwand nicht wert ist, da die obige Vorgehensweise völlig ausreichend ist, was Kompatibilität anlangt - zumindest wenn kein Windows 95a mehr eingesetzt wird)
Im Prinzip die normale Delphi Hilfe (Windows SDK) und das hier erhältliche Red Book (beide auf dem Stand von OpenGL 1.0), kommerziell erhältlich ist auch eine Red Book Variante die OpenGL 1.2 beschreibt (soll aber auch in elektronischer Form aufzutreiben sein - hab ich gehört). Auf der OpenGL Homepage gibts, glaube ich, auch eine compiled html Datei, die etwas aktueller ist, als die normale Windows Hilfe - und auch die OpenGL 1.1 Spezifikation beschreibt. (Obwohl die Windows Treiber OpenGL 1.1 unterstützen, sind in der Delphi Hilfe nur OpenGL 1.0 Funktionen zu finden). Du kannst natürlich auch die MSDN verwenden, die ist ebenfalls auf dem Stand von 1.1 - oder du lädtst dir die ganze OpenGL 1.1 Spezifikation als PDF von der OpenGL Homepage (http://www.opengl.org) runter.
Also, weil ich meinen Senf wieder dazugeben muss folgender Fall: Mein Kumpel hat ne On-Board Graka, und bei dem läuft zwar das Textur Beispiel schneller, als auf meiner Gf 2 TI, dafür aber die Heightmap langsamer.(MEin Freund hat auch nen langsameren Prozessor)
_________________ Wer Ordnung hält, ist zu faul zum Suchen
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
bighead hat geschrieben:
...dafür aber die Heightmap langsamer...
Och das hat nicht viel zu bedeuten. Das kommt ganz darauf an wie es gemacht wurde. Ein kleines Bespiel was ich selber erleben durfte. Duron 1,2GHz TNT 2 Heightmap 128x128 läuft mit rund 60 Fps (mit Trianglestrips gerendert) (ca 1,5 Mio Triangles/sek)
Jetzt kommt in den selber Rechner eine Radeon 9500 Pro. Rein rechnerisch und technisch gesehen müsste der Geschwindigkeitsfaktor recht anständig sein. TNT2 kann ca. 9 Mio Triangles/sek. Radeon 9500 Pro kann 275 Mio Triangles/sek.
Rein praktisch lief die selbe Heightmap aber nur mit 100 Fps. (ca 2,5 Mio Triangles/sek) Also nur lächerliche 50% mehr und das obwohl Faktor 40 durchaus drin gewesen wäre.
Der Grund dafür ist recht einfach. Die Radeon (der Treiber) sind im iterativen Modus super langsam.
Jetzt hatte ich das ganze auf ARB_vertex_buffer_object umgestellt und siehe da auf einmal konnte die Karte locker 60 Mio Triangles/sek. Das Demo von Delphi3d.net das vom prinzip her nicht viel anders macht als ich. Bekommt mal ebend 100 Mio Triangles/sek. (Auf anderen Sytemen sogar über 130)
PS: nVidia fällt im iterativen Modus nicht mal ansatzweise so stark in den Keller.
Wie du siehst kommt es bei solchen Dingen sehr stark auf den Hersteller/Treiber an.
Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.