WebGLTexture
WebGLTexture 接口是 WebGL API 的一部分,表示一个不透明纹理对象,提供纹理操作的存储和状态。
WebGL 纹理
WebGLTexture
对象本身没有定义任何方法或属性,其内容也无法直接访问。在使用 WebGLTexture
对象时,WebGLRenderingContext
的以下方法很有用
WebGLRenderingContext.bindTexture()
WebGLRenderingContext.createTexture()
WebGLRenderingContext.deleteTexture()
WebGLRenderingContext.isTexture()
另请参阅 WebGL 教程 中关于 在 WebGL 中使用纹理 的内容。
WebXR 不透明纹理
在使用 WebXR 层时,XRWebGLBinding
对象将返回不透明WebGLTexture
的实例,用于颜色和深度/模板附件。
返回不透明WebGLTexture
对象的 WebXR 方法
WebXR 的不透明纹理与标准的 WebGLTexture
相同,但以下情况除外
- WebXR 不透明纹理在其会话的
requestAnimationFrame()
回调 外无效。 - 在由
XRWebGLBinding.getSubImage()
或XRWebGLBinding.getViewSubImage()
返回之前,WebXR 不透明纹理无效。 - 用于颜色附件的 WebXR 不透明纹理包含具有预乘 alpha 的颜色。
- 在
requestAnimationFrame()
回调 结束时,WebXR 不透明纹理将解除绑定并从所有WebGLShader
对象中分离。 - WebXR 不透明纹理的行为就好像它使用
texStorage2D
或texStorage3D
分配(视情况而定),即使使用 WebGL 1.0 上下文也是如此。 - 如果 WebXR 不透明纹理调用
WebGLRenderingContext.deleteTexture()
,则会抛出INVALID_OPERATION
错误。 - 不允许更改 WebXR 不透明纹理的尺寸或格式。GL 函数只能更改纹素值和纹理参数。
示例
创建纹理
js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const texture = gl.createTexture();
规范
规范 |
---|
WebGL 规范 # 5.9 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
WebGLRenderingContext.bindTexture()
WebGLRenderingContext.createTexture()
WebGLRenderingContext.deleteTexture()
WebGLRenderingContext.isTexture()
WebGLRenderingContext.compressedTexImage2D()
WebGLRenderingContext.compressedTexSubImage2D()
WebGLRenderingContext.copyTexImage2D()
WebGLRenderingContext.copyTexSubImage2D()
WebGLRenderingContext.generateMipmap()
WebGLRenderingContext.getTexParameter()
WebGLRenderingContext.texImage2D()
WebGLRenderingContext.texSubImage2D()
WebGLRenderingContext.texParameterf()
WebGLRenderingContext.texParameteri()