ANARI, el estándar con él pretende unificar Khronos los motores de renderizado 3D
Hace pocos días Khronos, dio a conocer mediante una publicación el lanzamiento de ANARI 1.0, el cual define una API para motores de renderizado multiplataforma y tiene como objetivo unificar las interfaces de programación para la visualización de datos.
ANARI se posiciona como la primera API de motor de renderizado 3D independiente que cuenta con un amplio apoyo de la industria de los desarrolladores de visualización científica con integración en las principales aplicaciones de código abierto que incluyen VMD, VTK/ParaView y VisIt.
Sobre ANARI, se detalla que este proporciona una C-API (C99) con enlaces de tipo seguro en código C++ para crear árboles de objetos jerárquicos en memoria para representar completamente una escena 3D, geometría de superficie 3D y datos volumétricos.
Dentro de las principales funciones de ANARI, se destaca la compatibilidad con complementos para ampliar la funcionalidad de los motores de renderizado, asi como tambien el poder recibir información sobre la actualización de la escena en modo asíncrono, el trabajo eficiente con matrices en modo de copia cero (sin asignar memoria adicional, utilizando solo el búfer proporcionado inicialmente), asi como tambien el soporte de herramientas para renderizar en modo interactivo que se proporcionan.
Se menciona en la publicación de Khronos que ANARI ya ha sido implementando tanto por AMD, como Intel y NVIDIA, los cuales ya han preparado las implementaciones para sus motores de renderizado para que estos sean compatibles con el estándar, ademas de brindar acceso a sus motores de renderizado RadeonProRender, OSPRay y VisRTX.
Ademas de ello, se menciona que se espera que la nueva especificación simplifique en gran medida el desarrollo de aplicaciones que realicen la visualización de datos científicos. Es por ello que ANARI proporciona una funcionalidad de alto nivel lista para usar para crear escenas 3D en la memoria, lo que elimina la necesidad de escribir código de gráficos de bajo nivel.
“Históricamente, las aplicaciones de visualización requerían renderizadores escritos a medida, pero los rápidos avances en los algoritmos de renderizado, el hardware y las API de GPU de bajo nivel asociadas han hecho que sea cada vez más difícil para los expertos del dominio seguir el ritmo de los métodos de renderizado modernos”, dijo Jefferson Amstutz , Presidente del grupo de trabajo de ANARI e ingeniero de software sénior en NVIDIA.
Las aplicaciones que admiten ANARI pueden funcionar con cualquier motor de renderizado que proporcione esta API. La especificación se desarrolló de acuerdo con los principios de la construcción de estándares abiertos y tiene en cuenta los deseos de la comunidad (por ejemplo, en respuesta a las sugerencias de la comunidad, se agregó soporte para el formato glTF para usar materiales basados en la representación física).
“Como resultado de un esfuerzo de tres años de expertos líderes en la industria que trabajaron juntos en Khronos, ANARI ahora simplifica el desarrollo de aplicaciones de visualización 3D portátiles que utilizan motores de back-end para acceder a la representación de última generación. Agradecemos a la comunidad de visualización científica por su invaluable asistencia para refinar el diseño de ANARI, y ahora estamos emocionados de ver cómo otros dominios de aplicaciones aprovechan la primera API de motor de renderizado independiente del ecosistema y del proveedor de la industria”.
Finalmente, cabe mencionar que actualmente ya se ofrece un SDK abierto para el desarrollo de aplicaciones, el cual incluye capas de back-end que implementan funciones comunes, como el manejo de parámetros o la vida útil de los objetos, un conjunto de pruebas de conformidad basado en Python.
También hay un complemento Blender ANARI de prueba de concepto en el SDK de ANARI y la implementación de ANARI-USD de NVIDIA que permite que cualquier aplicación de ANARI genere resultados en USD para su uso en la plataforma Omniverse y como ya se menciono el soporte de ANARI está integrado en los paquetes de visualización de código abierto VMD, VTK/ParaView y VisIt.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.