Mipmap与纹理过滤】的更多相关文章

为了加快渲染速度和减少纹理锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为Mipmap. 使用DirectX Texture Tool(DX自带工具)预生成Mipmap Chain Original  Mip1 Mip2 Mip3 Mip4 Mip5 Mip6 Mip7 Mip8 256x256 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 (1)Mipmap宽高值不一定要相等,但需要为2的n次幂,最低精度为1x1 (2)从原始…
1. 为什么在纹理采样时需要texture filter(纹理过滤). 我们的纹理是要贴到三维图形表面的,而三维图形上的pixel中心和纹理上的texel中心并不一至(pixel不一定对应texture上的采样中心texel),大小也不一定一至.当纹理大于三维图形表面时,导至一个像素被映射到许多纹理像素上;当维理小于三维图形表面时,许多个象素都映射到同一纹理. 当这些情况发生时,贴图就会变得模糊或发生错位,马赛克.要解决此类问题,必须通过技术平滑texel和pixel之间的对应.这种技术就是纹理…
1.理解纹理 OpenGL中的纹理能够用来表示图像.照片,甚至由一个数学算法生成的分形数据.每一个二维的纹理都由很多小的纹理元素组成.它们是小块的数据,类似于我们前面讨论过的片段和像素.要使用纹理,最经常使用的方式是直接从一个图像文件载入数据. 每一个二维纹理都有其自己的坐标空间,其范围是从一个拐角的(0,0)到还有一个拐角的(1.1).依照惯例,一个维度叫做S,而还有一个称为T.当我们想要把一个纹理应用于一个三角形或一组三角形的时候.我们要为每一个顶点指定一组ST纹理坐标,以便OpenGL知道…
如果使用一般的纹理过滤,当观察方向跟模型表面不是相互垂直的的情况下,会出现纹理信息的丢失,表现为图像看上去比较模糊,如下图所示,远处场景的细节信息很差: 针对这种情况,可以采用同向异性过滤的方式处理纹理,在过滤纹理的时候,考虑到观察角度不同,使纹理本身沿着模型表面倾斜的方向进行延伸. 使用如下语句查询当前系统支持的最大同向异性过滤的数值,数值越大,表示沿着最大变化方向所采样的纹理单元越多,显示效果就越好: GLfloat max_TexAni; //查询允许的各向异性数量 glGetFloatv…
原文地址 http://my.oschina.net/sweetdark/blog/177812 , 感谢作者,若非法转载请联系本人. 目录[-] Mipmapping Mipmap过滤 构建Mip层 Mipmaps 硬件生成 LOD(多细节层次)偏好 纹理对象 管理多个纹理 常驻纹理 纹理优先级 回顾 Mipmapping Mipmap是一个功能强大的纹理技术,它可以提高渲染的性能以及提升场景的视觉质量.它可以用来解决使用一般的纹理贴图会出现的两个常见的问题: 闪烁,当屏幕上被渲染物体的表面与…
本文由zhangbaochong原创,转载请注明出处http://www.cnblogs.com/zhangbaochong/p/5596180.html 在之前的例子中,我们实现了光照和材质使得场景大大增加了真实感,然而材质提供的细节只是在顶点级别上,要想在像素级别提供细节还得借助于纹理,这次让我们学习dx11中一些有关纹理的基础. 1.纹理坐标 1 在direct3d中,纹理坐标用一个二维向量(u,v)表示,纹理左上角为原点,u正方向沿纹理水平向右,v正方向沿纹理垂直向下,且0<=u,v<…
在开发一些相对较大的场景时,例如:一片铺满相同草地纹理的丘陵地形,如果不采用一些技术手段,就会出现远处的丘陵较近处的丘陵相比更加的清晰的视觉效果,而这种效果与真实世界中近处的物体清晰远处物体模糊的效果是相违背的. 这是因为采用"透视投影"进行三维场景的绘制过程中,会产生近大远小的效果,而远处的丘陵与近处丘陵在绘制过程中采用的却是同一幅纹理图.如下图所示为未采用Mipmap纹理贴图和采用Mipmap纹理贴图后的运行效果. 从两幅运行效果图可以看出: 第一幅图 近处山体与远处山体在视觉效果…
Sampler (GLSL) Sampler通常是在Fragment shader(片元着色器)内定义的,这是一个uniform类型的变量,即处理不同的片元时这个变量是一致不变的.一个sampler和一个texture对应,类型也是对应的,比如sampler2D 的sampler对应的就是GL_TEXTURE_2D类型的纹理对象.Sampler是个变量,但是它是没有值的,或者說是特殊的一种类型,讨论其数值没有意义,只要明确其同一个texture对应即可.sampler变量在shader内使用的地…
原文地址http://www.cppblog.com/wc250en007/archive/2011/08/06/152653.html 首先从MIPMAP的原理说起,它是把一张贴图按照2的倍数进行缩小.直到1X1.把缩小的图都存储起来.在渲染时,根据一个像素离眼睛为之的距离,来判断从一个合适的图层中取出texel颜色赋值给像素.在D3D和OGL都有相对应的API控制接口 透过它的工作原理我们可以发现,硬件总是根据眼睛到目标的距离,来玄奇最适合当前屏幕像素分辨率的图层.假设一张32768x327…
MipMap 首先从MIPMAP的原理说起,它是把一张贴图按照2的倍数进行缩小.直到1X1.把缩小的图都存储起来.在渲染时,根据一个像素离眼睛为之的距离,来判断从一个合适的图层中取出texel颜色赋值给像素.在D3D和OGL都有相对应的API控制接 透过它的工作原理我们可以发现,硬件总是根据眼睛到目标的距离,来选取最适合当前屏幕像素分辨率的图层.假设一张32768x32768的mipmap贴图,当前屏幕分辨率为1024*1024.眼睛距离物体比较近时,mipmap最大也只可能从1024*1024…