Erkennen der GPU mit einem Browser und Javascript

8

Ich muss herausfinden, ob ein Benutzer eine Website mit der Grafikkarte auf der webgl-Blacklist mit Chrome durchsucht:

Zypern

Insbesondere muss ich wissen, ob sie ATI-Karten verwenden. Das Projekt, das ich mit THREE.js mache, erzeugt ein sehr hässliches Rendering (die Zeilen sind nicht geglättet), wenn es in Chrome auf einer ATI-Karte angezeigt wird, und ich möchte eine Alternative bereitstellen.

Ich weiß, dass es einen Post-Effekt gibt, der die Linien verwischt, aber das Ergebnis mit der Art Direction ist noch schlimmer.

    
Evanbbb 02.11.2012, 14:01
quelle

2 Antworten

3

Versuchen Sie Folgendes:

%Vor%

Was Sie haben, ist ein Test, ob AA verfügbar ist. Diese Methode funktioniert in Three.js. Ich habe versucht, Chrome und seine speziellen Seiten zu betrachten (chrome: // gpu etc), aber diese Daten in ein beliebiges js-Skript zu bekommen, ist nicht möglich.

Die Verwendung von FXAA ist nicht so schlecht, solange die Liniendicke bei 1,6 liegt. Sonst bekommt man nicht genug Linie, um sich zu vermischen. FXAA eignet sich hervorragend für Szenen, in denen viel los ist, aber wenn die Szene hauptsächlich aus Linien besteht, tendiert sie dazu, die Linien zu sehr in den Hintergrund zu blenden.

Die beste Antwort dafür wäre FXAA und der Ansatz hier:

Ссылка

Dies verwendet einen Geometrieshader ja, aber früher erwähnt es die Verwendung eines Vertex-Shaders, um das gleiche Ergebnis zu erhalten. Dies würde wahrscheinlich viel schönere Linien geben.

Hoffe das hilft! : D

    
Oni 07.11.2012, 13:53
quelle
1

Die OpenGL-Aufrufe, die normalerweise verwendet werden können, um die Informationen herauszufinden, sind für diesen Zweck in WebGL nutzlos, da der Browser die Zeichenfolgenwerte nicht richtig verarbeitet: Ссылка Allerdings gibt es eine Erweiterung WEBGL_debug_renderer_info , die verwendet werden könnte, aber Die aktuelle Browserunterstützung ist unbekannt, und da sie als Sicherheitsrisiko gekennzeichnet wurde, ist sie nicht problemlos zu verwenden (möglicherweise ist ein Debug-Flag oder eine Benutzeraufforderung erforderlich).

Es ist auch ein bisschen übel, einfach z.B. für "ATI-Karten", da sich die Treiber verbessern oder das Problem bei einigen der Karten nicht vorhanden ist. (Dies entspricht der berüchtigten Browser-Sniffing- oder Feature-Erkennung.)

Daher ist es am besten, einen kleinen Test zu machen, wie in den Kommentaren vorgeschlagen.

  

Ich weiß, dass es einen Post-Effekt gibt, der die Linien verwischt, aber das Ergebnis mit der Art Direction ist noch schlimmer.

Wenn Sie HorizontalBlurShader und VerticalBlurShader meinen, dann sollten Sie FXAAShader ausprobieren, bei dem es sich um einen Anti-Aliasing-Filter für den Bildschirmbereich handelt, anstatt nur das gesamte Bild zu verwischen.

    
Tapio 05.11.2012 08:31
quelle

Tags und Links