Que tecnologia pode renderizar ambientes 3d de média escala em um navegador da Web [fechado]

5

Eu pretendo fazer um aplicativo da web que exiba ambientes 3D que podem ser navegados arrastando (com um dedo ou mouse dependendo da plataforma). O aplicativo da Web renderizará ambientes 3D de sites de desenvolvimento, incluindo contornos, locais de tubulações de água, edifícios, etc.

Estou tentando decidir qual tecnologia / bibliotecas usar que criará um aplicativo da web que funcionará no Android-Web-Browser, no iOS-Safari, no IE9, no Safari, no Firefox e no Chrome. E também que tecnologia proporcionará velocidade no desenvolvimento. Eu entendo que isso é 'pedindo meu bolo e comendo também' / 'pedindo pela lua' mas eu não conheço todas as tecnologias por aí - então pode haver bibliotecas avançadas que podem renderizar Ambientes 3D em muitos navegadores web, incluindo os principais telefones inteligentes e eu não sei deles.

A renderização em 3D não seria edifícios altamente detalhados ou água com efeitos, mas simples representações em 3D desses objetos. O ambiente seria navegável arrastando-se e você poderia ver a paisagem em camadas (ver apenas linhas de contorno, visualizar apenas tubulações subterrâneas, ver apenas canos de esgoto, etc.).

Existem bibliotecas 3d para navegadores da web por aí? Existe uma maneira de executar o OpenGL (ou OpenGL ES) por meio de um navegador da Web?

Qual tecnologia você usaria se estivesse criando esse tipo de app / aplicativo da Web que funcionasse em computadores, Windows, Android, iOS e WindowsPhone?

Existe alguma tecnologia que eu não tenha mencionado que seria bom para este tipo de projeto?

Eu estou tendendo para um Browser Driven Web App, porque eu tenho essa capacidade de plataforma cruzada (onde ele ainda funciona no Linux e MacOS usando navegadores da web compatíveis). Também conheço as transformações CSS3 que podem criar cubos que podem girar no espaço 3D (o NOTE funciona somente para navegadores WebKit - portanto, não o IE :(). Mas não sei se o CSS3 é robusto o suficiente para renderizar ambientes 3D inteiros "Você acha que poderia? Talvez eu poderia usar canvas HTML5 para isso? Mapas do Google podem criar mapas 3D personalizados?

    
por JakeM 11.04.2012 / 07:13
fonte

3 respostas

6

Como Raynos mencionou, WebGL é uma maneira de fornecer funcionalidade 3D em um navegador. As desvantagens parecem ser que há muito pouco ou nenhum suporte ao IE, e também ouvi falar de pessoas com dificuldades com diferentes implementações em navegadores. Eu também não tenho certeza se WebGL iria "fornecer velocidade no desenvolvimento", mas eu acho que isso depende de como você está familiarizado com conceitos 3D e OpenGL.

Eu encontrei este artigo no site de desenvolvimento do Opera para ser um dos melhores introduções ao WebGL, embora possa estar um pouco desatualizado até agora.

Outra alternativa pode ser o Unity 3D , que tem um player da Web compatível com os principais sistemas operacionais e navegadores de desktop (editar: excluídos pelo Linux, AFAIK) , mas precisa ser instalado como um plugin. Isso proibiria seu uso como tecnologia em sites voltados para o público, já que você perderia a maioria de seus usuários ali mesmo. Além disso, eu não acho que eles tenham suporte para os navegadores de smartphones, mas eles têm instalações de exportação de aplicativos nativos para iOS e Android (assim, você codifica uma vez e compila para as diferentes plataformas). Se seus usuários forem os principais clientes pagantes, acho que há uma chance de que eles estejam dispostos a instalar o player da Web ou aplicativos nativos, mas você terá que fazer essa ligação. Você não pode obter um ambiente de desenvolvimento em 3D muito mais rápido, no entanto, o Unity 3D é um mecanismo de jogo extremamente sofisticado, com muitas coisas feitas para você, fora da caixa.

    
por 11.04.2012 / 08:17
fonte
1

Se você estiver disposto a se interessar pelo Flash, existe o Papervision3d de código aberto. Isso provavelmente aceleraria o desenvolvimento, mas, novamente, isso significa problemas com dispositivos móveis (iOS, pelo menos). Existe algo chamado Flash Media Server para combater isso, mas não posso garantir se funcionaria bem em um aplicativo interativo.

Em termos de suporte em várias plataformas, a tela HTML5 é provavelmente sua melhor opção. Existem bibliotecas 3d disponíveis, mas não estou familiarizado com elas o suficiente para oferecer uma sugestão.

    
por 11.04.2012 / 11:02
fonte
0

Sua melhor aposta é provavelmente um applet Java (ou possivelmente o Java Webstart). O Java tem Java3D para renderização em 3D e pode até mesmo usar a aceleração HW . A desvantagem é que você precisa de um plugin Java (atual), mas atualmente não há soluções sem um plugin.

A longo prazo, HTML5 + WebGL é provavelmente sua melhor aposta, mas especialmente o WebGL ainda está em Alpha e não está realmente pronto para produção.

    
por 11.04.2012 / 11:12
fonte