Como escrever um motor de gráficos 3D que pode ser usado em JavaScript? [fechadas]

StackOverflow https://stackoverflow.com/questions/1651145

  •  22-07-2019
  •  | 
  •  

Pergunta

I têm-se centrado recentemente sobre desenhando algumas formas legais em um 5.0 tela HTML. E eu quero escrever um motor gráfico 3D que pode ser usado em JavaScript. Eu já terminei um cubo giratório. E eu quero terminar as formas como neste exemplo: http://gyu.que.jp/jscloth /touch.html .

Quem já tentou neste campo?

Foi útil?

Solução

Editar: Esta pergunta foi feita há muitos anos. Desde então, todos os navegadores exceto IE ( por agora? ) adicionou suporte para WebGL. Você pode ver muitas amostras aqui: http://www.chromeexperiments.com/webgl/

Eu realmente não quero desanimá-lo, mas para escrever uma 3D motor em JavaScript, você tem que ser extremamente bem versado e íntimo na matemática / lógica por trás de renderização 3D.

Desde que você não declarou sua experiência atual, eu estou supondo que você não ... caso em que eu sugiro fortemente que você começar em outro lugar. Por exemplo, XNA Game Studio . Você escreve o código em C #, e já há um monte de APIs bem escrito que resumo a maioria (mas definitivamente não todas) das partes duras. Mas é uma ótima maneira de aprender um monte dos conceitos e matemática por trás de renderização 3D.

Se, no entanto, você está morto em conjunto começando com JavaScript, já existe uma grande quantidade de recursos na Internet sobre isso. Por exemplo este :-)
http://dev.opera.com / artigos / view / 3d-jogos-com-canvas-and-raycasting-part /

Boa sorte!

Outras dicas

Eu escrevi um motor de Javascript 3D cerca de um ano atrás, na época em que o Google lançou seu navegador Chrome com o motor V8 Javascript super rápida. Infelizmente uma vez que nenhum navegador expõe uma API gráfica 3D (como OpenGL ou Direct3D), este motor Cabo de amarração bitmap imagens sobre a página da Web a fim de alcançar triângulos mapeados-textura afins (que são inferiores aos triângulos mapeados-textura perspectiva correta), que é bastante lento.

Eu usei o meu motor de Javascript 3D para construir um 3D biblioteca modelo . (Dica: não ver o primeiro modelo - é o maior e mais lento para a vista!). O desempenho é cerca de 10 quadros por segundo para um modelo 3D com cerca de 1000 triângulos no Google Chrome no meu PC.

Eu considerei abrir o código do código fonte para este motor, mas eu nunca tenho tempo para fazer isso. Se houver interesse suficiente, eu vou colocar o código fonte para o Google Code.

Meu projeto de estimação atual é uma motor Silverlight 3D e modelo espectador , que é um software engine 3D (ou seja, o meu C # código tem controle sobre a cor de cada pixel). Silverlight 3 é muito mais rápido do Javascript, mas não é padrão, um navegador-addon e ainda não suporta hardware 3D gráficos acelerados (sem muita sobrecarga).

Update:. No tempo desde que eu escrevi originalmente este post, eu atualizei o espectador modelo Silverlight mencionado acima para usar o Silverlight 5 e aceleração de hardware 3D

Como cerca de ligação de uma biblioteca 3D pré-existente para JavaScript? Como OpenGL.

V8-GL expõe 80% do API OpenGL para JavaScript:

text alt

Eu não sei como iria escrevendo um. Mas aqui estão alguns que existem.

Para escrever um você precisa primeiro decidir se você vai apoiar Excanvas, então IE pode usá-lo, ou não.

Isso irá definir alguns limites sobre o que você pode fazer se você apoiar IE.

Sua melhor aposta é apenas para começar com a criação de algumas formas primárias, e muito provavelmente você vai querer ter certos primitivos que tudo pode ser construído a partir de, por isso, você pode querer olhar para OpenGL ou DirectX, em seus primitivos.

Uma vez que você tem, e você pode movê-los no espaço 3D, então você vai querer começar a olhar para a adição de câmeras, mas isso vai ser relativamente fácil em comparação com a etapa 1.

Infelizmente, tudo isso é muito pesado em matemática, então você vai ter um enorme impacto no desempenho se você criar várias 3D objetos que têm de mudar frequentemente.

Eu acho que a melhor aposta é esperar, pois, no final de 2007 havia blogs para Firefox e Opera para ter suporte 3D na tela: http://starkravingfinkle.org/blog/2007/11/animating-with-canvas/

A razão é que se ele será embutido no navegador, em seguida, a maior parte do trabalho pesado será feito, esp se ele suporta algum sabor de OpenGL.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top