PostFXPipeline

.Renderer.WebGL.Pipelines. PostFXPipeline

邮政外汇管道是一种专门用于处理邮政的特殊管道 加工效果.其中-作为标准管道,允许您控制流程 通过配置用于绘制游戏对象的着色器和属性来渲染游戏对象, 后外汇管道设计允许你在游戏对象后应用处理 被渲染了.后处理效果的典型例子是布隆过滤器, 模糊,光效和色彩处理. 流水线的工作原理是创建一个只有一个硬编码四边形的微小顶点缓冲区 在里面.游戏对象可以有一个后期管道设置.然后渲染这些对象 使用它们的标准管道,但被重定向到 发布管道,然后可以在传递它们之前应用它们自己的着色器和效果 回到主渲染器. 请参阅相位器3的例子,了解更多关于这个广泛主题的细节. 它使用的默认片段着色器可以在 `shaders/src/PostFX.frag` 中找到. 它使用的默认顶点着色器可以在 `shaders/src/Quad.vert` 中找到. 此管道的默认着色器属性是: `inPosition` (vec2,偏移量0) `zntexcoord` (vec 2,偏移量8) 顶点数组布局为: -1, 1 B----C 1, 1 0, 1 | /| 1, 1 | / | | / | |/ | -1, -1 A----D 1, -1 0, 0 1, 0 A = -1, -1 (pos) and 0, 0 (uv) B = -1, 1 (pos) and 0, 1 (uv) C = 1, 1 (pos) and 1, 1 (uv) D = 1, -1 (pos) and 1, 0 (uv) 第一三:甲,乙,丙 第二个三: A, C, D 数组索引: 0 = Tri 1 - Vert A - x pos 1 = Tri 1 - Vert A - y pos 2 = Tri 1 - Vert A - uv u 3 = Tri 1 - Vert A - uv v 4 = Tri 1 - Vert B - x pos 5 = Tri 1 - Vert B - y pos 6 = Tri 1 - Vert B - uv u 7 = Tri 1 - Vert B - uv v 8 = Tri 1 - Vert C - x pos 9 = Tri 1 - Vert C - y pos 10 = Tri 1 - Vert C - uv u 11 = Tri 1 - Vert C - uv v 12 = Tri 2 - Vert A - x pos 13 = Tri 2 - Vert A - y pos 14 = Tri 2 - Vert A - uv u 15 = Tri 2 - Vert A - uv v 16 = Tri 2 - Vert C - x pos 17 = Tri 2 - Vert C - y pos 18 = Tri 2 - Vert C - uv u 19 = Tri 2 - Vert C - uv v 20 = Tri 2 - Vert D - x pos 21 = Tri 2 - Vert D - y pos 22 = Tri 2 - Vert D - uv u 23 = Tri 2 - Vert D - uv v

Constructor

new PostFXPipeline(config)

Since:
  • 3.50.0
Parameters:
Name Type Description
config Phaser.Types.Renderer.WebGL.WebGLPipelineConfig 此管道的配置选项.

Extends

Members

active :boolean

Since:
  • 3.10.0
Inherited From:
指示当前管道是否处于活动状态. 切换此属性以启用或禁用管道呈现任何内容.
Type:
  • boolean

bytes :Uint8Array

Since:
  • 3.0.0
Inherited From:
Uint8视图到 `vertexData` ArrayBuffer.用于上传顶点缓冲资源到GPU.
Type:
  • Uint8Array

colorMatrix :Phaser.Display.ColorMatrix

Since:
  • 3.50.0
属于此管道的颜色矩阵实例. 在调用 `drawFrame` 方法时使用.
Type:

config :Phaser.Types.Renderer.WebGL.WebGLPipelineConfig

Since:
  • 3.50.0
Inherited From:
用于创建此管道的配置对象. 将此对象视为 `read only`,因为在创建后更改它不会 以任何方式影响这条管道.但是,它在内部用于克隆 和开机后设置.
Type:

currentRenderTarget :Phaser.Renderer.WebGL.RenderTarget

Since:
  • 3.50.0
Inherited From:
对 `WebGlPipeline.RenderTargets` 数组中当前绑定的渲染目标实例的引用.
Type:

currentShader :Phaser.Renderer.WebGL.WebGLShader

