|
"¿Por qué las mallas de triángulos están en formato ASCII? Son muy grandes! Un formato binario sería mucho más pequeño. Si POV-Ray puede leer imágenes binarias, ¿Por qué no puede leer datos binarios de las mallas? "
No es tan sencillo como se cree.
No se puede comparar los datos binarios de las mallas con archivos de imágenes. Si, las imágenes son datos binarios, pero hay una gran diferencia: Los archivos de imágenes usan números enteros (a menudo bytes, en algunos casos enteros de 16-bit), lo que pue ser leído fácilmente en cualquier sistema.
Sin embargo, las mallas utilizan números de punto flotante.
Puede resultar un poco sorprendente que no sea nada fácil representarlos en formato binario para que puedan leerse en cada posible sistema.
Es muy importante tener en cuenta que POV-Ray está pensado para ser un programa muy portable, que debería ser virtualmente compilable en cualquier sistema con un decente compilador C. No es sólo un galimatías; POV-Ray SE USA en una amplia variedad de sistemas operativos y architecturas computacionales, incluyendo Windows, MacOS, Linux, (Sparc) Solaris, Digital Unix y otros.
La representación interna de números de punto flotante puede diferir en número de bits y en bits reservados para cada parte del número dentro del tipo de datos en sistemas diferentes. También está el tristemente famosos problema de big-endian/low endian (esto es, que aunque los números de punto flotante fueran idénticos en dos sistemas diferentes, estarían escritos en orden diferente al escribirse en un archivo).
Si trata de hacer a la ligera un parche que lea y escriba números de punto flotante en formato binario, hallará muy rápidamente que su parche sólo funciona solamente en ciertas arquitecturas (ej, PC) y no en otras.
A fin de almacenar números de punto flotante para que puedan ser leídos en cualquier sistema, tiene que almacenarlos en un formato universal. ASCII es mejor que ningún otro.
Sin embargo, no todo es mala suerte con la compresión de datos de malla. Ha sido hecho antes. Por ejemplo, revise:
»http://www.geocities.com/ccolefax/pcm.html
POV-Ray 3.5 soporta un nuevo tipo de malla, llamada mesh2, que almacena los datos en un formato más compacto (similar al usado en el formato PCM que se menciona en el enlace anterior, pero con un poco más de 'sintaxis' alrededor).
|