Das ist meine Meinung:
In erster Linie ist asm.js nicht wirklich gemeint mit der Hand geschrieben werden. Obwohl ich sage, dass es sicherlich möglich ist, es zu schreiben, da es einen Validator hat. Die unwirkliche Demo ist etwas, das in asm.js mit emscripten zusammengestellt wurde. Es muss auch nicht mit anderem Code außerhalb des kompilierten Codes interagieren. Es erzeugt also hochoptimierten Code, weil die unrealistische Demo bereits in C++ hoch optimierten Code ist. Er wird von einem Compiler optimiert und erhält dann einen weiteren Durchlauf von Optimierungen durch asm.js.
Zweitens, asm.js wird eigentlich nur von Firefox unterstützt. Obwohl alle anderen Browser es ausführen können, verursacht es immer noch eine Leistungseinbuße. Diese Strafe ist, wenn Sie asm.js Code vergleichen, der dasselbe wie normaler Javascript-Code tut. Suchen Sie einfach nach jsperf.com für Beispiele.
Okay, Dies sind einige allgemeine Richtlinien zu asm.js. Jetzt reden wir über Three.js.
Erstens, weil THREE.js mit Benutzercode interagieren muss, ist es nicht einfach, eine asm.js-Bibliothek zu schreiben, da es viele Einschränkungen (keine Objekte) gibt.
Zweitens, Three.js wird nicht viel Leistung eine ganze Menge in der Leistung für Berechnungen, wo asm.js ist stark zu gewinnen. Aber wird mehr von zukünftigen Updates von den Browsern gewinnen. (Zum Beispiel, die Erstellung von typeDarrays in Chrom, die jetzt ein Schmerzpunkt in THREE.Js ist, kommt bald. V8 issue)
Drittens, der Code in asm.js muss seinen eigenen Speicher verwalten. Das würde bedeuten, dass THREE.js einen Weg finden muss, große Apps mit begrenztem Speicher arbeiten zu lassen. Oder machen Sie jede Anwendung sehr speicherhungrig. Das Vergleichen der unwirklichen Demo mit three.js ist ein bisschen unfair, da three.js jedem erlaubt, 3D-Apps zu schreiben, während die unreale Engine eine hoch optimierte Engine für 3D-Spiele ist.
Wie Sie bemerkt haben, bin ich meistens gegen asm.js in three.js. Aber es ist zu früh, um zu sagen, was der beste Weg ist zu gehen. Es gibt eine hohe Wahrscheinlichkeit, dass asm.js schließlich einen Platz in three.js bekommt, aber für eine eingeschränkte Verwendung als Renderer-only zum Beispiel. Aber für asm.js gibt es noch zu viele ungelöste Fragen.
Aber wenn Sie asm.js verwenden und C++ verwenden möchten, dann empfehle ich emscripten, die verwendet wurde, um die irreale Demo zu erstellen.
Das ist natürlich meine Meinung.Aber ich denke, dass es etwas darstellt, was @ Mrdoob und @WestLangley im Sinn hatten. Und tut mir leid wegen der langen Post.
Dank Gero3, das ist genau das, was ich gesucht habe. Du hast tatsächlich vieles bestätigt, was ich dachte und erhoffte. Ich war etwas verwirrt wegen Chrom. Als ich in v22 getestet habe, hat das unwirkliche Demo den ganzen Browser kaputt gemacht, aber in Canary hat es funktioniert. Ich googelte, um zu sehen, ob es aufgenommen wurde und hörte eine Erwähnung davon - also nahm ich an, dass es hinzugefügt wurde. Aber wenn ich wieder nachgesehen habe, kann ich sehen, dass es nicht die Unterstützung hat. Ich nehme auch deinen Standpunkt zu Unreal v Three vollkommen zur Kenntnis. Drei ist in der Tat eine großartige Bibliothek und ich wollte nur sehen, was andere Gedanken über ASM und drei mit der Unreal Demo als mein Gesprächsthema waren. Danke nochmal! – Mat