参数
从像素数据加载纹理
gl.texImage2D(target, level, internalformat, width, height, border, format, type, source);
从图像元素加载纹理
gl.texImage2D(target, level, internalformat, format, type, image);
target
gl.TEXTURE_2D
(2D 纹理)
TEXTURE_CUBE_MAP
gl.TEXTURE_CUBE_MAP_POSITIVE_X
(立方体贴图的正 X 面)
gl.TEXTURE_CUBE_MAP_NEGATIVE_X
(立方体贴图的负 X 面)
level
指定纹理的 mipmap 级别
internalformat
gl.RGB
(RGB 颜色)
gl.RGBA
(RGBA 颜色)
gl.RGB16F
(16 位浮点 RGB)
gl.RGBA32F
(32 位浮点 RGBA)
gl.DEPTH_COMPONENT16
(16 位深度纹理)
gl.DEPTH_COMPONENT24
(24 位深度纹理)
gl.DEPTH_COMPONENT32
(32 位深度纹理)
gl.DEPTH24_STENCIL8
(24 位深度 + 8 位模板纹理)。
width
height
border
一般是0
format
gl.RGB
(RGB 颜色)
gl.RGBA
(RGBA 颜色)
gl.DEPTH_COMPONENT
(深度数据)
gl.DEPTH_STENCIL
(深度和模板数据)
gl.RED
(单通道数据)
gl.RG
(双通道数据)。
type
gl.UNSIGNED_BYTE
(8 位无符号整数,通常用于颜色数据)
gl.FLOAT
(32 位浮点数,用于高精度数据)
gl.UNSIGNED_SHORT
(16 位无符号整数)
gl.UNSIGNED_INT_24_8
(24 位深度 + 8 位模板,用于深度模板纹理)。
source
指定输入像素数据的来源。
从像素数据加载纹理是以下类型:
ArrayBufferView
(如 Uint8Array, Float32Array 等)
从图像元素加载纹理可以是以下类型之一:
HTMLImageElement
(从图像加载纹理)
HTMLCanvasElement
(从画布加载纹理)
HTMLVideoElement
(从视频加载纹理)
ImageBitmap
(高性能图像数据)
null
(分配内存但不初始化纹理数据)。