纹理
纹理就像画皮,要什么贴什么
纹理(Texture)常用于附着在网格模型(Mesh)表面,以简单快速地表现物体表面的颜色。
示例
使用
Tinoe 内的纹理通过Stage
提供的资源加载能力来创建,加载过程是异步的。
// 2D纹理
const texture = await stage.loader.loadTexture2D('/path/to/source');
// 纹理盒
const textureCube = await stage.loader.loadTextureCube([
face: TextureCubeFace.PositiveX,
url: 'path/to/facePosX'
],[
face: TextureCubeFace.PositiveY,
url: 'path/to/facePosY'
],[
face: TextureCubeFace.PositiveZ,
url: 'path/to/facePosZ'
],[
face: TextureCubeFace.NegativeX,
url: 'path/to/faceNegX'
],[
face: TextureCubeFace.NegativeY,
url: 'path/to/faceNegY'
],[
face: TextureCubeFace.NegativeZ,
url: 'path/to/faceNegZ'
]);
除此之外,Tinoe 还提供了CanvasTexture
方便用户从画布创建纹理:
// 创建Canvas元素
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
// 绘制纯红色canvas
if (context) {
context.fillStyle = 'red';
context.fillRect(0, 0, 16, 16);
}
// 使用上述canvas创建纹理
const texture = new CanvasTexture({
source: canvas,
});
纹理属性
纹理创建后可以设置 filterMode、wrapMode、mipmap、anisotropyLevel 等属性,属性含义详见 这里
const tex = await stage.loader.loadTexture2D('/path/to/source');
tex.wrapModeS = TextureWrapMode.Repeat;
tex.wrapModeT = TextureWrapMode.Repeat;
tex.anisotropyLevel = 16;