o3d纹理映射(转)

本文详细介绍了3D纹理映射的概念,通过创建纹理采样器、设置采样属性来将图像贴到模型上,使得模型更加生动。讨论了address mode、minification/magnification filter、mipmap filter等重要概念,并给出了使用示例,展示了如何在OpenGL中应用这些概念将纹理贴到立方体上。最后提到了纹理坐标和shader在纹理映射中的作用。
摘要由CSDN通过智能技术生成

这一章讲纹理,纹理,不能顾名思义了,其实就是一张图片,我们要做的就是把这张图片贴到模型上面,从而让模型一下子生动起来,说得有文采点就是栩栩如生,这个过程就叫纹理映射(也可以叫贴图)。纹理映射有时候能产生非常神奇的效果,比如说凹凸贴图,和凹凸贴图衍生出来的法线贴图,能够让只有几百个几千个多边形的模型产生几万个,几十万个多边形的模型的效果。

 

         接下来就要介绍怎么创建一个纹理采样器 (texture sampler) ,如何设置采样的属性,然后把一张图片(纹理)成功地贴到那个立方体上面,图片的格式可以是 TGA , JPEG , PNG , DDS ,其中像 TGA,PNG 这样的格式是支持半透明的,可以用来模拟阴影(当然只是简单地模拟)。

        

纹理采样器负责怎么把一张图片上的各个像素映射到模型的像素上,反过来说,就是为每个像素选取纹理像素。看似很简单,但是当显示的图片大于(或小于)要覆盖的那个面时,就得就结了,这个不能一一映射了,那得怎么做呢,这是门学问,我们可以通过设置这个纹理采样器的各个属性来达到较好的效果。

Address Mode
首先是 addressModeU 和 addressModeV 属性,这两个属性决定了当纹理坐标超出( 0 , 1 )后该怎么做。纹理坐标,顾名思义,就是在纹理上的坐标,这是我们截取纹理中的一部分是要用到的。它的范围是( 0 , 1 )。其中左下角的坐标是 (0.0 , 1.0) ,右上角的坐标是 (1.0 , 1.0)

 

 

         这两个属性有下面四种可能值

        

Value
 Meaning
 
WRAP
 ( 默认为此值)重复贴图来填充贴图区域
 
MIRROR
 重复贴图,当遇到 UV 的边界时反向( UV 边界为 0.0 或者 1.0 )
 
CLAMP
 用贴图的最后一行像素,重复覆盖没贴到的区域
 
BORDER
 超过的贴图区域,用一种特殊颜色的边标记出来
 

        

 

Minification Filter

        

Minification filter, 即 minFilter 这个属性具体说明了怎么把纹理贴到一个像素比它少的模上面(这个上面有提到过),这个属性可能有下面 3 个值

 

 

 

 

Value
 Meaning
 
POINT
 用最近的那个像素
 
LINEAR
 线性插值
 
ANISO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值