Creates and a new p5.Framebuffer object.
p5.Framebuffer objects are separate drawing surfaces that can be used as textures in WebGL mode. They're similar to p5.Graphics objects and generally run much faster when used as textures.
The parameter, options
, is optional. An object can be passed to configure the p5.Framebuffer object. The available properties are:
format
: data format of the texture, eitherUNSIGNED_BYTE
,FLOAT
, orHALF_FLOAT
. Default isUNSIGNED_BYTE
.channels
: whether to storeRGB
orRGBA
color channels. Default is to match the main canvas which isRGBA
.depth
: whether to include a depth buffer. Default istrue
.depthFormat
: data format of depth information, eitherUNSIGNED_INT
orFLOAT
. Default isFLOAT
.stencil
: whether to include a stencil buffer for masking.depth
must betrue
for this feature to work. Defaults to the value ofdepth
which istrue
.antialias
: whether to perform anti-aliasing. If set totrue
, as in{ antialias: true }
, 2 samples will be used by default. The number of samples can also be set, as in{ antialias: 4 }
. Default is to match setAttributes() which isfalse
(true
in Safari).width
: width of the p5.Framebuffer object. Default is to always match the main canvas width.height
: height of the p5.Framebuffer object. Default is to always match the main canvas height.density
: pixel density of the p5.Framebuffer object. Default is to always match the main canvas pixel density.textureFiltering
: how to read values from the p5.Framebuffer object. EitherLINEAR
(nearby pixels will be interpolated) orNEAREST
(no interpolation). Generally, useLINEAR
when using the texture as an image andNEAREST
if reading the texture as data. Default isLINEAR
.
If the width
, height
, or density
attributes are set, they won't automatically match the main canvas and must be changed manually.
Note: createFramebuffer()
can only be used in WebGL mode.
示例
语法
createFramebuffer([options])
参数
options
Object:
configuration options.
Returns
p5.Framebuffer: new framebuffer.
Notice any errors or typos? Please let us know. Please feel free to edit src/core/rendering.js and open a pull request!