Quale tecnologia può eseguire il rendering di ambienti 3d su scala media in un browser Web [chiuso]

5

Ho intenzione di creare un'applicazione web che mostri gli ambienti 3d che possono essere esplorati trascinandoli (con un dito o un mouse a seconda della piattaforma). L'app web renderizza gli ambienti 3D dei siti di sviluppo inclusi contorni, luoghi di condutture idriche, edifici ecc.

Sto cercando di decidere quale tecnologia / librerie usare per creare un'app web che funzioni su Android-Web-Browser, iOS-Safari, IE9, Safari, Firefox e Chrome. E anche quale tecnologia fornirà velocità nello sviluppo. Capisco che questo è 'chiedere la mia torta e mangiarlo anch'io' / 'chiedere la luna' ma non conosco tutte le tecnologie là fuori - quindi potrebbero esserci librerie avanzate che possono renderizzare Ambienti 3D su molti browser Web inclusi quelli principali di smart phone e non li conosco.

Il rendering 3d non sarebbe un edificio o un'acqua con effetti molto dettagliati, ma piuttosto semplici rappresentazioni 3d di questi oggetti. L'ambiente sarebbe navigabile trascinandolo e si potrebbe visualizzare il paesaggio a strati (visualizzare solo le curve di livello, visualizzare solo le condotte sotterranee, visualizzare solo i tubi di fognatura, ecc.).

Ci sono delle librerie 3d per i browser web là fuori? C'è un modo per eseguire OpenGL (o OpenGL ES) attraverso un browser web?

Quale tecnologia utilizzeresti se realizzassi questo tipo di app / web app che dovrebbe funzionare su desktop Windows, Android, iOS e WindowsPhone?

C'è qualche tecnologia che non sono riuscito a menzionare che sarebbe un bene per questo tipo di progetto?

Mi sto orientando verso un'app Web guidata dal browser perché ottengo quella capacità multipiattaforma (dove funziona anche su linux e MacOS usando browser web compatibili). Conosco anche le trasformazioni CSS3 che possono creare cubi che possono ruotare nello spazio 3d (NOTE funziona solo per i browser WebKit - quindi no IE :(). Ma non so se CSS3 sia abbastanza robusto da rendere interi ambienti 3d ? Pensi che potrebbe? Forse potrei usare le tele HTML5 per questo? Le mappe di Google possono creare mappe 3d personalizzate?

    
posta JakeM 11.04.2012 - 07:13
fonte

3 risposte

6

Come ha detto Raynos, WebGL è un modo per fornire funzionalità 3D in un browser. Gli svantaggi sembrano essere che ci sia molto poco o nessun supporto IE, e ho anche sentito di persone che hanno difficoltà con diverse implementazioni tra i vari browser. Inoltre, non sono sicuro che WebGL "fornirebbe velocità di sviluppo", ma suppongo che dipenda da quanto sia familiare con i concetti 3D e OpenGL.

Ho trovato questo articolo sul sito dev di Opera per essere uno dei migliori introduzioni a WebGL, anche se potrebbe essere un po 'obsoleto ormai.

Un'altra alternativa potrebbe essere Unity 3D , che ha un lettore web supportato sui principali SO e browser desktop (modifica: Linux escluso, AFAIK) , ma deve essere installato come plugin. Ciò proibirebbe il suo utilizzo come tecnologia sui siti rivolti al pubblico, dal momento che perderebbe la maggior parte dei tuoi utenti proprio lì. Inoltre, non penso che abbiano il supporto per i browser smart phone, ma hanno le funzionalità di esportazione app nativa per iOS e Android (quindi, codifichi una volta, e compili per le diverse piattaforme). Se i tuoi utenti pagheranno principalmente clienti, penso che ci sia la possibilità che siano disposti a installare il web player o le app native, ma dovrai fare quella chiamata. Non è possibile ottenere un ambiente di sviluppo 3D molto più rapido, tuttavia, Unity 3D è un motore di gioco estremamente fluido con molte cose fatte per te, immediatamente.

    
risposta data 11.04.2012 - 08:17
fonte
1

Se sei disposto a dilettarti in Flash, c'è Papervision3d open-source. Probabilmente accelererebbe lo sviluppo, ma ancora una volta, questo significa problemi con i dispositivi mobili (almeno iOS). C'è qualcosa chiamato Flash Media Server per contrastarlo, ma non posso garantire se funzionerebbe correttamente in un'applicazione interattiva.

In termini di supporto su più piattaforme, la tela HTML5 è probabilmente la soluzione migliore. Ci sono librerie 3d disponibili, ma non le conosco abbastanza da offrire un suggerimento.

    
risposta data 11.04.2012 - 11:02
fonte
0

La soluzione migliore è probabilmente un'applet Java (o eventualmente Java Webstart). Java ha Java3D per il rendering 3D e può persino utilizzare l'accelerazione HW . Lo svantaggio è che è necessario un plugin Java (corrente), ma al momento non ci sono soluzioni senza un plugin.

A lungo termine, HTML5 + WebGL è probabilmente la soluzione migliore, ma soprattutto WebGL è ancora in Alpha e non è realmente pronto per la produzione.

    
risposta data 11.04.2012 - 11:12
fonte

Leggi altre domande sui tag