WebGL2RenderingContext.texImage3D() - Web API 接口参考 编辑

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

WebGL APIWebGLRenderingContext.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.R32F
  • gl.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指定边框宽度,必须为0
format
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 be null)
source
其中一个对象可以用作纹理对象的源:
offset
一个针对于WebGLBuffer所储存数据的GLintptr字节的偏移量。用来重新加载已经用WebGLBuffer绑定到PIXEL_UNPACK_BUFFERWebGLTexture

    返回值

    没有

    例子

    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 DraftUpdated definition for WebGL.
    OpenGL ES 3.0
    glTexImage3D
    StandardMan page of the (similar) OpenGL ES 3.0 API.

    浏览器兼容性

    BCD tables only load in the browser

    另见

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
    列表为空,暂无数据

    词条统计

    浏览:131 次

    字数:10194

    最后编辑:8 年前

    编辑次数:0 次

      我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
      原文