yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
a670bafc1
master
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};