WebGL2RenderingContext.texImage3D() - Web API 接口参考 编辑
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
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);
参数
target
-
GLenum
指定绑定纹理图像类型。可能值:gl.TEXTURE_3D
: 一个3D贴图gl.TEXTURE_2D_ARRAY
: 一个2D数组贴图
level
GLint
指定细节等级。level0是基础图片等级, n是第n个mipmap纹理衰减等级。(译者注:原文中衰减应该指像素,并且注意,webgl的Mipmapping技术要求顶层图像的行和列的维数均为2的幂)internalformat
GLint
指定贴图的颜色组成,可能值为:gl.ALPHA
: 忽略红色,绿色,蓝色分量值只读取alpha信息。gl.RGB
: 忽略alpha信息,读取红绿蓝分量gl.RGBA
: 从颜色缓冲(colorBuffer)读取红色,绿色,蓝色和alpha分量gl.LUMINANCE
:每个颜色组件都是亮度组件,alpha值为1.0.gl.LUMINANCE_ALPHA
:每个组件都是亮度/alpha 组件(component) .gl.R8
gl.R16F
gl.
R32Fgl.R8UI
gl.RG8
gl.RG16F
gl.RG32F
gl.RGUI
gl.RGB8
gl.SRGB8
gl.RGB565
gl.R11F_G11F_B10F
gl.RGB9_E5
gl.RGB16F
gl.RGB32F
gl.RGB8UI
gl.RGBA8
gl.SRGB_APLHA8
gl.RGB5_A1
gl.RGBA4444
gl.RGBA16F
gl.RGBA32F
gl.RGBA8UI
width
-
GLsizei
指定纹理的宽度 height
GLsizei
指定纹理的高度depth
GLsizei
指定纹理的深度信息border
GLint
指定边框宽度,必须为0format
GLenum
制定纹素的版本。正确的内部格式
组合被列举在 这个列表。type
- A
GLenum
指定纹素的数据类型,可能值:gl.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_SHORT
gl.SHORT
gl.UNSIGNED_INT
gl.INT
gl.HALF_FLOAT
gl.FLOAT
gl.UNSIGNED_INT_2_10_10_10_REV
gl.UNSIGNED_INT_10F_11F_11F_REV
gl.UNSIGNED_INT_5_9_9_9_REV
gl.UNSIGNED_INT_24_8
gl.FLOAT_32_UNSIGNED_INT_24_8_REV
(pixels must benull
)
source
- 其中一个对象可以用作纹理对象的源:
- offset
- 一个针对于
WebGLBuffer
所储存数据的GLintptr
字节的偏移量。用来重新加载已经用WebGLBuffer
绑定到PIXEL_UNPACK_BUFFER
的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) |
---|---|---|
WebGL 2.0 texImage3D | Editor's Draft | Updated definition for WebGL. |
OpenGL ES 3.0 glTexImage3D | Standard | Man page of the (similar) OpenGL ES 3.0 API. |
浏览器兼容性
BCD tables only load in the browser
此页面上的兼容性表格已经由构造数据生成,如果想为数据做出贡献,请点击https://github.com/mdn/browser-compat-data并且给我们一个回复
另见
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论