2017-11-15 2 views
0

Ich weiß, dass opengl ist eine Bibliothek, die bestimmte Aufgaben/Aufrufe (wie Shading) auf der GPU für schnellere Berechnungen (hardwarebeschleunigt) ausgeführt werden können. Ich habe im Internet darüber gelesen und frage mich, ob Anrufe bei opengl ohne ein GPU-Geschenk laufen. Zum Beispiel hat jemand in diesem Forum (https://www.gamedev.net/forums/topic/638883-will-opengl-3d-games-run-in-a-pc-without-a-dedicated-video-card/) erwähnt, dass es als Software-Emulation laufen kann. Kann jemand damit sprechen?Können OpenGL-Anrufe ohne eine GPU ausgeführt werden?

+2

[Mesa] (https://en.wikipedia.org/wiki/Mesa_ (computer_graphics) #Software_Renderer). – genpfault

Antwort

3

Ja, wenn es alles nur davon abhängt, ob der Hersteller des Gerätes OpenGL-Treiber für sein System schreiben oder nicht. Alle OpenGL-Funktionen können ohne Grafikkarte implementiert werden, allerdings mit einer Leistungseinbuße.

1

Genau genommen ist OpenGL keine Bibliothek sondern nur eine Programmierschnittstelle (API). Die spezifischen Details, wie diese API auf einer bestimmten Maschine implementiert wird, bleiben offen und stehen den Systemimplementierern zur Verfügung. Es könnte ein Software-Rasterizer sein, es könnte eine Schnittstelle zu dedizierter Hardware sein.

OpenGL war Teil des ABI (d. H. Der Reihe von Dingen, die sicher sein können, dass Anwendungen auf einem System verfügbar sind) von Windows, LSB4/Desktop (Linux Standard Base/Desktop-Anforderungen) und MacOS. Als solches muss das System sicherstellen, dass es immer einen Weg gibt, zumindest eine minimale Menge an OpenGL-Funktionalität zu haben (wir sprechen OpenGL-1.x hier), selbst wenn es keine Hardwarebeschleunigung dafür gibt.

Es sollte beachtet werden, dass all diese ABIs gegen die Annahme, writting, dass es Dinge an ein Anzeigegerät zu machen, verwendet wird:

Die Implementierung von Windows Ausweich Software-Rasterizer (die übrigens schrecklich langsam ist) Rendering erlaubt zu GDI-Bitmaps, aber keine Unterstützung für PBuffers; und denke nicht einmal über Framebuffer-Objekte nach.

Die Mesa Software Rasterizer ist ziemlich OpenGL-3.x-Funktion abgeschlossen.

Verwandte Themen