Was ist der Unterschied zwischen getContext ('webgl') und getContext ('3d')?

9

Ich fange an, WebGL zu lernen, und weil ich einige alte Tutorials gefunden habe, weiß ich nicht, was der richtige Weg in 2014 ist?

Ich habe die <canvas> (basic) gestartet und in Tutorials sagen sie so etwas wie:

  

Verwenden Sie getContext('2d') und wenn Sie WebGL verwenden möchten, dann setzen Sie 3d anstelle von 2d

Aber jetzt, wo ich lerne, habe ich Tutorials gefunden, die über getContext('webgl') und nicht getContext('3d') sprechen.

Haben Sie die Syntax geändert?

Und es gibt dies Artikel, der sagt, dass es kein echtes 3D gibt, aber sie benutzen nur Ray Casting?!

    
Abdelouahab 30.03.2014, 23:32
quelle

1 Antwort

17

Mozilla Developer Netowrk (MDN) Dokumente sagt dies:

  

getContext (in DOMString contextId) RenderingContext Gibt einen Zeichenkontext im Zeichenbereich oder null zurück, wenn die Kontext-ID nicht unterstützt wird. Mit einem Zeichnungskontext können Sie auf der Leinwand zeichnen. Beim Aufruf von getContext mit " 2d " wird ein Objekt CanvasRenderingContext2D zurückgegeben, während es mit " experimental-webgl " (oder " webgl ") gibt ein WebGLRenderingContext -Objekt zurück. Dieser Kontext ist nur für Browser verfügbar, die WebGL implementieren.

Ergebnisse: | Context | Chrome (webkit) | Firefox (gekko) | | ------------------ | ------------------------ | ------------------------ | | 2d | CanvasRenderingContext2D | CanvasRenderingContext2D | | 3d | null | null | | webgl | WebGLRenderingContext | WebGLRenderingContext | | experimental-webgl | WebGLRenderingContext | null |

Ich empfehle, auf dem webgl Wiki nachzulesen: Ссылка

Hier finden Sie den vollständigen Abschnitt Was ist der empfohlene Weg zum Initialisieren von WebGL? : (Obwohl ich schlage vor, Sie lesen es direkt aus dem Wiki , falls es sich ändert!)

Wie wird WebGL empfohlen?

Es wird empfohlen, dass Sie nach Erfolg oder fehlgeschlagener Initialisierung suchen. Wenn WebGL nicht initialisiert werden kann, wird empfohlen, zwischen Fehlern zu unterscheiden, da der Browser WebGL nicht unterstützt und aus anderen Gründen fehlschlägt. Wenn der Browser WebGL nicht unterstützt, zeigen Sie dem Benutzer einen Link zu " Ссылка ". Wenn WebGL aus einem anderen Grund fehlgeschlagen ist, weisen Sie dem Benutzer einen Link zu " Ссылка "

zu

Sie können bestimmen, ob der Browser WebGL unterstützt, indem Sie nach dem Vorhandensein von WebGLRenderingContext suchen.

%Vor%

Wenn der Browser WebGL unterstützt und canvas.getContext ("webgl") null zurückgibt, ist WebGL aus einem anderen Grund als dem Browser des Benutzers fehlgeschlagen (keine GPU, nicht genügend Arbeitsspeicher usw.)

%Vor%

Hinweis: Sie müssen überprüfen, ob der Browser WebGL unterstützt, um zu wissen, dass das Abrufen von null aus canvas.getContext () bedeutet Es gibt einen Wrapper, der all dies für Sie erledigt.

Beispiel mit dem Wrapper

%Vor%     
ThorSummoner 31.03.2014, 00:17
quelle

Tags und Links