Unity 基础纹理

第七章 基础纹理

导言

在OpenGL里,纹理空间的原点位于左下角,而在DirectX中,原点位于左上角。Unity中使用的纹理空间是符合OpenGL的传统的,位于纹理左下角。

一、单张纹理

通常使用一张纹理来代替物体的漫反射颜色。

纹理导入面板

  • Filter Mode ,代表纹理拉伸时的滤波模式,支持3种模式: Point、Bilinear、Trilinear;效果依次增加。
  • 纹理缩小时,多个像素将会对应一个目标像素。我们往往需要处理抗锯齿问题。一个最常用的方法是使用多级渐远纹理(mipmapping)技术。即提前用了滤波处理得到了更多更小的图像,储存起来。运行时,可以直接使用。通常需要多占用33%的空间。
    • Point:使用最近邻滤波,在放大或缩小时,采样像素数目通常只有一个,一次图像看起来有种像素风格。
    • Bilinear:使用线性滤波,对于每个目标像素,它会找到4个近邻像素,然后对它们进行线性插值混合后得到的最终像素,因此图像看起来被模糊了。
    • Trilinear:除了Bilinear所做的工作之外,还会在多级渐远纹理之间进行混合。
  • 纹理的最大尺寸:unity允许不同平台发布游戏时,选择不同的分辨率。如果导入的纹理大小超过了Max Texture Size中的设置值,那么unity将会把该纹理缩放为这个最大分辨率。理想情况下,导入的纹理可以是非正方形的,但长宽的大小应该是2的幂。这样unity内部才能进行压缩,而且GPU读取该纹理的速度更快。

二、凹凸映射

两种凹凸映射做法

  1. 高度映射:使用一张高度纹理来模拟表面位移,然后得到一个修改后的法线值。优点是直观,缺点是消耗运行时性能。高度纹理更多用来存储地形信息。高度图中存储的是强度值,表示模型表面局部的海拔高度。

  2. 法线映射:直接存储表面法线信息,由于法线方向的分量范围在[-1, 1],而像素的分量范围是[0,1],因此我们需要做一个映射,通常使用的映射就是。所以我们从法线纹理进行采样后,需要进行一次反映。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值