mipmap学习记录之如何确定LOD Level

这篇博客探讨了Android中mipmap资源的LOD(Level of Detail)级别的确定方法。通过计算相邻像素内容的变化率,使用dFdxdFdy来衡量UV坐标的变化,并通过log2(max(dot(px,px),dot(py,py)))公式来决定使用哪个LOD级别。这种方法确保了在不同距离下图片的清晰度。文章适合对移动开发和图形渲染感兴趣的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

都知道mipmap是图片LOD,但是这LOD的级别判定是怎么定的呢?
这里就要说一个函数了,求相邻像素的内容的变化率
对,内容的变化率,你的颜色可以代表很多含义
dFdx dFdy求x+1和y+1的像素和当前像素的差别
然后如果一张图片,我们要采样,是不是传入的参数是uv,texture
如果函数内部做了这么个操作
float dx=dFdx(uv) float dy=dFdy(uv)
这样就得到了UV的变化率,很明显嘛 如果一个图片离你很远,两个像素uv跨度直接1了,很近就0.000x这种的,于是就可以拿来决定取LOD的哪一级了
那1920像素,uv是0-1,也就是0.0005的差距是第一级,第二级的话,按道理就是分布960像素0.001
大概就是这么个意思,但是具体做法是另外的公式
float lod = 0.5 * log2(max(dot(px, px), dot(py, py)));
参考的这个大哥
https://blog.csdn.net/u013746357/article/details/107975128

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值