Questo è il mio parere:
In primo luogo, asm.js non è veramente destinata a essere scritto a mano. Anche se dico che è certamente possibile scriverlo perché ha un validatore. La demo irreale è qualcosa che è stato compilato in asm.js con emscripten. Inoltre non ha bisogno di interagire con altri codici al di fuori del codice che viene compilato. Quindi genera codice altamente ottimizzato a causa del fatto che la demo irreale è già un codice altamente ottimizzato in C++, viene ottimizzata da un compilatore e quindi ottiene un'altra serie di ottimizzazioni attraverso asm.js.
In secondo luogo, asm.js è attualmente supportato solo da firefox. Anche se tutti gli altri browser possono eseguirlo, ma nella maggior parte dei casi incorre in una penalizzazione delle prestazioni. Questa penalità è se si confronta il codice asm.js che fa lo stesso del normale codice javascript. Basta cercare jsperf.com per alcuni esempi.
Ok, questo è alcune linee guida generali su asm.js. Ora parliamo di Three.js.
Innanzitutto, poiché THREE.js deve interagire con il codice utente, non è facile scrivere una libreria asm.js a causa delle numerose restrizioni (nessun oggetto).
In secondo luogo, Three.js non otterrà molte prestazioni in termini di prestazioni per i calcoli in cui asm.js è forte. Ma otterrà di più dai futuri aggiornamenti dai browser. (ad esempio, la creazione di typedarrays in chrome che ora è un punto dolente in THREE.js è in arrivo presto V8 issue)
In terzo luogo, il codice in asm.js deve gestire la propria memoria. Il che significa che THREE.js deve trovare un modo per far funzionare app di grandi dimensioni con memoria limitata. O rendere ogni applicazione molto affamata di memoria.
In quarto luogo, confrontando la demo irreale con three.js è un po 'ingiusto perché three.js tenta di consentire a tutti di scrivere app 3D mentre il motore irreale è un motore altamente ottimizzato per i giochi 3D.
Come hai notato, sono principalmente contro asm.js in three.js. Ma è perché è troppo presto per dire qual è il modo migliore per andare. C'è un'alta probabilità che asm.js possa ottenere un posto in three.js alla fine ma per un uso più limitato come renderer-only per esempio. Ma per ora ci sono ancora troppe domande irrisolte su asm.js.
Ma se si desidera utilizzare asm.js e utilizzare C++, quindi si consiglia di emscripten che è stato utilizzato per costruire la demo irreale.
Questa è ovviamente la mia opinione.Ma penso che rappresenti in qualche modo ciò che @ Mrdoob e @WestLangley avevano in mente. E mi dispiace per il lungo post.
Grazie Gero3, è esattamente quello che stavo cercando. In realtà hai confermato molto di ciò che pensavo e speravo. Ero un po 'confuso su Chrome. Quando ho provato nella v22, la demo irreale ha rotto l'intero browser, ma a Canary ha funzionato. Ho cercato su Google per vedere se fosse stato incluso e sentito parlare di esso - quindi ho pensato che fosse stato aggiunto. Ma dopo aver guardato di nuovo, posso vedere che non ha il supporto. Inoltre, esprimo il tuo punto di vista su Unreal v Three. Tre è davvero una grande libreria e volevo solo vedere quali erano gli altri pensieri su ASM e tre usando la demo di Unreal come mio punto di discussione. Grazie ancora! – Mat