Resumen#
Yotsuba Shader es un framework de shaders y un compilador para C#. Tu equipo escribe shaders con los tipos, las estructuras y las bibliotecas de su propio proyecto, descritos con atributos. El compilador interpreta sus interfaces y etapas, las baja a una representación intermedia compartida y genera la salida para el backend seleccionado.
La sintaxis con la que escribes no determina el destino de salida. HLSL, GLSL, MSL, SPIR-V y WGSL ofrecen vocabularios de escritura equivalentes; elige el que mejor conozca tu equipo.
Temas#
Empieza aquí#
Entender Yotsuba Shader
Descubre cómo una clase de C# se convierte en un shader: el lenguaje, la representación intermedia y el compilador.
Más información
Escribir tu primer shader
Declara entradas y salidas de vértice y escribe una etapa de vertex y una de fragment que pasen un color.
Más información
Reutilizar tus tipos y bibliotecas
Anota tipos compatibles de tu proyecto y conoce los límites actuales de las bibliotecas de shaders referenciadas.
Más información
Tipos para motores y frameworks
Declaraciones actuales de vectores, matrices, texturas y samplers para autores de motores.
Más información
Parámetros de shader tipados para tu motor
Un ejemplo de diseño del lado del motor, sin asumir una API generada de parámetros en ejecución.
Más información
Elegir una sintaxis
Las sintaxis HLSL, GLSL, MSL, SPIR-V y WGSL expresan la misma intención. Elige la que tu equipo conoce.
Más información
Etapas e interfaces#
Etapas de shader
Marca métodos con [ShaderStage] para declarar puntos de entrada de vertex, fragment y compute.
Más información
Slots de interfaz y ubicaciones
Describe cómo fluyen los datos hacia y desde una etapa con [Location] y los atributos integrados.
Más información
Recursos y tipos#
Uniforms y storage buffers
Declara buffers y bindings utilizando los namespaces de recursos y constructores que existen actualmente.
Más información
Texturas y samplers
Declara texturas y samplers, describe con exactitud qué tipo de imagen es cada una y enlázalas en la sintaxis en que escribes.
Más información
Vectores, matrices y arreglos
Usa escalares, vectores, matrices, structs y arreglos en un shader, y aprende cómo cada tipo de C# se convierte en un tipo de GPU.
Más información
En tu juego#
Compilación#
Pipeline de compilación
Etapas actuales de compilación y límites entre las APIs implementadas y la integración prevista con el build.
Más información
Generar binarios de shaders
Flujo previsto para compilar shaders con el proyecto y disponibilidad actual de la generación binaria.
Más información
Diagnósticos de shaders en tu IDE
Comprobaciones C# y excepciones disponibles, con los diagnósticos de shaders previstos para el IDE identificados explícitamente.
Más información
Transpilar desde SPIR-V
Utiliza las clases reales Parser y los compiladores de backend de YotsubaShaderCross. WGSL sigue previsto.
Más información
Referencia de atributos#
Valores integrados en todas las sintaxis
El mismo valor integrado, escrito en las sintaxis HLSL, GLSL, MSL, SPIR-V y WGSL.
Más información
Atributos de recursos en todas las sintaxis
Uniform buffers, storage buffers, texturas, samplers y slots de binding en cada sintaxis.
Más información
Atributos de la sintaxis HLSL
Cada atributo de la sintaxis HLSL: semánticas de valores del sistema como SV_Position y numthreads, además de cbuffer y register para recursos.
Más información
Atributos de la sintaxis GLSL
Cada atributo de la sintaxis GLSL: valores integrados gl_*, layout(set, binding), uniform y buffer.
Más información
Atributos de la sintaxis MSL
Cada atributo de la sintaxis MSL: nombres de atributos de MSL como position, vertex_id y thread_position_in_grid, además de buffer(n), texture(n) y sampler(n).
Más información
Atributos de la sintaxis SPIR-V
Cada atributo de la sintaxis SPIR-V: nombres BuiltIn de SPIR-V (BuiltIn_Position), DescriptorSet y Binding.
Más información
Atributos de la sintaxis WGSL
Cada atributo de la sintaxis WGSL: el vocabulario @builtin(...), @group y @binding de WebGPU, escrito con identificadores @ que siguen siendo C# válido.
Más información
