创建一个具有可选初始颜色、深度和模板附件的framebuffer。framebuffer用于渲染到纹理效果;它们允许我们在一次传递中渲染到纹理,并在稍后传递中读取它。
Name | Type | Description |
---|---|---|
options |
Object |
如下面示例所示的初始framebuffer附件。需要context 。
可能的属性有colorTextures 、colorRenderbuffers 、depthTexture 、depthRenderbuffer 、stencilRenderbuffer 、depthStencilTexture 和depthStencilRenderbuffer 。 |
Throws:
-
DeveloperError : 不能同时拥有颜色纹理和颜色 renderbuffer 附件。
-
DeveloperError : 不能同时拥有深度纹理和深度呈现buffer附件。
-
DeveloperError : 无法同时拥有深度模版纹理和深度模版呈现buffer附件。
-
DeveloperError : 不能同时拥有深度和深度模版渲染buffer。
-
DeveloperError : 不能同时使用模版和深度模版渲染buffer。
-
DeveloperError : 不能同时拥有深度和模版渲染buffer。
-
DeveloperError : 彩色纹理像素格式必须是彩色格式。
-
DeveloperError : 深度纹理像素格式必须是 DEPTH_COMPONENT。
-
DeveloperError : 深度-模板-纹理像素格式必须是 DEPTH_STENCIL。
-
DeveloperError : 颜色附件的数量超过了支持的数量。
Example:
// Create a framebuffer with color and depth texture attachments.
var width = context.canvas.clientWidth;
var height = context.canvas.clientHeight;
var framebuffer = new Framebuffer({
context : context,
colorTextures : [new Texture({
context : context,
width : width,
height : height,
pixelFormat : PixelFormat.RGBA
})],
depthTexture : new Texture({
context : context,
width : width,
height : height,
pixelFormat : PixelFormat.DEPTH_COMPONENT,
pixelDatatype : PixelDatatype.UNSIGNED_SHORT
})
});
Members
-
为 true 时,framebuffer拥有其附件,因此当调用
Framebuffer#destroy
或为附件点分配新附件时,这些附件将被销毁。-
Default Value:
- Framebuffer#destroy
true
See:
-
如果framebuffer具有深度附件,则为true。深度附件包括深度和深度模板纹理,以及深度和深度模板渲染缓冲区。当渲染到framebuffer时,需要深度附件才能使深度测试生效。
-
framebuffer的状态。如果状态不是 WebGLConstants.FRAMEBUFFER_COMPLETE,则在尝试渲染framebuffer时会产生
DeveloperError
错误。