Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 19, 2025 02:45

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 13, 2003 09:18 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 10, 2003 22:41
Beiträge: 8
Wohnort: Bad Ischl / Oberösterreich
Ich hab folgende Fragen:

Welche Mindestvoraussetzungen gelten für die Darstellung von OpenGL Anwendungen unter Windows? Vor allem im Bezug auf GraKa und Betriebssystem.

Ist es unbedingt notwendig eine GraKa mit 3D Funktionen zu besitzen oder gibt es auch eine Software Alternative?

Es ist mir klar, dass ohne entsprechende GraKa gewisse Spezialfunktionen nicht funktionieren, bzw. die Performance entsprechend schlecht ausfällt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 13, 2003 09:28 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 13, 2003 09:38 
Offline
Fels i.d. Brandung
Benutzeravatar

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..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 13, 2003 09:55 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
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 :D - 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...

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 13, 2003 10:19 
Offline
DGL Member
Benutzeravatar

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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 13, 2003 12:01 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
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)

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 13, 2003 12:12 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 10, 2003 22:41
Beiträge: 8
Wohnort: Bad Ischl / Oberösterreich
Wo findet man Informationen darüber, welche Funktionen in OpenGL 1.1 zur Verfügung stehen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 13, 2003 12:49 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
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.

So, das sollte erst mal reichen

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 13, 2003 13:33 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Apr 07, 2003 15:25
Beiträge: 77
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 13, 2003 14:44 
Offline
DGL Member
Benutzeravatar

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.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.017s | 17 Queries | GZIP : On ]