Wie funktioniert Direct3D in einem Browser?

9

Ich bin auf 3D-Spiele gestoßen, die in einem Browser spielbar sind. Für die Arbeit muss ein Plugin installiert sein. Ich denke, das Plugin erstellt ein D3D-Fenster im Browser.

Wie würde ich etwas Ähnliches implementieren?

Huang F. Lei
quelle
interessante Frage
Notabene

Antworten:

8

Unity Web Player (für Windows) kann sowohl DirectX als auch OpenGL in einem Fenster verwenden (es abstrahiert jedoch Ihren Zugriff auf diese APIs).

Ein anderer Ansatz wäre die Implementierung eines DirectX-Plugins mit ActiveX (für Internet Explorer) oder NPAPI (für andere Browser).

Wenn Sie NPAPI verwenden, erhalten Sie beim Start Ihres Plugins ein Fensterhandle, in dem Sie alles zeichnen können, was Sie möchten (einschließlich eines D3D-Fensters). Wenn Sie diesen Weg gehen, führen Sie im Wesentlichen systemeigenen Code auf den Clients-Computern aus.

CiscoIPPhone
quelle
Beachten Sie, dass der NPAPI auf dem Weg zur Abwertung ist. Daher wird empfohlen, dass neue Web-Spiele andere Technologien wie WebGL verwenden (das zunehmend gut unterstützt wird und keine zusätzlichen Plugins erfordert)
DMGregory
5

Das Spiel, das Sie spielen, verwendet möglicherweise WebGL http://en.wikipedia.org/wiki/WebGL oder etwas Exotischeres wie ein Firefox-Plugin, aber ich glaube nicht, dass Sie Maschinencode in ein Firefox-Plugin einbetten können (ich bin es) nicht sicher, das wäre eine kleine Sicherheitslücke).

Unity implementiert eine Web-Plugin-Version ihrer Engine, und anscheinend tun sie dies mit ActiveX. Ich weiß nicht, ob es auf einem Mac implementiert ist ..., frage ich mich allerdings.

Der beste Weg, um herauszufinden, wie dieses Spiel, das Sie spielen, eine 3D-API oder ein anderes Plugin verwendet, besteht darin, in der HTML-Quelle der Seite nach Objekten oder ActiveX oder anderen zu suchen.

Jokoon
quelle
Warum die Abwahl?
CiscoIPPhone
4
Für den lächerlichen Vorschlag können Sie nicht "Maschinencode in ein Firefox-Plugin einbetten". Der gesamte Sinn von Plugins besteht darin, Webinhalte mit einem Satz "nativen" Codes zu ergänzen.
Nun, wir können immer noch die Wörterbucheinträge für Addon, Erweiterung, Plugin, Mod usw. diskutieren. Es ist immer noch besser, genau zu
sagen,
4
Und "Plugin" ist genau das, was seit Netscape Navigator 2 auf die Ausführung von Code ohne Sandbox (nativ oder anderweitig) auf dem Client-Computer Bezug genommen hat.
3
Netscape Navigator 2, sprechen Sie von einem Auto, einer Art SUV? Ich sehe keinen Zusammenhang mit der Frage ...
Jokoon