Mipmap纹理技术简介

OGL纹理纹理过滤器和多级渐进纹理mipmap 纹理过滤器 纹理图像映射到屏幕坐标系的图元中,很多时候不是和屏幕坐标系(像素)一一对应的,因此需要进行放大或缩小(尽量避免一个方向上放大一个方向上缩小,避免这个问题最好方法是不要使用扭曲的纹理坐标)以铺满对应的图元。纹理过滤器通过glTexParameteri函数来指定。 1)放大纹理过滤器 //GL_NEAREST最近点采样块有明显锯齿,GL_LINEAR线性过滤效果较好 glTexPa 阅读详情

       在三维世界中,显示一张图的大小与摄象机的位置有关,近的地方,图片实际象素就大一些,远的地方图片实际象素就会小一些,就要进行一些压缩,例如一张64*64的图,在近处,显示出来可能是50*50,在远处可能显示出来是20*20.

 

       如果只限于简单的支掉某些像素,将会使缩小后的图片损失很多细节,图片变得很粗糙,因此,图形学有很多复杂的方法来处理缩小图片的问题,使得缩小后的图片依然清晰,然而,这些计算都会耗费一定的时间.

 

       Mipmap纹理技术是目前解决纹理分辨率与视点距离关系的最有效途径,它会先将图片压缩成很多逐渐缩小的图片,例如一张64*64的图片,会产生64*64,32*32,16*16,8*8,4*4,2*2,1*1的7张图片,当屏幕上需要绘制像素点为20*20 时,程序只是利用 32*32 和 16*16 这两张图片来计算出即将显示为 20*20 大小的一个图片,这比单独利用 32*32 的那张原始片计算出来的图片效果要好得多,速度也更快.

渲染的本质:纹理采样时如何确定正确的mipmap level 图形学程序员和其他软件程序员有一些不同,就是很多图形api是硬件实现的,除非很深入的研究,否则一些问题总是建立在猜测上,不利于理解问题的本质。本系列文章会整理我学习中遇到的一些问题,来揭示图形api的内部实现,材料来源于网络,如有错误,欢迎指正。 纹理采样时如何自动获取特定的mipmap等级 我们知道如果纹理开启了mipmap,离相机越远的表面,在进行纹理采样时会使用更低的mipmap等级,来提升性能。具体如何提升性能,可以查看笔者关于纹理过滤(Texture filtering)本质的文章。 下.. 阅读详情

相关推荐

OpenGL之纹理过滤(Texture Filtering)、MipMap方法、纹理坐标

图形编程技术

TxyITxs的博客 3301

mipmap纹理

mipmap纹理

Vulkan_纹理mipmap生成与LOD

我们本部分主要来看一下:如何使用图像的位块和适当的图像屏障在运行时根据基本图像生成完整的纹理mipmap以及纹理LOD的使用。

qq_35312463的博客 2960

OpenGL 超级宝典笔记 —— 纹理映射 Mipmap

OpenGL 超级宝典笔记 —— 纹理映射 Mipmap生成,纹理LOD多层次细节,常驻纹理纹理优先级等

whl0071的专栏 1998

Mipmap详解(有无Mipmap区别、原理、优点、缺点、优化)

一、先了解纹理过滤 想要了解为什么要使用Mipmap,首先要知道纹理过滤是什么。 当你在玩吃鸡的时候可能会发现一个现象,一个人在距离你5米的地方,可以观察到敌人的一举一动,包括身上的装备等等,但当你拿到98k时,你会蹲在远处狙击别人,这时不开镜的你看500米远处的敌人只能看到一个黑点,这其中远近看到的区别就有应用到纹理过滤。 游戏中A物体的游戏设计纹理贴图是400*400Texel(纹理像素) 1.当你(摄像机)跟A物体的距离为0时,在你屏幕上显示的像素就是400*400,跟贴图的纹理像素大小相同,

爱吃的栗子‘s 博客 7万+

【Unity Shader入门精要 第7章】基础纹理补充内容:MipMap原理

