inmensia |
Prueba de Render
Juan Mellado, 17 Junio, 2011 - 18:58
Sigo cerrando temas. Esta vez le ha tocado el turno a la demo que tenía pendiente de hacer para demostrar el uso de js-openctm. Al final he tirado por lo más básico y he hecho un pequeño visor en WebGL para un modelo 3D con más de un millón y medio de triángulos. Demo online: La demo carga un modelo 3D en formato .ctm con 842.718 vértices y 1.685.024 triángulos, para ser exactos. El fichero pesa 6 megas, que aunque es muy poco para los estándares actuales, hace que mi hosting se resienta bastante. Al final tarda más en descargar desde la web que en descomprimir. Podría haber puesto un modelo más pequeño, pero es con un fichero de ese tamaño cuando se aprecia realmente el trabajo que realiza la librería. El modelo en su formato original ocupaba seis veces más. La malla del modelo es realmente densa. Aunque en el vídeo parezca lo contrario, el modelo no tiene ninguna textura aplicada, sólo color en los vértices. La gracia está en que es un modelo obtenido directamente de una persona de verdad mediante un escanner 3D de la empresa Cyberware. Supongo que de algún empleado "voluntario". Mi código de pruebas original que use cuando estaba desarrollando la librería creo que resultaría de poca utilidad a alguien ajeno a mí, así que he optado por adaptar uno de los tutoriales de learningwebgl.com, que es para WebGL lo que NeHe para OpenGL. Aunque me ha obligado a meter una dependencia en la demo con glmatrix, una librería JavaScript para operar con vectores y matrices. Para terminar, una cuestión técnica acerca de la implementación. En Firefox he podido (debido) utilizar un web worker para procesar el fichero en segundo plano, mientras que en Chrome no he podido porque actualmente no es capaz de traspasar Typed Arrays desde y hacía un web worker. No tiene implementada todavía la serialización de este tipo de objetos en JavaScript. He encontrado un issue al respecto, donde dice que están esperando que se defina mejor como tiene que ser el paso de este tipo de parámetros en la especificación. El inconveniente es que obliga a realizar el proceso en el hilo principal de la página, y en la mayoría de ordenadores es bastante probable que aparezca el típico mensaje avisando de que un proceso JavaScript está tardando más de la cuenta. ¿No encontró lo que buscaba?Utilice el buscador para encontrar más páginas en esta web o en toda Internet. |