Novos renderizadores para GTK
(blog.gtk.org)Novos renderizadores para GTK
- Dois novos renderizadores para GL e Vulkan foram adicionados ao GTK.
- Eles foram nomeados reutilizando os nomes existentes "ngl" e "vulkan".
- São construídos a partir da mesma base de código e por isso também são chamados de renderizadores "unificados".
Fonte única
- Os dois renderizadores são construídos a partir da mesma fonte e projetados com um modelo que segue a API do Vulkan.
- Incluem abstrações para cobrir as diferenças entre Vulkan e GL.
- Isso permite compartilhar infraestrutura como travessia do grafo de cena, manutenção de transformações e cache de texturas e glifos.
- Há possibilidade de expansão para um renderizador baseado em Metal no macOS ou em DirectX no Windows.
Detalhes de implementação
- O renderizador GL existente usa shaders simples e depende de renderização offscreen para conteúdos complexos.
- O renderizador unificado tem shaders por nó e usa shaders complexos que interpretam dados em buffers em vez de usar offscreen.
- O renderizador unificado é menos otimizado, mas consegue tratar corretamente uma variedade maior de árvores de nós de renderização ao priorizar correção e manutenção.
Novos recursos
- Antialiasing: o renderizador GL anterior tinha problemas de perda de detalhes, mas o renderizador unificado melhora isso com antialiasing.
- Escalonamento fracionário: o renderizador unificado consegue lidar corretamente com escala fracionária.
- Gradientes arbitrários: o renderizador unificado pode processar gradientes com um número ilimitado de pontos de cor.
- Dmabufs: o renderizador Vulkan pode criar dmabufs ao gerar texturas por meio da API
render_texture.
Pontos de atenção
- Nós
glshadernão são mais suportados. - Posições fracionárias: o novo renderizador posiciona objetos na localização exata.
- Problemas de driver: o novo renderizador usa os drivers gráficos de formas novas e diferentes, então podem surgir problemas.
É mais rápido?
- Por enquanto, o novo renderizador não é mais rápido.
- O renderizador GL existente é otimizado para velocidade, enquanto o novo renderizador oferece novos recursos e maior precisão.
- Em benchmarks não oficiais, o renderizador Vulkan mostra desempenho semelhante ao do renderizador GL existente.
Novo padrão
- No snapshot 4.13.6 anunciado recentemente, o renderizador ngl foi definido como novo padrão.
- Esta é uma medida experimental, e se surgirem problemas é possível voltar ao renderizador GL existente.
Planos futuros e possibilidades
- O novo renderizador é uma boa base para implementar tratamento adequado de cores, incluindo HDR, renderização de paths na GPU, renderização fora da thread principal e melhorias de desempenho.
Resumo
- O novo renderizador traz recursos interessantes, e mais funcionalidades devem ser adicionadas.
- É pedido que as pessoas testem o novo renderizador e enviem feedback sobre seu funcionamento.
Opinião do GN⁺
- O novo renderizador representa um avanço importante ao oferecer opções de renderização mais precisas e variadas para desenvolvedores.
- A abordagem unificada entre Vulkan e GL tem potencial para melhorar a compatibilidade de renderização em diferentes plataformas no futuro.
- Esse avanço técnico deve contribuir para melhorar a experiência do usuário e elevar a qualidade visual dos aplicativos.
1 comentários
Comentários do Hacker News
wgpu.rs, é possível obter DirectX e Metal de graça.