1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
struct Params {
float bias;
};
cbuffer params_CB : register(b0, space0) {
Params params;
};
Texture2D diffuse_tex_tex : register(t0, space0);
SamplerState diffuse_tex_samp : register(s1, space0);
Texture2D shadow_map_tex : register(t2, space0);
SamplerState shadow_map_samp : register(s3, space0);
struct _fs_main_Input {
float4 _sv_position : SV_Position;
float2 uv : TEXCOORD0;
float2 shadow_uv : TEXCOORD1;
};
struct _fs_main_Output {
float4 _value : SV_Target0;
};
_fs_main_Output fs_main(_fs_main_Input input) {
_fs_main_Output __luma_output;
float4 mip_color = diffuse_tex_tex.SampleLevel(diffuse_tex_samp, input.uv, params.bias);
float shadow = shadow_map_tex.SampleCmpLevelZero(shadow_map_samp, input.shadow_uv, 0.5);
__luma_output._value = float4((mip_color.rgb * shadow), mip_color.a);
return __luma_output;
}