增加

region.getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);

如果是文件,则修改为: 红色部分。

format: RGBA8888
filter: Linear,Linear
repeat: none

百度出来的文档:

I.纹理过滤:

当三维空间里面的多边形经过坐标变换、投影、光栅化等过程,变成二维屏幕上的一组象素的时候,对每个象素需要到相应纹理图像中进行采样,这个过程就称为纹理过滤。

II.纹理过滤通常分为2种情况: 
a) 纹理被缩小 GL_TEXTURE_MIN_FILTER 
比如说一个8 x 8的纹理贴到一个平行于xy平面的正方形上,最后该正方形在屏幕上只占4 x 4的象素矩阵,这种情况下一个象素对应着多个纹理单元。
b) 纹理被放大 GL_TEXTURE_MAG_FILTER 
纹理被放大这种情况刚好跟上面相反,假如我们放大该正方形,最后正方形在屏幕上占了一个16 x 16的象素矩阵,这样就变成一个纹理单元对应着多个象素。

III.几种不同的纹理过滤方式: 
1.最近点采样 GL_NEAREST
2.线性纹理过滤(双线性过滤)GL_LINEAR
3.mipmap纹理过滤(三线性过滤) GL_LINEAR_MIPMAP_LINEAR
4.各向异性过滤

a) 最近点采样
最近点采样,不进行任何过滤操作的速度最快也最简单,只是针对每一个象素对最接近它的纹理单元进行采样,可用于上面两种情况。但是这种纹理过滤方法的效果最差,在屏幕显示的图像会显得十分模糊。

b)双线性过滤 Bilinear Interpolation 
线性过滤也比较简单,每个象素要对最接近它的2 x 2的纹理单元矩阵进行采样,取4个纹理单元的平均值,也可用于上面的两种情况。这种纹理过滤方法的效果比上面的要好很多。
这是一种较好的材质影像插补的处理方式,会先找出最接近像素的四个图素,然后在它们之间作差补效果,最后产生的结果才会被贴到像素的位置上,这样不会看到“马赛克”现象。这种处理方式较适用于有一定景深的静态影像,不过无法提供最佳品质。其最大问题在于,当三维物体变得非常小时,一种被称为Depth Aliasing artifacts(深度赝样锯齿),也不适用于移动中的物件。

c)三线性过滤 Trilinear Interpolation 
三线性过滤相对的比较复杂,它只能用于纹理被缩小的情况,需要先构造纹理图像的mipmap,mip的意思是“在狭窄的地方里的许多东西”,mipmap就是对最初的纹理图像构造的一系列分辨率减少并且预先过滤的纹理图。对于一个8 x 8的纹理来说需要为它构造4 x 4、2 x 2、1 x 1这三个mipmap。如果正方形被缩小到在屏幕上占6 x 6的象素矩阵,一个象素的采样过程就变成这样,首先是到8 x 8的纹理图中进行对最接近它2 x 2的纹理单元矩阵进行采样(也就是上面的线性过滤);其次是到4 x 4的纹理图中重复上面的过程;接着把上面两次采样的结果进行加权平均,得到最后的采样数据。可以看出整个过程一共进行了三次的线性过滤,所以这种方法叫做三线性过滤,它的效果是三种纹理过滤方法里面最好的。
这是一种更复杂材质影像插补处理方式,会用到相当多的材质影像,而每张的大小恰好会是另一张的四分之一。例如有一张材质影像是512×512个图素,第二张就会是256×256个图素,第三张就会是128×128个图素等等,总之最小的一张是1×1.凭借这些多重解析度的材质影像,当遇到景深极大的场景时(如飞行模拟),就能提供高品质的贴图效果。一个“双线过滤”需要三次混合,而“三线过滤”就得作七次混合处理,所以每个像素就需要多用21/3倍以上的计算时间。还需要两倍大的存储器时钟带宽。但是“三线过滤”可以提供最高的贴图品质,会去除材质的“闪烁”效果。对于需要动态物体或景深很大的场景应用方面而言,只有“三线过滤”才能提供可接受的材质品质。

