mipmap一
讲一下mipmap
生成的时候 指定texture 的mipmaplevel 8 然后memory自动就会那么大的
画的时候要在lineraspace(因为我是gpucopy所以不涉及这个问题 可能)
用不同view 对应不同level
在loop里 每次对同一个texture的不同viewcopy
demo:
width = img.getWidth();
height = img.getHeight();
CopyRegion src_reg;
CopyRegion dest_reg;
TextureView src_view;
TextureView dest_view;
src_view.SetDefaults();
dest_view.SetDefaults(); #define SET_REGION(reg, w, h, d) reg.xoffset = reg.yoffset = reg.zoffset = 0; reg.width = w; reg.height = h; reg.depth = d;
for (uint32_t level = 1; level < miplevel; ++level){
SET_REGION(src_reg, width, height, 6);
width >>= 1;
height >>= 1;
SET_REGION(dest_reg, width, height, 6); src_view.SetLevels(level - 1, 1);
dest_view.SetLevels(level, 1); // no barrier required since copy engine do not use any cache.
cb.CopyTextureToTexture(&texture.GetTexture(), &src_view, &src_reg, &texture.GetTexture(), &dest_view, &dest_reg, CopyFlags::LINEAR_FILTER);
}
每次除以2 等于downsample linear filter
采样的时候 用texture.sample()就可以
gpu会根据srv是否有mipmap set 根据像素在两个轴的斜率来选适合的mipmap level
smaplelevel()这种函数是你想采特定levle才用得
比如你可以采样高levle看是不是很糊 textureLod(sampler,coord,level) glsl
设置trilinear filter for mipmap
--------------------------------------
一定要注意的是 mipmap在linear color space做 本来想偷懒不做。。。就变得特别暗 调了很久才想起来。
换到srgb的rt来画就可以了
mipmap一的更多相关文章
- android studio你可能忽视的细节——启动白屏?drawable和mipmap出现的意义?这里都有!!!
android studio用了很久了,也不知道各位小伙伴有没有还在用eclipse的,如果还有,楼主真心推荐转到android studio来吧,毕竟亲儿子,你会知道除了启动速度稍微慢些,你找不到一 ...
- 【转】OpenGL超级宝典笔记——纹理映射Mipmap
原文地址 http://my.oschina.net/sweetdark/blog/177812 , 感谢作者,若非法转载请联系本人. 目录[-] Mipmapping Mipmap过滤 构建Mip层 ...
- 【转】MipMap
原文地址http://www.cppblog.com/wc250en007/archive/2011/08/06/152653.html 首先从MIPMAP的原理说起,它是把一张贴图按照2的倍数进行缩 ...
- Mipmap与纹理过滤
为了加快渲染速度和减少纹理锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为Mipmap. 使用DirectX Texture Tool(DX自带工具)预生成Mipmap ...
- MipMap
MipMap 首先从MIPMAP的原理说起,它是把一张贴图按照2的倍数进行缩小.直到1X1.把缩小的图都存储起来.在渲染时,根据一个像素离眼睛为之的距离,来判断从一个合适的图层中取出texel颜色赋值 ...
- MipMap与三线性过滤
现代计算机图形管线渲染图像的方法是处理这两个问题: 1 3D世界的几何图元如何投影成2D图元,进而对应到屏幕的哪些像素 2 根据已有的信息(光照,法向量,贴图),每个像素点应该怎样设置颜色 根据这两个 ...
- unity之mipmap
Mipmap技术有点类似于LOD技术,但是不同的是,LOD针对的是模型资源,而Mipmap针对的纹理贴图资源 使用Mipmap后,贴图会根据摄像机距离的远近,选择使用不同精度的贴图. 缺点:会占用内存 ...
- opengl的mipmap
压缩纹理是不能调用glGenerateMipmap生成mipmap的. DDS和PVR都不行. 强行调用会产生GL_INVALID_OPERATION的错误. PNG格式试验了glGenerateMi ...
- mipmap 目录和drawable 目录有什么区别
Q :最近使用studio 发现drawle-hdpi 都没有了换成了mipmap-hdpi,这两个目录有什么区别呢,哪个比较好呢??? A: 我简单总结一下: 使用上没有任何区别,你把它当drawa ...
- Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest
情况是这样子的,导入一个比较老的项目(两年前),它依赖于一个 Libraray,已经先导入了 library,现在导入项目的时候出了错 (1) Android Studio 目前提供将 SDK包成 . ...
随机推荐
- P4113 [HEOI2012]采花
题目描述 萧薰儿是古国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花. 花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于 ...
- thr [树链剖分+dp]
题面 思路 首先,可以有一个$dp$的思路 不难发现本题中,三个点如果互相距离相同,那么一定有一个"中心点"到三个点的距离都相同 那么我们可以把本题转化计算以每个点为根的情况下,从 ...
- [bzoj] 2453 维护数列 || 单点修改分块
原题 询问区间有种个颜色,单点修改某个位置. 修改次数<=1000 维护pre[i]为前一个与当前位置颜色一样的位置. 询问时以pre为关键字sort,lower_bound找pre<x的 ...
- 动态规划DP的斜率优化 个人浅解 附HDU 3669 Cross the Wall
首先要感谢叉姐的指导Orz 这一类问题的DP方程都有如下形式 dp[i] = w(i) + max/min(a(i)*b(j) + c(j)) ( 0 <= j < i ) 其中,b, c ...
- Apache-commons.BeanUtils浅析
BeanUtils:通过反射控制JavaBean属性的实用方法. 1.cloneBean(Object) Object 克隆一个bean是基于可用属性的get和set方法,即 ...
- bzoj [Sdoi2014]数数 AC自动机上dp
[Sdoi2014]数数 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1264 Solved: 636[Submit][Status][Discu ...
- 非常好的Linux教程,让你的linux之路更通畅
1 第1讲.Linux应用与发展(上) 2013-10-22 17:43 | 播放(46) | 评论(0) | 时长:51:38 2 第1讲.Linux应用与发展(下) 2013-10-22 17 ...
- Struts2---ActionContext和ServletActionContext小结
转载自:http://www.cnblogs.com/tanglin_boy/archive/2010/01/18/1650871.html感谢原文作者的总结 1. ActionContext 在St ...
- Hibernate中用注解配置一对多双向关联和多对一单向关联
Hibernate中用注解配置一对多双向关联和多对一单向关联 Hibernate提供了Hibernate Annotations扩展包,使用注解完成映射.在Hibernate3.3之前,需单独下载注解 ...
- 通过hover修改其他元素
hover,我们都知道,是监听组件“悬停状态”的一个伪类. 我们一般通过hover来修改组件的背景什么的,很少涉及到太复杂的操作.也就是说我们一般只是对加了hover伪类的元素自身的样式进行改变,比如 ...