mipmap 之前讲了生成 原理
这个讲下我对性能的理解
mipmap
对性能的影响
包含两方面
minification时,采样多个textel得到1个pixel颜色,如果是mipmap形成相邻两个pixel的两组textels更为接近 会都在tex cache里面
1.这样cache命中,速度快,
2.带宽减小,没有又从tex到cache来读取数据
我之前有一种错误认识 带宽和texturesize有关,其实只和 sample filter---point 1, bilinear 4, trilinear 8(mipmap level之间) 和fragment 有多少个(resolution决定) 有关
带宽
Memory Bandwidth 定义是prosser到memeory的data rate GB/s
fragement的带宽包括采样tex 和绘制到color buffer &depth buffer这两部分 对mipmap来说 tex cache命中增加 减小了采样tex的带宽
(CPU到GPU之间的数据 这部分mipmap bind一次 8张全部绑定 每帧每次drawcall 前bindtexture-----这部分也许或许应该 至少不是GPU带宽-------不知道对不对
这部分肯定是有的,bindtexture 虽然可以是只传地址 但是资源肯定要从内存到显存 每次drawcall走一次 除非想Nintendo那样共享memory
mipmap是增加了这部分 数据传输 但是这个量太低了 一帧大概100次 X一组mipmap那么大 和GPU内部数据量不能比------也是不那么确定的的
https://msdn.microsoft.com/en-us/library/windows/desktop/ff476259(v=vs.85).aspx
memory有这几种类型default 类型只给GPU rw 只给GPU访问的这块memory是直接开在显存还是开在内存 呢呢呢 需要查资料
从游戏开始加载资源就开这块memory 从硬盘把texture数据加过去 就不是每帧 每次drawcall往显存传数据了
default 是显存 references :Practical Rendering and Computation with Direct3D 11 这个吧
没必要放system memory 只能gpu访问