d)各向异性过滤 Anisotropic Interpolation 
各向异性过滤是最新型的过滤方法,它需要对映射点周围方形8个或更多的像素进行取样,获得平均值后映射到像素点上。对于许多3D加速卡来说,采用8个以上像素取样的各向异性过滤几乎是不可能的,因为它比三线性过滤需要更多的像素填充率。但是对于3D游戏来说,各向异性过滤则是很重要的一个功能,因为它可以使画面更加逼真,自然处理起来也比三线性过滤会更慢。
各异向性纹理过滤不是单独使用而是和前面所述的其他过滤方法结合一起使用的。它在取样时候,会取8个甚至更多的像素来加以处理,所得到的质量最好。
假设Px为纹理在x坐标方向上的缩放的比例因子;Py为纹理在y坐标方向上的缩放的比例因子;Pmax为 Px和Py中的最大值;Pmin为Px和Py中的最小值。当Pmax/Pmin等于1时,也就是说Px等于Py,纹理的缩放是各同向的;但是如果Pmax /Pmin不等于1而是大于1,Px不等于Py,也就是说纹理在x坐标方向和在y坐标方向缩放的比例不一样,纹理的缩放是各异向的,Pmax/Pmin代表了各异向的程度。
举个例子来说,64 x 64的纹理贴到一个开始平行于xy平面的正方形上,但是正方形绕y轴旋转60度,最后投影到屏幕上占了16 x 32的象素矩阵。纹理在x坐标方向上缩放的比例因子为64/16等于4,在y坐标方向缩放的比例因子为64/32等于2,Pmax等于4,Pmin等于 2。缩放的各异向程度为2。当把各异向性过滤和线性过滤结合起来的时候,应该是对最接近象素的4 x 2的纹理单元矩阵采样才合理,因为一个象素在x坐标方向上对应了更多的纹理单元(Px > Py)。即使是纹理在一个轴方向上缩小而在另一个轴方向上放大,处理的过程也是一样的(注意的是如果纹理在一个轴方向上缩小而在另一个轴方向上放大,OpenGL仍然把它当作是纹理被缩小的情况,将采用为纹理缩小情况设置的过滤方法为基本过滤方法,然后再加上各异向性过滤)。假设被贴图的正方形最后在屏幕上占了一个128 x 32 的象素矩阵,纹理在x坐标方向上缩放的比例因子为64/128等于0.5,在y坐标方向缩放的比例因子为64/32等于2,由于Py > Px 且 Pmax/Pmin等于4,所以当把各异向性过滤和线性过滤结合起来的时候,应该对最接近象素的2 x 8的纹理单元矩阵进行采样。三线性过滤和各异向性过滤结合的过滤方法的步骤跟前面单独的三线性过滤方法大致是一样的,只是前面两步采用了各异向性过滤和线性过滤结合的方法。
通常情况下采取线性过滤或者三线性过滤就可以得不错的效果,但是在某些特殊的情况下,特别是把一个都是线状条纹的纹理图贴到一个绕x或者是y轴旋转角度很大的多边形上的时候,比如将人的头发纹理贴到构成人的头顶的多边形,即使是三线性过滤的效果也不能令人满意,只有将各异向过滤方法和三线性过滤或者线性过滤的方法结合起来才能得到完美的效果。

//用OpenGL实现支持的最大各异向程度设置最大各异向程度参数
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, xxx);
  // 注意:这里的 xxx 代表 各向异性过滤 的异向程度参数
  // 你可以设置为:4 , 8 , 16 等。这里也可以在 InitGL() 驱动 OpenGL 函数里写上
  int LrgSupAni;
  glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &LrgSupAni);
  那么 xxx 就得小于或等于 LrgSupAni。