Since:
  • 3.50.0
Inherited From:
对 `WebGLPipeline.shaders` 数组中当前绑定的WebGLShader实例的引用. 对于许多管道,这是唯一的着色器,所以这是一种快速引用它的方法 数组查找.
Type:

currentUnit :number

Since:
  • 3.50.0
Inherited From:
保存最近分配的纹理单元. 将该值视为只读.
Type:
  • number

forceZero :boolean

Since:
  • 3.50.0
Inherited From:
有些管道需要强制使用纹理零(像光管道). 在这种情况下,应该设置此属性.
Type:
  • boolean

fullFrame1 :Phaser.Renderer.WebGL.RenderTarget

Since:
  • 3.50.0
Default Value:
  • null
属于的全帧1渲染目标的引用 公用管道.该属性在 `boot` 方法中设置. 该渲染目标是渲染器的全部大小. 您可以在多目标效果的后期效果管道中直接使用它. 但是,请注意,这些目标在所有外汇交易管道之间共享.
Type:

fullFrame2 :Phaser.Renderer.WebGL.RenderTarget

Since:
  • 3.50.0
Default Value:
  • null
属于的全帧2渲染目标的引用 公用管道.该属性在 `boot` 方法中设置. 该渲染目标是渲染器的全部大小. 您可以在多目标效果的后期效果管道中直接使用它. 但是,请注意,这些目标在所有外汇交易管道之间共享.
Type:

game :Phaser.Game

Since:
  • 3.0.0
Inherited From:
管道绑定到的相位器游戏实例.
Type:

gameObject :Phaser.GameObjects.GameObject

Since:
  • 3.50.0
如果这个后管道属于一个游戏对象或摄像机,那么它包含一个对它的引用.
Type:

gl :WebGLRenderingContext

Since:
  • 3.0.0
Inherited From:
此WebGL管道使用的WebGL上下文.
Type:
  • WebGLRenderingContext

glReset :boolean

Since:
  • 3.53.0
Inherited From:
自上次以来,总帐上下文是否已重置为移相器默认值 这条管道被封了?当管道管理器 通常在移交给第三方渲染器(如Spine)后,重置自身. 您应该将此属性视为只读.
Type:
  • boolean

halfFrame1 :Phaser.Renderer.WebGL.RenderTarget

Since:
  • 3.50.0
Default Value:
  • null
属于的半帧1渲染目标的引用 公用管道.该属性在 `boot` 方法中设置. 此渲染目标是渲染器大小的一半. 您可以在多目标效果的后期效果管道中直接使用它. 但是,请注意,这些目标在所有外汇交易管道之间共享.
Type:

halfFrame2 :Phaser.Renderer.WebGL.RenderTarget

Since:
  • 3.50.0
Default Value:
  • null
属于的半帧2渲染目标的引用 公用管道.该属性在 `boot` 方法中设置. 此渲染目标是渲染器大小的一半. 您可以在多目标效果的后期效果管道中直接使用它. 但是,请注意,这些目标在所有外汇交易管道之间共享.
Type:

(readonly) hasBooted :boolean

Since:
  • 3.50.0
Inherited From:
指示此管道是否已启动. 只有当游戏实例本身以及所有相关联的系统 完全准备好.
Type:
  • boolean

height :number

Since:
  • 3.0.0
Inherited From:
当前视口的高度.
Type:
  • number

(readonly) isPostFX :boolean

Since:
  • 3.50.0
Inherited From:
指示这是否是一个后外汇管道.
Type:
  • boolean

(nullable) manager :Phaser.Renderer.WebGL.PipelineManager

Since:
  • 3.50.0
Inherited From:
对网络总帐管道管理器的引用. 这最初是未定义的,仅在添加此管道时设置 给经理.
Type:

name :string

Since:
  • 3.0.0
Inherited From:
管道的名称.用于游戏对象的识别和设置.
Type:
  • string

projectionHeight :number

Since:
  • 3.50.0
Inherited From:
投影矩阵的缓存高度.
Type:
  • number

projectionMatrix :Phaser.Math.Matrix4

Since:
  • 3.50.0
Inherited From:
投影矩阵,由着色器用作 `uProjectionMatrix` 均匀.
Type:

projectionWidth :number

Since:
  • 3.50.0
