2011-12-23 15 views
24

He estado jugando con WebGL un poco últimamente y realmente me gusta Three.js. Es realmente liviano y solo sirve como algo que hace que la mayoría de las llamadas GL sean un poco más fáciles, y proporciona una manera rápida de crear primativos básicos como una esfera.Three.js portado al código nativo?

Ahora, en tierra natal, parece que todos los frameworks quieren ser mucho más que eso. Cosas como Oolong, UDK, Unity, Cocos, etc. Hice un poco de googlear, y lo más parecido que pude encontrar fue iSGL3D pero no estoy completamente convencido de que sea la respuesta correcta.

¿Hay algo más similar a Three.js que esté escrito en C, C++ u Objective-C nativo que no puedo encontrar?

+1

¿Has mirado GLKit propia de Apple? Aunque es de nivel inferior a Three.js, sigue siendo un marco de trabajo muy agradable que simplifica sustancialmente el código de gráficos. – iceydee

Respuesta

8

Aquí es un puerto de tres a C++: https://github.com/jdduke/three_cpp

Core - 75% completa (TODO: Morph objetivos, sombras, soporte para plugins)

Extras - 5-10 % de avance (tODO: Casi todo)

ejemplos - 25% completas (POR HACER: Los ejemplos que involucran objetivos morph a)

3

Usted está pidiendo un motor gráfico estricto solamente, en la misma dirección que OpenGL (en comparación con DirectX, que una vez más quiere ser mucho más que eso). Aconsejaría Ogre3D for iPhone ya que la filosofía detrás de Ogre3d es ser un motor gráfico estricto.

El otro que viene a la mente es recientemente MoSync mobile sdk que ofrece excelente soporte OpenGL en una amplia gama de plataformas (aunque limitado, para mantener la portabilidad).

Si está más interesado en cargar sombreadores y hacer que el motor gráfico administre el resto, escogería Ogre3D para iPhone.

Siempre puede tomar la iniciativa (si tiene tiempo, por supuesto) de escribir la suya o comenzar con las que se mencionan aquí.

O puede usar un motor de JavaScript (JSAPI por ejemplo) en un editor de C++ y luego mover tres.js encima de eso. Esto es genial, ya que solo actualizará JSAPI y Three.js sin romper funcionalidades y su motor C++/JSThree se mantendrá actualizado con un mantenimiento mínimo.

¡Solo algunas ideas por supuesto!

+0

Ogre parece ser más pesado que iSGL3D :( – slf

+0

@slf: Sí, claro. Aunque en perspectiva, las generaciones nuevas y futuras de dispositivos (tegra> 2, A5> etc.) serán más adecuadas ya que OpenGL ES 2.0 se está convirtiendo en estándar en las plataformas móviles – namar0x0309

+0

Ogre ... muy, muy mala experiencia con él. Su instalación es un desastre (lo he intentado con Fedora, probablemente fue el peor evar de instalación de paquetes), e incluso su documentación no está completa/actualizado/preciso/nooby-friendly –

3

Aunque también preferiría ver un puerto de three.js para iOS, recientemente tropecé con iSGL3d (http://isgl3d.com/).

Este proyecto sirve una manera simple y encapsulada de crear y manipular un gráfico de escena OpenGL por código. De lo contrario, algunos frameworks de codificación creativos como cinder, iSGL3d vienen en puro Objective C.

Funciona bien para mí todavía.

+0

¿No es esto exactamente lo que pregunté en mi pregunta? – slf

+1

+1 para libcinder, el cinder :: gl está cerca de lo que estoy hablando, pero es st tipo de carne para mi gusto – slf

0

Si está buscando estrictamente facilidad de uso, recomiendo encarecidamente Panda3D. Es multiplataforma (Windows, Unix, Mac), realmente fácil de usar, tiene una gran cantidad de documentación y una buena comunidad a su alrededor.

1

Three_cpp es bueno, pero ha dejado de actualizarse desde hace 3 años. No es compatible con la versión VS a continuación 2012.

Ogre es otra buena opción, que es muy similar a la lógica de Threejs :) ¡Y el sitio oficial ofrece un tutorial muy detallado, por lo que es fácil de usar!

+0

Imo avoid Ogre3D – mouse