{"id":113225,"date":"2024-01-29T12:50:31","date_gmt":"2024-01-29T10:50:32","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/v-gtk-dobavleny-novye-dvizhki-otrisovki-dlya-opengl-i-vulkan"},"modified":"2024-01-29T12:50:31","modified_gmt":"2024-01-29T10:50:32","slug":"v-gtk-dobavleny-novye-dvizhki-otrisovki-dlya-opengl-i-vulkan","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/v-gtk-dobavleny-novye-dvizhki-otrisovki-dlya-opengl-i-vulkan","title":{"rendered":"Novos motores de renderiza\u00e7\u00e3o para OpenGL e Vulkan foram adicionados ao GTK","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Os desenvolvedores da biblioteca GTK anunciaram a disponibilidade de dois novos motores de renderiza\u00e7\u00e3o \u2014 'ngl' e 'vulkan', que utilizam as APIs gr\u00e1ficas OpenGL (GL 3.3+ e GLES 3.0+) e Vulkan. Os novos motores est\u00e3o inclu\u00eddos na vers\u00e3o experimental do GTK 4.13.6. No ramo experimental do GTK, o motor ngl \u00e9 agora utilizado por padr\u00e3o, mas se problemas significativos forem encontrados na pr\u00f3xima vers\u00e3o est\u00e1vel 4.14, o antigo motor de renderiza\u00e7\u00e3o 'gl' ser\u00e1 reintegrado.    <\/p>\n<p>Os novos mecanismos s\u00e3o posicionados como unificados e constru\u00eddos a partir de uma \u00fanica base de c\u00f3digo. A ess\u00eancia da unifica\u00e7\u00e3o \u00e9 que a API Vulkan \u00e9 utilizada como base, sobre a qual foi criado um n\u00edvel de abstra\u00e7\u00e3o separado para OpenGL, levando em considera\u00e7\u00e3o as diferen\u00e7as entre OpenGL e Vulkan. Essa abordagem permitiu utilizar uma infraestrutura comum para ambos os mecanismos, para o processamento do gr\u00e1fico de cenas (scene graph), transforma\u00e7\u00f5es, cache de texturas e glifos. A unifica\u00e7\u00e3o tamb\u00e9m simplificou significativamente a manuten\u00e7\u00e3o da base de c\u00f3digo de ambos os mecanismos e a sua atualiza\u00e7\u00e3o e sincroniza\u00e7\u00e3o.     <\/p>\n<p>Ao contr\u00e1rio do antigo motor 'gl', que usava um shader simples separado para cada tipo de n\u00f3 de renderiza\u00e7\u00e3o (rendernode) e realizava a reclassifica\u00e7\u00e3o peri\u00f3dica dos dados durante a renderiza\u00e7\u00e3o fora da tela (offscreen), nos novos motores, em vez da renderiza\u00e7\u00e3o fora da tela, \u00e9 aplicado um shader complexo (ubershader), que interpreta os dados do buffer. Na sua forma atual, a nova implementa\u00e7\u00e3o ainda fica aqu\u00e9m da antiga em termos de otimiza\u00e7\u00f5es, j\u00e1 que nesta fase inicial, o foco principal est\u00e1 na corre\u00e7\u00e3o funcional e na simplicidade de manuten\u00e7\u00e3o.    <\/p>\n<p>Novos recursos que est\u00e3o ausentes no antigo motor 'gl':  <\/p>\n<ul>\n<li class=\"l\"> Anti-aliasing \u2014 permite manter pequenos detalhes e obter contornos mais suaves.    <center><img decoding=\"async\" alt=\"Novos motores de renderiza\u00e7\u00e3o para OpenGL e Vulkan foram adicionados ao GTK\" src=\"\/wp-content\/uploads\/2024\/01\/dc690b87095af7bca8d2826ebb3a9584.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>\n<li class=\"l\"> Cria\u00e7\u00e3o de gradientes arbitr\u00e1rios, nos quais pode ser utilizado qualquer n\u00famero de cores e suaviza\u00e7\u00e3o (o motor 'gl' suportava apenas gradientes lineares, radiais e c\u00f4nicos com 6 cores de parada).      <center><img decoding=\"async\" alt=\"Novos motores de renderiza\u00e7\u00e3o para OpenGL e Vulkan foram adicionados ao GTK\" src=\"\/wp-content\/uploads\/2024\/01\/331c81cddc35e00e08db425a38d90dca.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>\n<li class=\"l\"> Escalonamento fracion\u00e1rio (fractional scale), que permite definir valores de escala n\u00e3o inteiros, por exemplo, ao usar uma escala de 125% para uma janela de 1200\u00d7800, ser\u00e1 alocado um buffer de 1500\u00d71000, e n\u00e3o 2400\u00d71600 como no motor antigo.\n<li class=\"l\"> Suporte \u00e0 tecnologia DMA-BUF para uso de v\u00e1rias GPUs e desvio de opera\u00e7\u00f5es espec\u00edficas para outra GPU.\n<li class=\"l\"> Muitos n\u00f3s de renderiza\u00e7\u00e3o que apresentavam problemas na implementa\u00e7\u00e3o antiga agora s\u00e3o processados corretamente.  <\/ul>\n<p>As limita\u00e7\u00f5es dos novos motores incluem a falta de suporte para posicionamento em valores n\u00e3o inteiros (posi\u00e7\u00e3o fracion\u00e1ria) e n\u00f3s glshader, que eram bastante dependentes das caracter\u00edsticas do antigo motor, e dos quais a necessidade desapareceu ap\u00f3s a adi\u00e7\u00e3o de suporte a n\u00f3s com m\u00e1scaras (mask) e texturas com transpar\u00eancia. Tamb\u00e9m \u00e9 mencionada a possibilidade de surgirem problemas com drivers gr\u00e1ficos, devido \u00e0 mudan\u00e7a na forma de trabalhar com os drivers.      <\/p>\n<p>No futuro, com base no novo modelo unificado, n\u00e3o se descarta a cria\u00e7\u00e3o de motores de renderiza\u00e7\u00e3o que utilizem Metal no macOS e DirectX no Windows, mas a cria\u00e7\u00e3o de tais motores \u00e9 dificultada pelo uso de outras linguagens para shaders (nos motores 'ngl' e 'vulkan' foi utilizada a linguagem GLSL, portanto para Metal e Direct ser\u00e1 necess\u00e1rio duplicar os shaders ou usar uma camada baseada na ferramenta SPIRV-Cross).    <\/p>\n<p>Nos planos futuros, menciona-se o suporte a HDR e ferramentas para o gerenciamento correto de cores, suporte \u00e0 renderiza\u00e7\u00e3o em caminho (Path rendering) do lado da GPU, a capacidade de renderizar glifos, renderiza\u00e7\u00e3o fora do fluxo principal e otimiza\u00e7\u00e3o de desempenho para dispositivos mais antigos e de baixo desempenho. No estado atual, o desempenho do mecanismo 'vulkan' \u00e9 semelhante ao do antigo mecanismo 'gl'. O mecanismo 'ngl' tem desempenho inferior ao do antigo mecanismo 'gl', mas as m\u00e9tricas dispon\u00edveis s\u00e3o suficientes para renderiza\u00e7\u00f5es a 60 ou 144 FPS. Espera-se que a situa\u00e7\u00e3o mude ap\u00f3s a otimiza\u00e7\u00e3o.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=60515\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 GTK \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u043e \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u0432\u0443\u0445 \u043d\u043e\u0432\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 &#8212; &#171;ngl&#187; \u0438 &#171;vulkan&#187;, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 API OpenGL (GL 3.3+ \u0438 GLES 3.0+) \u0438 Vulkan. \u041d\u043e\u0432\u044b\u0435 \u0434\u0432\u0438\u0436\u043a\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u0443\u0441\u043a\u0430 GTK 4.13.6. \u0412 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0438 GTK \u0434\u0432\u0438\u0436\u043e\u043a ngl \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043d\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435 4.14 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":113226,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-113225","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 GTK \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u043e \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u0432\u0443\u0445 \u043d\u043e\u0432\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 - &quot;ngl&quot; \u0438 &quot;vulkan&quot;, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 API OpenGL (GL 3.3+ \u0438 GLES 3.0+) \u0438 Vulkan.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/news\/v-gtk-dobavleny-novye-dvizhki-otrisovki-dlya-opengl-i-vulkan\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412 GTK \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u043e\u0432\u044b\u0435 \u0434\u0432\u0438\u0436\u043a\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0434\u043b\u044f OpenGL \u0438 Vulkan | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 GTK \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u043e \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u0432\u0443\u0445 \u043d\u043e\u0432\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 - &quot;ngl&quot; \u0438 &quot;vulkan&quot;, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 API OpenGL (GL 3.3+ \u0438 GLES 3.0+) \u0438 Vulkan.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/v-gtk-dobavleny-novye-dvizhki-otrisovki-dlya-opengl-i-vulkan\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-01-29T10:50:32+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-01-29T10:50:32+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Novos motores de renderiza\u00e7\u00e3o para OpenGL e Vulkan foram adicionados ao GTK | ProHoster","description":"Os desenvolvedores da biblioteca GTK anunciaram a conclus\u00e3o de dois novos motores de renderiza\u00e7\u00e3o - \"ngl\" e \"vulkan\", que utilizam as APIs gr\u00e1ficas OpenGL (GL 3.3+ e GLES 3.0+) e Vulkan.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/v-gtk-dobavleny-novye-dvizhki-otrisovki-dlya-opengl-i-vulkan","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412 GTK \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u043e\u0432\u044b\u0435 \u0434\u0432\u0438\u0436\u043a\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0434\u043b\u044f OpenGL \u0438 Vulkan | ProHoster","og:description":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 GTK \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u043e \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u0432\u0443\u0445 \u043d\u043e\u0432\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 - &quot;ngl&quot; \u0438 &quot;vulkan&quot;, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 API OpenGL (GL 3.3+ \u0438 GLES 3.0+) \u0438 Vulkan.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/v-gtk-dobavleny-novye-dvizhki-otrisovki-dlya-opengl-i-vulkan","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-01-29T10:50:32+00:00","article:modified_time":"2024-01-29T10:50:32+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/113225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=113225"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/113225\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/113226"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=113225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=113225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=113225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}