图片放大出现锯齿问题相关推荐

  1. Photoshop图片放大后有锯齿如何去除?

    这是由位图的本质决定的,基本没有办法避免!除非你的图片更大! 如果你放大的话,可以在图像大小 里面改一下分辩率,把图像的分辩率调成300的!这样放大的时候相对来说会更好点! 然后你再把图片处理锐化一下 ...

  2. ios图片放大之后如何不模糊_图片怎样放大后不模糊 图片放大不失真的方法步骤...

    在网上的图片尺寸总是大小不一,小编在网上下载图片想拿来做壁纸,发现下载的图片尺寸偏小,为了适应桌面尺寸,图片会自动放大,然而图片放大后就变得模糊不清,甚至画面上有些线条带有锯齿状,严重影响视觉效果!小 ...

  3. 图片放大模糊怎么办?这个方法了解一下

    图片放大模糊怎么办?有时候我们好不容易找到了图片素材,却因为图片尺寸问题无法使用,直接放大又会造成图片像素降低.有些朋友可能会使用PS处理图片,但如果对PS工具也不熟练,就会直接放弃. 其实针对这个问 ...

  4. html如何让图片不失真,图片放大不失真的几种方法

    图片失真变形对显示效果影响很大,但有一些图片原始素材分辨率很低,特别是一些历史照片.教材中的图片.百度中找到的尺寸较小的图片放大后在PPT演示呈现效果很差,如何能够不失真的放大图片呢,本教程介绍四种方 ...

  5. 为什么把文字图片放大后有一圈彩色的像素方块,而不是纯黑色的

    当我们把文字图片放大到一定程度后,我们可以明显的发现这个字居然不是纯黑色的,而是除黑色外还有很多彩色的像素方块组成的.如下图所示,我放大了五个m字母的图片的样子: 为什么会这样子呢?其实是微软的Cle ...

  6. PhotoZoom的工具栏 图片放大不失真

    使用PhotoZoom能够对数码图片无损放大,备受设计师和业内人员的青睐,它的出现时一场技术的革新,新颖的技术,简单的界面,优化的算法,使得它可以对图片进行放大而没有锯齿,不会失真.本文为您一起来认识 ...

  7. Photozoom2020汉化免费下载图片放大软件使用教程

    在日常工作或者生活中经常需要放大图片,然而有时很难保证图片放大不失真,比如说锯齿形的边缘或者高度模糊,那要怎么样才能保证图片放大不失真呢?图片放大的专业软件有很多.这款软件实用度高,功能齐全又操作简便 ...

  8. 认识图片放大工具PhotoZoom的菜单栏

    使用PhotoZoom能够对数码图片无损放大,备受设计师和业内人员的青睐,它的出现时一场技术的革新,新颖的技术,简单的界面,优化的算法,使得它可以对图片进行放大而没有锯齿,不会失真.本文为您一起来认识 ...

  9. 如何把一张照片的像素提高_教你三个将低分辨率图片放大放清晰的方法

    原标题:教你三个将低分辨率图片放大放清晰的方法 相信很多人在工作以及和别人交流的时候都会遇到这样的情况:想找一张分辨率足够大,清晰度足够好的图片放在文章或者网站中时,却发现找遍全网也只能找到一张分辨率 ...

最新文章

  1. 专业ajax解决方案汇集
  2. 多线程基础与JUC进阶笔记
  3. 使用不可序列化的属性序列化Java对象
  4. Java智能卡 技术_java智能卡APDU学习笔记
  5. K8s创建pod yaml文件详解
  6. iPhone8带来AR新技术,AR游戏要火了吗?
  7. 利用Python网络爬虫抓取微信好友的签名及其可视化展示
  8. sql cast函数_数据分析面试必备——SQL你掌握的怎么样?
  9. 历年软件设计师 试卷 参考案例解析
  10. 信创终端违规外联案例分析及防控措施
  11. filezilla server mysql_教你如何使用filezilla server(教你如何使用filezilla server).doc...
  12. 卸载vs2015社区版本然后装vs2015专业版本出现问题ActivityLog.xml错误
  13. 无法创建视频捕捉过滤器怎么办
  14. java基于easypoi实现对导出的excel文档加密
  15. 基于opencv的手势识别(HSV)控制鼠标
  16. oracle database express database,安装Oracle Database Express Edition 11g时出现问题
  17. 哲理故事与管理之道(21)-用情感激励下属
  18. UDT长度的含义是什么?
  19. ios启动时间优化--理论
  20. 7年iOS开发经验,教你写一份脱颖而出的简历,进入大厂机会翻3倍!

热门文章

  1. SAP 如何在选择画面中显示图片 <转载> cl_gui_docking_container
  2. kafka消息过期时间设置(全局和特定topic)
  3. 【场景】JMeter并发线程组 Concurrency Thread Group 阶梯式加压
  4. 网页登录飞书妙记如何添加“飞书妙记”应用?
  5. 企业微信 android2.3,企业微信2.3版本发布
  6. 【搜集+亲测】无法注册Flash Player的Activex控件最终解决方法(亲测,WIN7 64位系统)
  7. SAP SHDB 录制BDC并程序调用BDC教程
  8. dumpsys activity 查看系统运行了哪些任务?
  9. 2016年7月6日,阿里巴巴集团和上汽联合发布全球首款互联网汽车
  10. 全球最严立法限塑令,会带来什么?