OpenGL-纹理(下)

OpenGL-纹理(下),第1张

mipmap一词出自Lance Willianms 的论文<<Pyramidal Parametrics>>--1983年, mip ->multum in parvo "在一个小城区的很多种东西"。mipmap技术使用了一些聪明的做法将图像数据打包到内存中。

OpenGL 在使用 mipmap时会自动判断当前使用的纹理贴图是那个层级,这是基于被映射物体的尺寸( 以像素为单位 )决定的,通过这种做法,我们可以根据纹理贴图的细节层次(level of detail),找到当前会知道屏幕的最合适图像,如果物体变得更小,那么纹理贴图层次也会的尺寸也会减小,mipmap需要一些额外的计算和纹理存储的区域。如果我们不使用mipmap的话,纹理被映射到较小的物体上之后可能会出现闪烁现象。

在介绍OpenGL mipmap的时候,并没有讨论纹素尺寸之间的缩放参数,此外还假设mipmap的所有参数都使用了默认值。

mipmap简单来说就是一些列的纹理图像,后一个纹理图像是前一个纹理图像的1/4,知道最后一个图的像素是1*1d的时候停止。多级渐远背后的原理就是:观察者距离物体超过一定的阈值,OpenGL会使用不同的多级渐远纹理,即最适合物体的距离的那个。由于距离远,解析度不高也不会被用户注意到。

下图就是简单展示了一下渐远纹理的样子:

图中1,2,3区域距离观察者越来越远。

这两个问题看似可以使用同样样式的更小的纹理来解决,但是当观察者与物体距离靠近的时候,物体表面就会被渲染得更大,这样就会导致纹理不得不拉伸,从而形成了视觉模糊或者

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11209858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存