Yotsuba Shader
Documentación

Tutorial

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.

Metadatos de tipos de textura#

C#
namespace YotsubaShader.Language.Native.Types.Texture;

public enum TextureDimension
{
   D1 = 1,
    D2 = 2,
    D3 = 3,
    Cube = 4
}
C#
namespace YotsubaShader.Language.Native.Types.Texture;

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)]
public class TextureAttribute(TextureDimension dimension, TextureComponentTypes componentTypes) : YotsubaShaderAttribute
{
    public TextureDimension Dimension = dimension;

    public TextureComponentTypes ComponentTypes = componentTypes;
    
    public TextureUsage Usage = TextureUsage.Sampled;

    public TextureDepth Depth = TextureDepth.No;

    public TextureFormat Format = TextureFormat.Unknown;

    public bool Arrayed = false;

    public bool Multisampled = false;
}

Marca un tipo con [Texture(dimension, componentTypes)]. Los campos con nombre son Usage, Depth, Format, Arrayed y Multisampled. El marcador de sampler es YotsubaShader.Language.Native.Types.Sampler.

Tipos de recursos HLSL#

C#
using YotsubaShader.HlslSyntax.Resources;
using YotsubaShader.HlslSyntax.Resources.Types;

public class Surface
{
    [register(RegisterPrefix.t, 0)]
    public Texture2D Albedo;

    [register(RegisterPrefix.s, 0)]
    public SamplerState Sampler;
}

Los tipos HLSL actuales Texture2D y SamplerState son structs de metadatos. No proporcionan un método Sample ni una implementación de textura para CPU. El muestreo de texturas, la emulación CPU y el binding de recursos en ejecución necesitan implementación adicional.

Copyright © 2026 Colaboradores de Yotsuba Shader · Licencias · GitHub