yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

kaizhangNVno_diff diagnostics improvement (#7655)a670bafc1

master
758 B32 linesraw
1//TEST_IGNORE_FILE:
2
3__exported import IMaterial;
4__exported import DiffuseMaterialInstance;
5
6public struct DiffuseMaterial : IMaterial
7{
8    public float3 baseColor;
9
10    public typedef DiffuseMaterialInstance MaterialInstance;
11
12    [TreatAsDifferentiable]
13    public float3 getAlbedo(float3 albedo)
14    {
15        return albedo;
16    }
17
18    [BackwardDifferentiable]
19    [NoDiffThis]
20    public DiffuseMaterialInstance setupMaterialInstance(out MaterialInstanceData miData)
21    {
22        float3 albedo = getAlbedo(baseColor);
23        DiffuseMaterialInstance mi = { baseColor };
24        for (uint i = 0; i < 3; i++) miData.data[i] = albedo[i];
25
26        // unused
27        miData.data[3] = 0.f;
28        miData.data[4] = 0.f;
29        
30        return mi;
31    }
32};