图形 1.3 纹理的秘密

什么是纹理宏观的角度上来说就是一张2D图片,一个像素上有 RGB 值为什么要出现纹理1、降低建模工作量 = 牺牲几何细节2、降低存储空间3、提高读取速度纹理管线模型空间位置 → 投影函数 → 纹理映射 → 纹理坐标 → 通讯函数 → 新纹理坐标 → 纹理采样 [避免依赖纹理读取] → 纹理值假设 我们将模型空间的一个点投影到 UV 坐标,获得一个 UV 坐标值,假设这个纹理的大小是256 * 256,那么这个纹理就会跟这个点投影的 UV 坐标进行相乘,得.
摘要由CSDN通过智能技术生成

什么是纹理

宏观的角度上来说就是一张2D图片,一个像素上有 RGB 值

为什么要出现纹理

1、降低建模工作量 = 牺牲几何细节

2、降低存储空间

3、提高读取速度

纹理管线

模型空间位置 → 投影函数 → 纹理映射 → 纹理坐标 → 通讯函数 → 新纹理坐标 → 纹理采样 [避免依赖纹理读取] → 纹理值

 

假设 我们将模型空间的一个点投影到 UV 坐标,获得一个 UV 坐标值,假设这个纹理的大小是256 * 256,那么这个纹理就会跟这个点投影的 UV 坐标进行相乘,得到纹理的坐标,后续这个位置的颜色需要看你的纹理采样的设置进行设置

纹素

纹素:图像纹理上的像素通常被称为纹素,以区分它和屏幕上的像素

纹理采样设置之 Wrap Mode

决定 UV 值在[0,1]以外的表现

OpenGL -- "包装模式"(Wrapping Model)

DirectX -- "纹理寻址模式"(Texture Addressing Mode)

 

Repeat —— 重复

Mirror —— 镜像

Clamp —— 这个图形的边界

Border —— 当超过这个范围的其他位置的颜色需要设置

纹理采样设置之 Filter Model

过滤设置,当纹理通过变化产生拉伸的时候,要使用哪种滤波来进行纹理的表现

 

最邻近

最邻近插值,思想就是他的名字,找插入像素点位置的最邻近的像素点,将其作为自己的像素值插入。

缩放公式为:

  • 根据横轴,即宽可得:X/x = W/w

  • 根据纵轴,即高可得:Y/y = H/h

  • 那么能够得到 f(X,Y)= f( W/w * x, H/h *y)

因此这个时候缩放后的图片像素点(x,y)的像素值就对应着原图像素点( W/w * x, H/h *y)的像素值

但是这个时候会出现一个问题就是因为缩放比例的原因,会导致像素点( W/w * x, H/h *y)中的值不是整数,那么就不知道应该对应的是哪个像素点的像素值

这个时候最邻近插值算法使用的方法就是四舍五入法,表示为[.],所以像素值f(x,y) = f( [W/w * x], [H/h *y])

举个例子,如果原图为55,缩放后的图为33,那么缩放后的图的像素点(1,1)对应的就是原图中([5/3 * 1], [5/3 * 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值