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

您所在的位置:网站首页 opengl纹理映射实验 计算机图形学七:纹理映射(Texture Mapping)及Mipmap技术

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

2024-07-17 07:00| 来源: 网络整理| 查看: 265

纹理映射及Mipmap技术 1 纹理映射(Texture Mapping)2 纹理过小和纹理过大的问题及解决方案2.1 纹理过小引发的问题2.2 双线性插值(Bilinear Interpolation)2.3 纹理过大引发的问题2.3 Mipmap2.4 各向异性过滤Mipmap 总结Reference

(本篇文章同步发表于知乎专栏:https://zhuanlan.zhihu.com/p/144332091 欢迎三连关注)

在本篇文章中,我们会具体的讨论如何利用纹理映射让场景拥有丰富的颜色信息,以及纹理贴图精度大小所带来的问题,怎么去解决,最后将会介绍Bump Mapping和Displacement Mapping

1 纹理映射(Texture Mapping)

首先让我们一起来观察这样一张图: 无论是球上的图案,以及地板的木头纹理都呈现出了不同的颜色信息,那么回想在讲解Blinn-Phong反射模型的时候曾提到,一个点的颜色是由其漫反射系数决定的,反射什么颜色的光,人眼就能看见什么颜色。那么针对上面这幅图,难道要去针对每一个点自己去设定一个颜色吗?还是说有什么更方便的方法呢?那便是纹理映射了!

我们可以将三维物体上的任意一个点都映射到一个2维平面之上,举一个简单例子,地球仪: 倘若拥有从3维World space到2维Texture space的一个映射关系,那么只需要将每个点的颜色信息即漫反射系数存储在2维的Texture之上,每次利用光照模型进行计算的时候根据映射关系就能查到这个点的漫反射系数是多少,所有点计算完之后,结果就像最左边的screen space之中,整个Texture被贴在了模型之上。

有了Texture,有了映射关系,对渲染结果会有一个非常大提升,因为很多fancy的效果都可以通过texture的设计得到(当然这属于美术的活儿了,咱们用就行了)。可以看这样一个有点丑的例子。 可以看到在利用texture渲染之后,这个独眼怪物丑的更有特点了。

好了,相信到这大家都对纹理映射了有了一个大概的了解,那么有了一张Texture之后,这种映射关系究竟是如何表示的呢?这就要从纹理坐标(UV)说起了。在纹理空间之内任意一个二维坐标都在[0,1]之内。如下图是一个可视化纹理坐标的结果: 横轴和纵轴的最大值都为1,为什么整幅texture图可视化之后是红色和绿色呢?可以将(u,v)坐标的两点想象成red和green就能明白了。一幅Texture上的任意一点都可以用一个(u,v)坐标来表示(0



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3