我们对纹理采样进行显示的过程,可以理解为将屏幕上的一个像素(下文用像素表示)映射到纹理上的一个像素(下文用纹素表示),然后用纹理上的这个像素的颜色进行显示。理想情况下,屏幕上的每个像素都可以正好对应到纹理上的一个纹素。如上图这种情况,将3X3的纹理显示到3X3的屏幕上时,屏幕坐标(1,1)的像素对应的正好也是纹理上(1,1)的纹素。图中黑点代表的是每个纹素的位置,红点代表的是屏幕像素映射到纹理上的位置(uv),此时只需要取对应纹素的颜色进行显示即可。

zhiai315的博客 1856

深入解析纹理贴图——纹理过滤及MipMap技术

纹理被应用到三维物体上时,随着物体表面的形状和相机视角的变化,会导致纹理在渲染过程中出现一些问题,如锯齿状边缘、失真、模糊等。 纹理过滤的作用是解决这些问题,以获得更好的渲染效果。其目的是在纹理被应用到三维模型上时,通过对纹理上的像素进行插值或采样,使得纹理在不同距离和角度下呈现出更平滑、更真实的外观。

Mapmost的博客 3120

Unity中关于 Mipmap

关于什么是Mipmap, 百科都有~ https://zh.wikipedia.org/zh-hans/Mipmap 在三维计算机图形的贴图渲染中有一个常用的技术被称为Mipmapping。为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 MIP map 或者 mipmap。这个技术在三维游戏中被非常广泛...

游戏路上的小学生 3万+

计算机图形学七:纹理映射(Texture Mapping)及Mipmap技术

纹理映射和凹凸映射1 纹理映射(Texture Mapping)2 纹理放大率(Texture Magnification) 在本篇文章中,我们会具体的讨论如何利用纹理映射让场景拥有丰富的颜色信息,以及纹理贴图精度大小所带来的问题,怎么去解决,最后将会介绍Bump Mapping和Displacement Mapping 1 纹理映射(Texture Mapping) 首先让我们一起来观察这样一张...

吃人的博客 1万+

OpenGL超级宝典笔记——纹理映射Mipmap

Mipmapping Mipmap是一个功能强大的纹理技术,它可以提高渲染的性能以及提升场景的视觉质量。它可以用来解决使用一般的纹理贴图会出现的两个常见的问题: 闪烁,当屏幕上被渲染物体的表面与它所应用的纹理图像相比显得非常小时,就会出现闪烁。尤其当相机和物体在移动的时候,这种负面效果更容易被看到。 性能问题。加载了大量的纹理数据之后,还要对其进行过滤处理(缩小),在屏幕上显示的只是一小部分。纹理越大,所造成的性能影响就越大。 Mipmap就可以解决上面那两个问题。当加载纹理的时候,不单单是加载一个纹

翻肚鱼儿的博客 2264

opengles之mipmap纹理

为什么要用mipmap?      在三维世界中,显示一张图片的大小与摄像机的位置有关,近的地方,图片实际像素大一些,远 的地方,图片实际像素就小一些,比如一张64*64的图片 在近处, 显示出来可能是50*50,远处可能显示出来就是20*20。     mipmap纹理技术是目前解决纹理分辨率与视点距离关系的最有效途径,它会先将图片压缩成很多逐渐缩小的图片,例如一张64*64的图片,会产生

hb707934728的博客 1621

一文详解纹理采样与Mipmap纹理:构建山地渲染效果

在开发一些相对较大的场景时,例如:一片铺满相同草地纹理的丘陵地形,如果不采用一些技术手段,就会出现远处的丘陵较近处的丘陵相比更加的清晰的视觉效果,而这种效果与真实世界中近处的物体清晰远处物体模糊的效果是相违背的。 这是因为采用“透视投影”进行三维场景的绘制过程中,会产生近大远小的效果,而远处的丘陵与近处丘陵在绘制过程中采用的却是同一幅纹理图。如下图所示为未采用Mipmap纹理贴图和采用Mipmap纹理贴图后的运行效果。

bjxiaxueliang的CODING小栈 2577
上一篇: 用python分割TXT文件成4K的TXT文件
下一篇: Boost线程学习简记
oracleot
博客等级 码龄21年 21粉丝 25原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值