Menos mal, ese era un título largo.
De cualquier manera, estoy haciendo esta pregunta, ya que me gusta pensar en varias cosas, y se me ocurrió que en realidad no hay capas simples de código abierto en la parte superior de GLSL, aunque solo sea para agregar cosas simples como incluye o funciones de uso común.
Como una especie de investigación, estoy haciendo esta pregunta, ya que mi conocimiento de tales lenguajes es minúsculo, por decir lo menos: conozco el lenguaje de sombreado de bgfx y el ShaderLab de Unity, pero realmente no sé qué logran, o por qué - ser un novato relativo a los gráficos por computadora.
Alternativamente, ¿cuál sería su lista de deseos para un lenguaje de sombreado como este? La mía hasta ahora incluye, cierta compatibilidad entre versiones, entradas "ocultas" opcionales que permiten acceder fácilmente a texturas en desplazamientos de píxeles o tamaños de imagen, etc. y probablemente pasa, por ejemplo, por un desenfoque gaussiano de dos pasos.
Pensamientos?
Respuestas:
Creo que es justo decir que la razón por la que hay tantas variaciones de nicho de GLSL / HLSL / Cg / whatnot es porque ningún lenguaje de programación es ni será una herramienta única para todos. Los problemas diferentes requieren herramientas diferentes, por lo que a veces vale la pena desarrollar una herramienta personalizada si va a dar sus frutos a largo plazo.
Stock GLSL es en sí mismo prácticamente inutilizable. Ni siquiera ha adquirido mucha estabilidad en las versiones, por lo que para un programa que se dirige a más de una versión de OpenGL, es necesario algún tipo de preprocesamiento. HLSL es un poco más estable en todas las versiones, pero una vez más, si se dirige a más de una versión D3D, será necesario trabajar para obtener una buena portabilidad.
El tipo de cosas que la gente suele hacer es más o menos lo que usted dijo, como agregar soporte para funciones de programación básicas como módulos y sintaxis uniforme en todas las versiones, o incluso portabilidad en diferentes API (GL / D3D) sin tener que volver a escribir el código del sombreador. Las cosas más sofisticadas incluyen sistemas de materiales completos o cosas como generar programas de sombreado sobre la marcha .
Los lenguajes de sombreado probablemente se volverán mejores y más genéricos en el futuro, incorporando cosas que hoy en día comúnmente se enrollan a mano como características principales. La nueva arquitectura GCN es una señal de eso. Por lo tanto, los lenguajes de sombreado serán más utilizables de inmediato, pero las soluciones personalizadas nunca desaparecerán porque solo hay mucho que puedes generalizar.
fuente