• trilinear filter


    之前对三线型过滤理解有些问题更新一下

    三线性采样点 一次sample采样点是8

    (u,v,d)

    d是个分数 作为权重

    miplevel floor(d)向上取整 在这级mipmap上用uv 采样4个点插值得到a

    miplevel ceil(d)向下取整 在这级mipmap上用uv 采样4个点插值得到b

    ab按照d的小数部分插值

    所以tribilinear在跨不跨mipmap的地方都是sample8个值 所有位置的结果都是插值

     (mipmap跨级的意思是指 相邻两个位置 dx/du,dy/dv 计算出来不在一级mipmap的level就是跨级)

    然后在这种情况下三线性还能提升性能。。。我也真是服 我要测下看看

    原因是 远处cachemissing减小 但是整整多了一倍采样啊 不是增加很多带宽吗 难道我3.0版本对filter对带宽的影响还需要更新?

    ------

    bilinear算法 临近四个点的uv距离下一组uv的四个点  在远处还是会差很大  还是cache missing

    有一个容易被忽视的问题是 bilinerar因为有cache的情况下 并不会一直去mem拿tex多半在cache里面 在近的地方

    但如果在远处 这部分cache会missing  情况就变成每次都是4  近的时候访存远远低于4

    改成tri为什么能提升性能呢这说不通 因为有4次像bri一样的samp一定会做 还有4次性能比较好的 在高level的mipmap上的sample是额外的开销

    所以如果他说 Trilinear filtering with mipmaps via GL LINEAR MIPMAP LINEAR requires eight values per sample, but it can actually increase performance since, for faraway pixels, samples from the smaller mip levels are very likely to hit in texture cache.

    三线性提升性能 只有一个可能 与之比较的是没有mipmap的bilinear

    如果只开mipmap filter不变 比如都是point 用mipmap会减少cachemissing提升性能

    开mipmap之后如果用bilinear

    mipmap分界处会不衔接 有肉眼可见瑕疵 性能优于三线性的mipmap

  • 相关阅读:
    POJ 1436 Horizontally Visible Segments (线段树+区间覆盖)
    HDU 4671 Backup Plan (构造)
    POJ 3325 Help with Intervals (线段树(难))
    HDU 4649 Professor Tian (位运算 + 按位DP)
    HDU 4662 MU Puzzle (YY+枚举)
    HDU 4638 Group (线段树 + 离线)
    深入浅出Node.js (附录A)
    JS的变量声明和函数声明提升
    JS基础:翻转数组
    JS基础:求一组数中的最大最小值,以及所在位置
  • 原文地址:https://www.cnblogs.com/minggoddess/p/9968677.html
Copyright © 2020-2023  润新知