Recomendaciones de la biblioteca 3D para visualización interactiva de datos espaciales?

Nuestro software produce una gran cantidad de datos que se georreferencian y registran con el tiempo. Estamos considerando formas de mejorar la visualización, y mostrar los datos (procesados) en una vista 3D, dada su georreferenciación, parece una buena idea.

Estoy buscando las recomendaciones de SO sobre qué bibliotecas 3D son las mejores para usar como base al crear este tipo de visualizaciones en una aplicación de Windows basada en Delphi- / C ++ Builder. Agregaré una recompensa cuando pueda.

Los datoSe registra con el tiempo (horas a días) y está etiquetado con GPS. Por lo tanto, tenemos una gran cantidad de datos siguiendo un camino a lo largo del tiempo.s espacial: representa elementos 3D reales de la Tierra, como la tierra, o elementos 3D de objetos alrededor de la Tierra.Es un volumen alto: podríamos tener una nube de puntos, por ejemplo, de cientos de miles a millones de puntos. Los datos procesados pueden mostrarse como superficies creadas a partir de estas nubes de puntos.

Desde eso, puede ver que una visualización 3D interactiva basada en el espacio parece un buen enfoque. Estoy imaginando algo en el que puede navegar fácil y rápidamente por el espacio, y los datos se cargarán o se generarán sobre la marcha, dependiendo de lo que esté viendo. Preferiría que no intentemos escribir nuestra propia biblioteca 3D desde cero; para algo como esto, tiene que haber buenas bibliotecas existentes desde las que podamos trabajar.

Entonces, espero una biblioteca que admita:

buena navegación (¿la biblioteca se basa únicamente en las rotaciones de Euler, por ejemplo? ¿Puede 'elegir' objetos para rotar o moverse fácilmente?); GPU modernas (el renderizado solo con sombreador está bien; ser capaz de enganchar en la tubería para escribir sombreadores que asignen valores a colores y cambien dinámicamente sería genial; piense en los valores de datos dados un color a través de una tabla de búsqueda de colores); datos / objetos dinámicos (los datos se pueden agregar a medida que se graban; y si el volumen de datos es demasiado alto, deberíamos poder ubicarlos y recrearlos, y solo mostrar un subconjunto sensible para que lo que esté mirando la ventana del usuario esté allí en pantalla, pero se pueden cargar / regenerar otros datos, preferiblemente de forma asíncrona, o al menos rápidamente a medida que el usuario navega. Obviamente, la creación de datos depende de nosotros, pero una biblioteca que tenga ganchos para este tipo de cosas sería genial.) y tecnológicamente,works con Delphi / C ++ Builder y VCL. Bibliotecas

Hay dos bibliotecas principales que he considerado hasta ahora: estoy buscando opiniones bien informadas sobre estas u otras bibliotecas que no he considerado.

1. @Mono de Fueg

Esta es la nueva biblioteca de interfaz de usuario de Embarcadero, que solo está disponible en XE2 y versiones posteriores. Nuestra aplicación se basa en el VCL y nos gustaría alojar esto en una ventana VCL; eso parece ser oficialmente incompatible perounoficialmente funciona bien, o está disponible a través de terceros.

La combinación del marco UI y el marco 3D con sombreadores, etc. suena genial. Pero no sé qué tan compleja es la biblioteca, qué soporte tiene para los datos que no son un objeto simple como un cubo o esfera, yhow bien diseñado es. Ese último enlace tiene críticas importantes sobre el lado 3D de la biblioteca: lo suficientemente grave, no estoy seguro de que valga la pena en su estado actual al momento de escribir para una aplicación 3D no trivial.

Vale la pena intentar escribir una nueva ventana de visualización en nuestra aplicación VCL usando FireMonkey?

2. @ GLScene

GLScene es un marco 3D OpenGL muy conocido para Delphi. Nunca lo he usado yo mismo, así que no tengo experiencia sobre cómo funciona o está diseñado. Sin embargo, creo que se integra bien en las ventanas VCL y admite sombreadores y GPU modernas. No sé cómo funciona su gráfico de escena o navegación o qué tan bien se pueden implementar los datos dinámicos.

u lista de características menciona específicamente algunas cosas en las que estoy interesad, como rotación / movimiento fácil, objetos de procedimiento (lo que implica que los datos dinámicos son fáciles de implementar) y funciones auxiliares para la selección. Parece que los sombreadores son solo Cg (no GLSL u otro lenguaje no específico del proveedor). También es compatible con "soporte de imagen polimórfica para texturizar (permite muchos formatos y texturas de procedimiento), fácilmente extensible", eso puede significar muchos formatos de imagen , o puede indicar algo donde la textura se puede cambiar dinámicamente, como para el mapeo dinámico de colores.

¿A dónde desde aquí?

Estas son las dos únicas bibliotecas 3D principales que conozco para Delphi o C ++ Builder. ¿Me he perdido alguno? ¿Hay ventajas y desventajas que desconozco? ¿Tiene alguna experiencia en el uso de cualquiera de estos para este tipo de propósito, y qué peligros debemos tener en cuenta o características que debemos conocer y utilizar?

Actualmente utilizamosEmbarcadero RAD Studio 2010 y la mayoría de nuestro software está escrito en C ++. Tenemos pequeñas cantidades de Delphi y podemos considerar la actualización de IDEs, pero es muy probable que esperemos hasta que se publique el compilador de C ++ de 64 bits. Por esa razón, una biblioteca que funciona en RS2010 podría ser la mejor.

Gracias por tu aporte :) ¡Estoy buscando respuestas de alta calidad, así que agregaré una recompensa cuando pueda!

Respuestas a la pregunta(8)

Su respuesta a la pregunta