--- title: WebGL2RenderingContext.texImage3D() slug: Web/API/WebGL2RenderingContext/texImage3D translation_of: Web/API/WebGL2RenderingContext/texImage3D ---
WebGL API 的 WebGLRenderingContext.texImage3D()方法指定一个3d(three-dimensional)纹理贴图。
void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, GLintptr offset); void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, HTMLCanvasElement source); void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, HTMLImageElement source); void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, HTMLVideoElement source); void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ImageBitmap source); void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ImageData source); void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ArrayBufferView? srcData); void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ArrayBufferView srcData, srcOffset);
targetgl.TEXTURE_3D: 一个3D贴图gl.TEXTURE_2D_ARRAY: 一个2D数组贴图levelinternalformatgl.ALPHA: 忽略红色,绿色,蓝色分量值只读取alpha信息。gl.RGB: 忽略alpha信息,读取红绿蓝分量gl.RGBA: 从颜色缓冲(colorBuffer)读取红色,绿色,蓝色和alpha分量gl.LUMINANCE:每个颜色组件都是亮度组件,alpha值为1.0.gl.LUMINANCE_ALPHA:每个组件都是亮度/alpha 组件(component) .gl.R8gl.R16Fgl.R32Fgl.R8UIgl.RG8gl.RG16Fgl.RG32Fgl.RGUIgl.RGB8gl.SRGB8gl.RGB565gl.R11F_G11F_B10Fgl.RGB9_E5gl.RGB16Fgl.RGB32Fgl.RGB8UIgl.RGBA8gl.SRGB_APLHA8gl.RGB5_A1gl.RGBA4444gl.RGBA16Fgl.RGBA32Fgl.RGBA8UIwidthheightdepthborderformat内部格式 组合被列举在 这个列表。typegl.UNSIGNED_BYTE: 每个gl.RGBA对应8个字节gl.UNSIGNED_SHORT_5_6_5: 红色占五个字节,绿色占六个字节,蓝色占五个字节gl.UNSIGNED_SHORT_4_4_4_4: 红色占四个字节,绿色占 四 个字节,蓝色占 四 个字节gl.UNSIGNED_SHORT_5_5_5_1:红色占五个字节,绿色占五个字节,蓝色占五个字节,alpha占一个字节gl.BYTE (这些属性的信息原文中均未提到,但是在webgl1中出现过,可以适当参考webgl1文献)gl.UNSIGNED_SHORTgl.SHORTgl.UNSIGNED_INTgl.INTgl.HALF_FLOATgl.FLOATgl.UNSIGNED_INT_2_10_10_10_REVgl.UNSIGNED_INT_10F_11F_11F_REVgl.UNSIGNED_INT_5_9_9_9_REVgl.UNSIGNED_INT_24_8gl.FLOAT_32_UNSIGNED_INT_24_8_REV (pixels must be {{jsxref("null")}})sourceWebGLBuffer绑定到PIXEL_UNPACK_BUFFER的{{domxref("WebGLTexture")}} 。没有
gl.texImage3D(gl.TEXTURE_3D,
0, // level
gl.RGBA, // internalFormat
1, // width
1, // height
1, // depth
0, // border
gl.RGBA, // format
gl.UNSIGNED_BYTE, // type
new Uint8Array([0xff, 0x00, 0x00, 0x00])); // data
| 说明(Specification ) | 状态(Status) | 意见(Comment) |
|---|---|---|
| {{SpecName('WebGL2', "#3.7.6", "texImage3D")}} | {{Spec2('WebGL2')}} | Updated definition for WebGL. |
| {{SpecName('OpenGL ES 3.0', "glTexImage3D.xhtml", "glTexImage3D")}} | {{Spec2('OpenGL ES 3.0')}} | Man page of the (similar) OpenGL ES 3.0 API. |
{{Compat("api.WebGL2RenderingContext.texImage3D")}}