纹理映射能够保证在变换多边形时,多边形上的纹理也会随之变化。例如,用透视投影模式观察墙面时,离视点远的墙壁的砖块的尺寸就会缩小,而离视点近的就会大些,这些是符合视觉规律的。此外,纹理映射也被用在其他一些领域。如飞行仿真中常把一大片植被的图像映射到一些多边形上用以表示地面,或者用大理石、木材等自然物质的图像作为纹理映射到多边形上表示相应的物体。
纹理贴图是一项能大幅度提高3D图像真实性的3D图像处理技术,下面列出了使用这项技术的好处。
■ 减少纹理衔接错误。
■ 实时生成剖析截面显示图。
■ 有更真实的雾、烟、火和动画效果。
■ 提高变换视角看物的真实性。
■ 模拟移动光源产生的自然光影效果。
■ 构成枪弹真实轨迹等。
在目前的显卡硬件条件下,上述功能只能通过“3D纹理压缩”才能实现。在具体实现时可以把一幅纹理图拉伸或缩小贴到目标面上。如果目标面很大,可以用如下3种方案来解决(www.xing528.com)
(1)将纹理拉大,这样做的缺点是纹理显得非常不清楚,失去了原来清晰的效果,甚至可能变形。
(2)将目标面分割为多个与纹理大小相似的矩形,再将纹理重复贴到被分割的目标上。这样做的缺点是浪费了内存(需要额外存储大量的顶点信息),也浪费了开发人员宝贵的精力
(3)使用合理的纹理拉伸方式,使得纹理能够根据目标平面的大小自动重复,这样既不会失去纹理图的效果,也节省了内存,提高了开发效率。
通过比较上述3种解决方案,会发现第3种方案是最好的解决方法,并且容易实现,我们只需要做如下两方面的工作即可。
■ 将纹理的GL_TEXTURE_WRAP_S与GL_TEXTURE_WRAP_T属性值设置为
GL_REPEAT而不是GL_CLAMP_TO_EDGE。
■ 设置纹理坐标时纹理坐标的取值范围不再是0~1,而是0~n,n为希望纹理重复的次数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。