Verwenden Sie Javascript, um die CPU- / GPU-Leistung des Geräts zu ermitteln?
(Die Frage ist nicht spezifisch für three.js, aber ich werde sie als Beispiel verwenden.)
Ich habe in letzter Zeit three.js verwendet, um eine Web-App-Oberfläche zu entwickeln, und ein paar nette Fallbacks zwischen WebGL und Canvas-Renderer (für Desktop-Browser) geschrieben.
Aber jetzt wird das Problem, wie man die Gerätefähigkeit richtig erkennt. Das Problem besteht aus zwei Aspekten:
Browser-Funktionen (statische Funktionen wie webgl / canvas): Dies wird weitgehend in der Web-Community mithilfe der einfachen Funktionserkennung gelöst.Gerätefähigkeit: Dies ist der schwierige Teil. Ohne direkten Zugriff auf die Hardwareinformationen des Geräts müssen wir feststellen, ob wir auf weniger hardwareintensiven Code zurückgreifen sollten.Ein bemerkenswertes Beispiel: Firefox Mobile / Opera Mobile behauptet, WebGL zu unterstützen, ist jedoch fehlerhaft oder durch Gerätehardware eingeschränkt.
Ein paar Workarounds, die ich mir bisher ausgedacht habe:
Verwenden Sie eine gemeinsame Funktion als Leistungsindikator - Das Touch-Gerät hat im Allgemeinen weniger leistungsfähige Hardware. Der Nachteil: Es ist nicht zukunftssicher.Schwarze Liste bekannter fehlerhafter Browser / Gerät - UA-Schnüffeln ist unvermeidlich und kann schwierig zu warten sein.Leistungstest - daher die Frage, ob es neben dem Ausführen des Codes und der Framerate bessere Optionen gibt?Oder muss es nicht so schwer sein, gibt es noch andere Vorschläge?