ytgui / temp

0 stars 0 forks source link

textureLod #80

Closed ytgui closed 5 years ago

ytgui commented 5 years ago

https://zhuanlan.zhihu.com/p/26393153 https://blog.csdn.net/u010468553/article/details/80572641 https://blog.csdn.net/chy555chy/article/details/80177015

ytgui commented 5 years ago

texture2D

tex2D(sampler2D tex, float4 uv)
{
    float lod = CalcLod(ddx(uv), ddy(uv));
    uv.w = lod;
    return tex2Dlod(tex, uv);
}

float mipmapLevel(float2 uv, float2 textureSize)
{
    float dx = ddx(uv * textureSize.x);
    float dy = ddy(uv * textureSize.y);
    float d = max(dot(dx, dx), dot(dy, dy));  
    return 0.5 * log2(d);  // 0.5是技巧,本来是d的平方。
}