Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Graphikkarten für OpenGL-Anwendungen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
3DEXPERIENCE Conference 2024 | München
Autor Thema:  Graphikkarten für OpenGL-Anwendungen (1444 mal gelesen)
macki
Mitglied
MULTIPLEX-Ex-Konstrukteur


Sehen Sie sich das Profil von macki an!   Senden Sie eine Private Message an macki  Schreiben Sie einen Gästebucheintrag für macki

Beiträge: 243
Registriert: 30.11.2001

erstellt am: 04. Mrz. 2002 14:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo miteinander,

hier und anderswo im CAD-Forum gibt es immer wieder die Frage nach geeigneten Graphikkarten für dieses oder jenes Programm.
Was sich daran anschließt ist zwar oft viel Diskussionsstoff:

-Diese Karte ist gut und diese ist schlecht...
-Nein umgekehrt...
-Finger weg von Spielekarten...
-Nein, Spielekarten sind auch gut, aber die und die Profikarte sind mies...
usw., usw...

Anfangen kann damit aber genauso oft nichts.

Da ich selbst nicht nur 3D-Anwender bin, sondern selbst auch 3D-Programme unter Verwendung von OpenGL und C++ erstelle und daher vielleicht näher an der Hardware (Graphikkarte + Treiber) dran bin, will ich hier ein wenig mit Hilfe von Hintergrundinfos zur Thematik und zur Aufklärung beisteuern.
Obwohl ich vieles nur oberflächlich ankratzen werde, wird das ganze doch ziemlich lang. Ich möchte aber nicht noch weiter kürzen, da sonst die Problematik wieder nicht ganz verstanden werden kann.


Was ist OpenGL?
Um 2D- und 3D-Objekte, welche innerhalb eines Programmes erstellt wurden, darzustellen, bedient man sich heute üblicherweise zweier APIs: DirectX und OpenGL. Da DirectX von Microsoft nur für Windows-Systeme entwickelt worden ist, hat sich als Industrie-Standard OpenGL durchgesetzt. Dieses läuft nicht nur unter Windows. OpenGL(wie auch DirectX) stellt dabei eine Sammlung von Befehlen dar (Open Graphics Library), die der Programmierer, besser gesagt sein Programm nutzen kann, um die 3D-Objekte von der Graphikkarte erzeugen zu lassen. Es stellt somit die Schnittstelle zwischen Programm und Graphikkarte dar.

Was ist eine API?
Eine API ist eine Festlegung/Definition, wie die Befehle einer Schnittstelle zu heißen haben, welches die Übergabeparameter zu den einzelnen Befehlen sind und was der einzelne Befehl zu erzeugen hat.
Vor allem letzterer Punkt ist wichtig. Der gleiche Befehl hat auf jedem System das gleiche zu erzeugen.
Die Festlegungen der API geschehen bei OpenGL von einem unabhängigen Konsortium (Architecture Review Board = ARB), zu dem derzeit SGI als die Urmacher von IRIS-GL und weiterhin 3DLabs, Apple, ATI, Compaq, Dell, Evans $ Sutherland, Hewlett-Packard, IBP, Intel, Microsoft, NVidia und Sun Microsystems angehören.  Nur was hier verabschiedet wird, hat Gültigkeit und die OpenGL-Definitionen sind absolut eindeutig und zu 100% festgelegt.

Was ist ein Treiber?
Der Treiber stellt nun die softwareseitige Umsetzung der API dar und wird daher vom Graphikkartenhersteller bzw. vom Graphikprozessorhersteller erstellt, damit mit entsprechendem Befehl die Graphikkarte auch das tut, was in der API festgelegt ist.


Damit ist alles an Hintergrundinformationen, gegeben was zur weiteren Betrachtung notwendig ist.
Wo also liegen die Probleme?

Zuerst kann es Hardwareprobleme geben:
1. Einige Graphikkarten benötigen soviel Strom, daß das eingebaute Netzteil nicht genügend zu Verfügung stellt, wenn der Graphikprozessor auf volle Leistung geht. In diesem Moment schmiert dann das ganze System ab. Hier gilt es die notwendige Leistung/Watt beim GraKa-Hersteller zu erfragen.
2. Weiterhin gibt es Unverträglichkeiten zwischen einzelnen Motherboards und Graphikkarten. Auch hier ist beim GraKa-Hersteller nachzufragen.

Zum guten Schluß noch die Treiberproblematik:
Für die Insider: Ich bleibe hier zum Teil ziemlich oberflächlich. Wenn also etwas im Detail nicht ganz korrekt formuliert ist, so ist dies mit der Absicht geschehen, nicht noch tiefer vordringen zu müssen. Dies ist für den Anwender eigentlich eh uninteressant.
3. So eindeutig die OpenGL-API ist, so schwierig scheint es wohl zu sein, die Treiberumsetzung zu gewährleisten. Dabei muß nicht jeder OpenGL-Befehl beherrscht werden. Kann ein Befehl nicht umgesetzt werden, weil die Graphikkarte diese Leitung/Funktion nicht bietet, so hat der Befehl einfach nicht beachtet zu werden. Auch eine Fehlbedienung durch den Programmierer ist ziemlich unwahrscheinlich, da OpenGL hauptsächlich nur aus Schaltzuständen besteht. Wird ein unsinniger Parameter übergeben, so hat OpenGL den Befehl nicht auszuführen. Alles eindeutig festgelegt.
Hierzu ist noch zu sagen, daß es für den vollwertigen OpenGL-Treiber einen Namen gibt. Dieser nennt sich OpenGL-ICD = Installable Client Driver. Um diesen bedienen zu können, muß eine Graphikkarte zum Beispiel mindestens 32MB Graphikkartenspeicher haben, da sonst gewisse Befehle nicht durchführbar sind.

