Nuevos renderizadores para GTK
(blog.gtk.org)Nuevos renderizadores para GTK
- Se agregaron a GTK dos nuevos renderizadores para GL y Vulkan.
- Fueron nombrados reutilizando los nombres existentes, "ngl" y "vulkan".
- Se construyen a partir de la misma fuente, por lo que también se les llama renderizador "unificado".
Fuente única
- Ambos renderizadores se construyen desde la misma fuente y están diseñados con un modelo que sigue la API de Vulkan.
- Incluyen abstracciones para cubrir las diferencias entre Vulkan y GL.
- Esto permite compartir infraestructura como el recorrido del grafo de escena, el mantenimiento de transformaciones y el caché de texturas y glifos.
- Existe la posibilidad de extenderlo a un renderizador basado en Metal en macOS o a uno basado en DirectX en Windows.
Detalles de implementación
- El renderizador GL existente usa shaders simples y depende del renderizado fuera de pantalla para contenido complejo.
- El renderizador unificado tiene shaders por cada nodo y usa shaders complejos que interpretan datos desde búferes en lugar de renderizado fuera de pantalla.
- El renderizador unificado está menos optimizado, pero al priorizar la precisión y el mantenimiento puede manejar correctamente una mayor variedad de árboles de nodos de renderizado.
Nuevas funciones
- Antialiasing: el renderizador GL existente tenía problemas de pérdida de detalle, pero el renderizador unificado mejora esto mediante antialiasing.
- Escalado fraccional: el renderizador unificado puede manejar correctamente escalas fraccionales.
- Gradientes arbitrarios: el renderizador unificado puede procesar gradientes con una cantidad ilimitada de puntos de color.
- Dmabufs: el renderizador Vulkan puede crear dmabufs al generar texturas mediante la API
render_texture.
Puntos a tener en cuenta
- Los nodos
glshaderya no son compatibles. - Posiciones fraccionales: el nuevo renderizador coloca los objetos en posiciones exactas.
- Problemas de drivers: el nuevo renderizador usa los drivers gráficos de una forma nueva y distinta, por lo que pueden surgir problemas.
¿Es más rápido?
- Por ahora, el nuevo renderizador no es más rápido.
- El renderizador GL existente está optimizado para velocidad, pero el nuevo renderizador ofrece nuevas funciones y mayor precisión.
- En benchmarks no oficiales, el renderizador Vulkan muestra un rendimiento similar al del renderizador GL existente.
Nuevo valor predeterminado
- En el snapshot 4.13.6 anunciado recientemente, el renderizador ngl se estableció como nuevo valor predeterminado.
- Esta es una medida experimental, y si surgen problemas se puede volver al renderizador GL existente.
Planes y posibilidades futuras
- El nuevo renderizador es una buena base para implementar manejo correcto del color, incluido HDR, renderizado de trazados en la GPU, renderizado fuera del hilo principal, mejoras de rendimiento y más.
Resumen
- El nuevo renderizador tiene funciones interesantes y se agregarán más en el futuro.
- Se invita a probar el nuevo renderizador y enviar comentarios sobre si funciona correctamente.
Opinión de GN⁺
- El nuevo renderizador es un avance importante que ofrece a los desarrolladores opciones de renderizado más precisas y variadas.
- El enfoque unificado entre Vulkan y GL tiene el potencial de mejorar la compatibilidad de renderizado en distintas plataformas en el futuro.
- Este avance técnico contribuirá a mejorar la experiencia de usuario y a elevar la calidad visual de las aplicaciones.
1 comentarios
Comentarios en Hacker News