You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The purpose of the postprocessing library is to provide advanced real-time image effects for the popular 3D library [three.js](https://threejs.org/). It was originally created based on the [three.js examples](https://threejs.org/examples/?q=postprocessing) in the context of a university research project in 2015 and continues to evolve as a free, open-source library.
18
+
Postprocessing is an advanced, real-time image processing library for [three.js](https://threejs.org/). It was originally created based on the [three.js examples](https://threejs.org/examples/?q=postprocessing) in the context of a university research project in 2015 and continues to evolve as a free, open-source library.
20
19
21
20
## Compatibility Policy
22
21
23
-
Postprocessing aims to support the six most recent releases of three. Older releases may still work but are not officially supported. The release schedule of this library is not strictly tied to three, meaning that official support for the latest release can fall behind by a few days. Releases follow [semantic versioning](https://semver.org/).
22
+
This library aims to support the six most recent releases of three. Older releases may still work but are not officially supported. The release schedule of this library is not strictly tied to three, meaning that official support for the latest release can fall behind by a few days. Releases follow [semantic versioning](https://semver.org/).
24
23
25
24
> [!NOTE]
26
25
> Please note that this library is not compatible with three's own postprocessing examples due to API differences.
27
26
28
27
## Concepts
29
28
30
-
Postprocessing extends the common rendering workflow with fullscreen image manipulation tools. It uses render pipelines to group and run passes and connects resources through explicit inputs and outputs on the passes.
31
-
32
-
WIP
29
+
Postprocessing extends the common rendering workflow with fullscreen image manipulation tools. It uses render pipelines to organize and run passes with explicit input/output management to facilitate smart resource usage and efficiency. Render logic and shaders are highly optimized to ensure production-ready performance and reliability across devices.
33
30
34
31
## Performance
35
32
36
-
This library provides an `EffectPass` that implements a structured mechanism for merging fullscreen effects into a single composite shader by gathering shader functions, varyings, uniforms, macros and individual blend functions. This minimizes the amount of render operations and makes it possible to combine many effects without the performance penalties of traditional pass chaining.
33
+
This library provides an `EffectPass` that implements a structured mechanism for merging fullscreen effects into a single composite shader with configurable blend functions per effect. This minimizes the amount of render operations and makes it possible to combine many effects in interesting ways without the performance penalties of traditional pass chaining.
34
+
35
+
All fullscreen render operations also use a [single shared triangle](https://michaldrobot.com/2014/04/01/gcn-execution-patterns-in-full-screen-passes/) that fills the screen. Compared to using a quad, this approach harmonizes with modern GPU rasterization patterns and eliminates unnecessary fragment calculations along the screen diagonal. This is especially beneficial for effects that use complex fragment shaders.
37
36
38
-
All fullscreen render operations also use a [single shared triangle](https://michaldrobot.com/2014/04/01/gcn-execution-patterns-in-full-screen-passes/) that fills the screen. Compared to using a quad, this approach harmonizes with modern GPU rasterization patterns and eliminates unnecessary fragment calculations along the screen diagonal. This is especially beneficial for GPGPU passes and effects that use complex fragment shaders.
37
+
Modern image effects rely on additional geometry data such as view space normals and fragment velocity. Postprocessing uses [MRT](https://registry.khronos.org/webgl/specs/latest/2.0/#3.7.11) under the hood to render this data as needed during the main scene render operation.
0 commit comments