blob: 9f01532cd4670f8539d9207bdc57baef62a81da6 (
plain)
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
29
30
31
32
|
#ifndef POI_ALPHA_TO_COVERAGE
#define POI_ALPHA_TO_COVERAGE
half _MainMipScale;
float _MainAlphaToCoverage;
float CalcMipLevel(float2 texture_coord)
{
float2 dx = ddx(texture_coord);
float2 dy = ddy(texture_coord);
float delta_max_sqr = max(dot(dx, dx), dot(dy, dy));
return 0.5 * log2(delta_max_sqr);
}
void ApplyAlphaToCoverage(inout float4 finalColor)
{
// Force Model Opacity to 1 if desired
if (float(0) == 1)
{
if(float(0))
{
// rescale alpha by mip level
finalColor.a *= 1 + max(0, CalcMipLevel(poiMesh.uv[0] * float4(0.0004882813,0.0004882813,2048,2048).zw)) * float(0.25);
// rescale alpha by partial derivative
finalColor.a = (finalColor.a - float(0.5)) / max(fwidth(finalColor.a), 0.0001) + float(0.5);
}
}
}
#endif
|