Yotsuba Shader
Español

Novedades de Yotsuba Shader

Descubre las últimas novedades del lenguaje, el compilador y las tecnologías relacionadas.


Recibe cada cambio

Deja tu correo y recibirás un aviso de news@yotsubashader.com cuando haya una versión nueva o un cambio importante. Nada más. Tu dirección se guarda en la lista de contactos del proyecto y se usa solo para estos avisos, y puedes responder "baja" en cualquier momento.

¿Prefieres no usar correo? Sigue los cambios con un lector de feeds: versiones (Atom) · todos los cambios (Atom). En GitHub también puedes elegir Watch → Custom → Releases.

Errores de shader en tu IDE

Los diagnósticos de shaders en vivo y las comprobaciones por backend están previstos. Los diagnósticos C# actuales están disponibles mediante el playground.

El repositorio todavía no implementa YotsubaTargets ni un analizador de compatibilidad de backends. Consulta la documentación para conocer la API actual y los flujos previstos.

Diagnósticos de shaders en tu IDE

Un paquete por sintaxis

Los vocabularios de HLSL, GLSL, MSL, SPIR-V y WGSL ahora son paquetes separados: YotsubaShader.HlslSyntax, YotsubaShader.GlslSyntax, YotsubaShader.MslSyntax, YotsubaShader.SpirvSyntax y YotsubaShader.WgslSyntax.

Utiliza YotsubaShader.HlslSyntax para los atributos HLSL y YotsubaShader.HlslSyntax.Resources para recursos. El atributo numerado Location pertenece a YotsubaShader.SpirvSyntax. Son proyectos fuente; aquí no se confirma su disponibilidad publicada en NuGet.

Elegir una sintaxis

Haz más con cinco sintaxis

Las sintaxis HLSL, GLSL, MSL, SPIR-V y WGSL ahora comparten el mismo modelo semántico. Elige los nombres que tu equipo conoce; el compilador los resuelve a los mismos valores integrados de la IR.

El frontend asocia SV_Position, gl_Position, position, BuiltIn_Position y @builtin_position al mismo slot de posición, y hace lo mismo con el índice de vértice. Los slots de interfaz declarados con [Location(n)] funcionan en todas las sintaxis.

Elegir una sintaxis

Texturas y samplers en el lenguaje

Describe una textura con precisión: dimensión, tipo de componente, uso, profundidad, formato, arreglos y multimuestreo. Los samplers tienen su propio atributo.

TextureAttribute recibe un TextureDimension (D1, D2, D3, Cube) y un TextureComponentTypes (Float, Int, Uint), con ajustes opcionales Usage, Depth, Format, Arrayed y Multisampled. La IR lleva los mismos campos para que cada backend pueda traducirlos con fidelidad.

Texturas y samplers

Descubrimiento de shaders basado en Roslyn

El frontend encuentra tus shaders por símbolo, no por texto, así que los alias, las directivas using y los nombres de atributo largos o cortos funcionan sin problema.

ShaderDiscovery.Find recorre los tipos de tu proyecto, devuelve cada clase con sus puntos de entrada en orden de declaración y expone los parámetros y tipos de retorno al resto del compilador. Un conjunto de pruebas cubre el descubrimiento y el análisis.

Proceso de compilación

Atributos de recursos para cada sintaxis

Uniform buffers, storage buffers, texturas, samplers y slots de binding disponibles en cada sintaxis.

Cada sintaxis tiene sus propios atributos de recursos. SPIR-V utiliza DescriptorSet(n) y Binding(n) por separado; su marcador StorageBuffer no tiene una propiedad de modo de acceso.

Uniforms y storage buffers

Declaraciones de vectores y matrices más estrictas

Los tipos de vector declaran sus componentes con atributos, y las declaraciones no válidas fallan con excepciones claras.

Mezclar tipos de componente en un mismo vector lanza InconsistentVectorComponentTypeException; un tipo de componente no admitido lanza VectorComponentTypeNotValidException. Las matrices declaran sus columnas con [MatrixColumn].

Vectores, matrices y arreglos

Construcción de módulos SPIR-V 1.6

SPIR-V es un formato intermedio utilizado dentro del pipeline de compilación; los autores de shaders no necesitan construir sus módulos manualmente.

La tabla de operaciones se genera a partir de la gramática oficial de Khronos, así que cada instrucción, capacidad, modelo de ejecución y decoración está disponible como un valor tipado.

Proceso de compilación

Gratis y de código abierto bajo la MS-PL

Yotsuba Shader se publica bajo la Microsoft Public License (MS-PL): úsalo en cualquier proyecto, comercial o no, sin pagar nada.

Eso incluye motores de juegos, frameworks y editores propietarios. Los shaders que escribes y los binarios que se generan a partir de ellos son tuyos.

Licencias