Nochmals gilt es zu sagen: Alles eindeutig festgelegt. Und trotzdem kriegen die GraKa-Hersteller das nicht hin. Ich jedenfalls kenne bisher keinen OpenGL-Treiber, der die API 100% fehlerfrei umsetzt.
Mal sind sie besser, mal wieder schlechter und dann wieder besser. Aber immer tut das eine oder andere nicht.

Die GraKa-Hersteller wissen das und hier liegt auch der Hund mit den Spielekarten begraben. Eine Spielekarte ist grundsätzlich nicht ungeeignet. OpenGL kennt da keine Unterschiede. Nur die Treiber werden bei Spielkarten eben mit aktuellen und anspruchsvollen 3D-Spielen getestet, entwickelt und korrigiert. Es kann allerdings gut sein, daß dabei ein Treiber herauskommt, der seine Fehler dort hat, wo sie in eine 3D-CAD-Anwendung überhaupt nicht stören. Oder gerade erst recht.
Umgekehrt sollte es bei 3D-CAD-Karten so sein, daß die Treiber mit CAD-Anwendungen getestet und entwickelt worden sind. Sicherheit bezüglich Fehlerfreiheit bringt das aber auch nicht, wie sich das aus Beiträgen zeigt. Dies liegt unter anderem auch daran, daß die GraKa-Hersteller die Treiber nicht mehr selbst entwickeln, sondern zum größten Teil vom Graphikprozessorhersteller übernehmen. Und was der testet, steht wieder auf einem anderen Blatt.

Bezüglich der Graphikprozessor-Hersteller kann noch folgendes gesagt werden:

ATI hat generell immer auch sehr günstige Karten/Prozessoren hergestellt. Da aber nicht Karte/Prozessor das schwierige ist, sondern ein korrekter Treiber, scheint klar zu sein, wo hier billig ist.

Nvidia hat die ersten günstigen Karten mit halbwegs vernünftigen OpenGL-ICD herausgebracht. Selbst Profikarten waren damals zum Teil erheblich schlechter oder leistungsschwächer. Bestimmt auch ein Grund für deren gigantische Entwicklung.


Und jetzt das traurige Fazit:
Sofern Punkt 1. und 2. beachtet worden sind, gilt es immer noch:
Jede Karte muß in jedem System getestet werden.
Auch ich habe dies bei meinen Programm-Entwicklungsrechnern so durchführen müssen. Denn schließlich muß ich mir immer sicher sein, daß gegebenenfalls die GraKa den Fehler einer Darstellung erzeugt und nicht meine Programme. Die letztendlich benutzten Karten haben bei meinem System dann auch bei 3D-CAD-Programmen in Tests nie mit Instabilitäten reagiert oder sonst irgendwie versagt.
Für das neue System mit SWXSolidWorks bei meinem zukünftigen Arbeitgeber werd' ich also wieder genau so vorgehen müssen.

Damit also viele gute Nerven beim Testen
Markus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tray
Mitglied
 Konstrukteur


Sehen Sie sich das Profil von tray an!   Senden Sie eine Private Message an tray  Schreiben Sie einen Gästebucheintrag für tray

Beiträge: 81
Registriert: 22.02.2002

erstellt am: 04. Mrz. 2002 19:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für macki 10 Unities + Antwort hilfreich

Hallo Macki,

Echt ein guter Beitrag, wird bestimmt vielen geholfen haben ( mich eingeschlossen !), man sieht ja wie oft es, besonders in der letzten Zeit, Fragen zu diesem Thema gibt!

tray

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jot-we
Mitglied
CAD'ler


Sehen Sie sich das Profil von jot-we an!   Senden Sie eine Private Message an jot-we  Schreiben Sie einen Gästebucheintrag für jot-we

Beiträge: 141
Registriert: 06.02.2002

HP xw6600 2xXeon 3,0GHz, 8 GB RAM, WIN 7 Prof. SP1, NVIDIA FX 4600 768 MB, SWX2011 SP5.0

erstellt am: 05. Mrz. 2002 08:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für macki 10 Unities + Antwort hilfreich

Hallo Macki,

auch von mir ein danke, ist gut einmal etwas hinter die Kulissen schauen zu können.

------------------
So denn,

Jörg

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Konstrukteur (m/w/d) Sondermaschinenbau
Leidenschaft für technologischen Fortschritt ausleben? Dabei sein, wenn Innovationen Wirklichkeit werden? Bei FERCHAU suchen wir Menschen mit dem gleichen Anspruch: als Expert:innen für unseren Kunden. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen und für alle Branchen und übernehmen Verantwortung für komplexe Entwicklungsprojekte. Als Berufseinsteiger:in unterstützt du deine Kolleg:innen mit neuen Ideen und festigst dein Wissen durch praktische Erfahrungen....
Anzeige ansehenKonstruktion, Visualisierung
gismo
Mitglied
SWX Support


Sehen Sie sich das Profil von gismo an!   Senden Sie eine Private Message an gismo  Schreiben Sie einen Gästebucheintrag für gismo

Beiträge: 1047
Registriert: 05.03.2001

erstellt am: 05. Mrz. 2002 08:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für macki 10 Unities + Antwort hilfreich

Hi macki,
auch von mir ein dickes Lob für diesen Artikel. Schon interessant zu erfahren, was hinter OpenGL eigentlich steckt, und wie das alles zusammenhängt.
 

------------------
Viele Grüße aus dem Schwarzwald

gismo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz