Files
engine/docs/zh/graphics/texture/texture.mdx
2025-06-03 14:52:23 +08:00

72 lines
3.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
order: 0
title: 纹理总览
type: 图形
group: 纹理
label: Graphics/Texture
---
纹理是 3D 渲染中最常用的资源之一。通过纹理,我们可以为模型的每个片元设置颜色值,从而实现更加丰富的美术效果,主要作用包括:
- 材质属性:纹理可以用来定义物体的材质属性,比如基础颜色和图案、光泽度、金属感和粗糙度等。
- 环境效果:实现[天空盒](/docs/graphics/background/sky/)、环境反射等特效。
Galacean 引擎支持所有 WebGL 标准的纹理纹理可以来源于图片、canvas 画布、原始数据、视频等。
## 类型
| 类型 | 描述 |
| :--------------------------------------- | :----------------------------------------------------------------- |
| [2D 纹理](/docs/graphics/texture/2d/) | 最常用的美术资源,使用二维 UV 坐标进行采样 |
| [立方纹理](/docs/graphics/texture/cube/) | 6 张 2D 纹理组成了一个立方纹理,可以用来实现天空盒、环境反射等特效 |
| [2D 纹理数组](/apis/core/#Texture2DArray) | 只占用一个纹理单元,非常适合用来实现需要切换纹理图集的需求 |
## 属性
<Image src ="https://gw.alipayobjects.com/zos/OasisHub/c4945cc8-8cba-48a7-85ae-f6f2903fcfe1/image-20250529143945756.png" />
### sRGB
决定该纹理数据是否是 sRGB 颜色空间,默认为 `true`,如果是法线纹理等线性数据,我们需要关闭该开关,更多详情可以查看[色彩空间](/docs/core/color/)。
### mipmap
**引擎默认开启 [mipmap](/apis/core/#Texture-generateMipmaps)**用于在低分辨率屏幕中采样高分辨率纹理时提高性能和精度。WebGL2.0 支持任意分辨率的纹理,但 WebGL1.0 环境下需要上传 **2 次幂纹理**(如 1024x512否则会自动关闭 mipmap。
<Image src="https://gw.alipayobjects.com/mdn/rms_d27172/afts/img/A*mTBvTJ7Czt4AAAAAAAAAAAAAARQnAQ" />
### 过滤模式
纹素和屏幕像素通常不会完全对应可以通过过滤模式控制放大Mag和缩小Min时的采样方式
| 采样过滤模式 | 描述 |
| :----------- | :----------------------------------------------------- |
| Point | 使用距离采样点最近的纹素 |
| Bilinear | 使用距离最近的 2\*2 纹素矩阵的平均值 |
| Trilinear | 在双线性过滤的基础上,对 mipmap 层级也进行了平均值过滤 |
### 循环模式
纹理采样的范围为 `[0,1]`,当 UV 坐标超出范围时,可以通过循环模式控制采样方式:
| 采样循环模式 | 描述 |
| :----------- | :---------------------------- |
| Clamp | 超出范围采样边缘纹素 |
| Repeat | 超出范围从 [0,1] 开始重新采样 |
| Mirror | 超出范围从 [1,0] 开始镜像采样 |
### 各向异性过滤等级
各向异性过滤技术可以使纹理在倾斜角度下观看会更加清晰。1 ~ 16 ,具体要看设备支持情况。
### 色彩膨胀
为了解决带透明像素图片在 Alpha 值突变处出现黑边的问题,编辑器内置了色彩膨胀功能。该功能是通过将图片中所有透明像素的 RGB 值改写为与其最临近非完全透明像素的 RGB 值,达到去除图片黑边的效果。
### 纹理压缩
通过压缩纹理可以有效降低显存和提升图片解码速度,详情查看[纹理压缩](/docs/graphics/texture/compression/)。