Inherited From:
投影矩阵的缓存宽度.
Type:
  • number

renderer :Phaser.Renderer.WebGL.WebGLRenderer

Since:
  • 3.0.0
Inherited From:
此管道绑定到的WebGL渲染器实例.
Type:

renderTargets :Array.<Phaser.Renderer.WebGL.RenderTarget>

Since:
  • 3.50.0
Inherited From:
属于此管道的渲染目标实例的数组.
Type:

shaders :Array.<Phaser.Renderer.WebGL.WebGLShader>

Since:
  • 3.50.0
Inherited From:
属于此管道的所有WebGLShader实例的数组. 着色器管理自己的属性和制服,但共享相同的顶点数据缓冲区, 属于这条管道. 着色器是在调用 `setShadersFromConfig` 方法时设置的,这是自动发生的, 但也可以在游戏中的任何时候调用.有关详细信息,请参见方法文档.
Type:

topology :GLenum

Since:
  • 3.0.0
Inherited From:
管道将用于提交绘制调用的原始拓扑. 如果配置中没有设置,则默认为GL_TRIANGLES.
Type:
  • GLenum

(readonly) vertexBuffer :WebGLBuffer

Since:
  • 3.0.0
Inherited From:
保存顶点数据的网络缓冲区. 从 `vertexData` ArrayBuffer创建.如果在配置中设置了 `vertices` ,则 `STATIC_DRAW` 缓冲区 被创造出来.如果没有,则创建一个 `DYNAMIC_DRAW` 缓冲区.
Type:
  • WebGLBuffer

vertexCapacity :number

Since:
  • 3.0.0
Inherited From:
此管道批处理在刷新之前可以容纳的顶点总数. 这默认为 `renderbatchsize * 6` ,其中 `batchSize` 在渲染器游戏配置中定义.
Type:
  • number

vertexCount :number

Since:
  • 3.0.0
Inherited From:
Default Value:
  • 0
已添加到管道批次的当前顶点数.
Type:
  • number

(readonly) vertexData :ArrayBuffer

Since:
  • 3.0.0
Inherited From:
顶点的原始字节缓冲区. 通过配置对象 `vertices` 属性设置,或生成新的数组缓冲区 大小 `vertexCapacity * vertexSize` .
Type:
  • ArrayBuffer

vertexViewF32 :Float32Array

Since:
  • 3.0.0
Inherited From:
包含管道顶点的数组缓冲区的Float32视图.
Type:
  • Float32Array

vertexViewU32 :Uint32Array

Since:
  • 3.0.0
Inherited From:
包含管道顶点的数组缓冲区的Uint32视图.
Type:
  • Uint32Array

view :HTMLCanvasElement

Since:
  • 3.0.0
Inherited From:
此WebGL管道渲染到的画布.
Type:
  • HTMLCanvasElement

width :number

Since:
  • 3.0.0
Inherited From:
当前视口的宽度.
Type:
  • number

Methods

addListener(event, fn, contextopt) → {this}

Since:
  • 3.0.0
Inherited From:
为给定事件添加侦听器.
Parameters:
Name Type Attributes Default Description
event string | symbol 事件名称.
fn function 侦听器函数.
context * <optional>
this 用来调用侦听器的上下文.
Returns:
`this`.
Type
this

batchQuad(gameObject, x0, y0, x1, y1, x2, y2, x3, y3, u0, v0, u1, v1, tintTL, tintTR, tintBL, tintBR, tintEffect, textureopt, unitopt) → {boolean}

Since:
  • 3.50.0
Inherited From:
将顶点数据添加到批处理中,如果已满,则进行刷新. 假设有6个顶点,排列如下: ``` 0----3 |\ B| | \ | | \ | | A \| | \ 1----2 ``` 其中tx0/ty0 = 0,tx1/ty1 = 1,tx2/ty2 = 2,tx3/ty3 = 3
Parameters:
Name Type Attributes Default Description
gameObject Phaser.GameObjects.GameObject | null 游戏对象,如果有的话,画这个方块.
x0 number 左上角的x位置.
y0 number 左上角的y位置.
x1 number 左下角的x位置.
y1 number 左下角的y位置.
x2 number 右下角的x位置.
y2 number 右下角的y位置.
x3 number