-
Notifications
You must be signed in to change notification settings - Fork 493
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3052 from MrKylinGithub/master
feat(publish:3.8:pro):add English doc for CRP
- Loading branch information
Showing
9 changed files
with
924 additions
and
11 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,44 @@ | ||
# Render Pipeline Overview (Experimental) | ||
# Render Pipeline Overview | ||
|
||
RenderPipeline is used to control the rendering process of a scene, including lighting management, object culling, render object sorting, render target switching, etc. Since each stage can be handled differently and optimally for different projects, it is difficult to achieve optimal results with a uniform approach to the rendering process for different types of projects. The customizable render pipeline is used to provide more flexible control over each stage in the rendered scene, allowing for deeper optimization solutions for different projects. | ||
![lut_cocos](./image/lut_cocos.jpg) | ||
|
||
Among the customizable render pipelines, one can choose to use the engine's built-in render pipeline. The built-in pipeline includes a **forward render pipeline** and a **deferred render pipeline**, and the engine uses the forward render pipeline by default. Please refer to the [Built-in Render Pipeline](builtin-pipeline.md) documentation for details. | ||
RenderPipeline is used to control the rendering process of a scene, including light management, object culling, rendering object sorting, and rendering target switching. Since each stage can have different optimization methods for different projects, it is difficult to achieve the most optimized results with a unified method for handling the rendering processes of different types of projects. A customizable render pipeline is used for more flexible control over each stage of the rendering scene, allowing for deeper optimization solutions tailored to different projects. | ||
|
||
<!-- | ||
Developers can also create a new render pipeline asset to extend the render pipeline themselves. In the render pipeline asset you can manage each stage of the rendering process and then set each parameter in the editor. For details, please refer to the following documentations: | ||
Since Cocos Creator 3.8.4, there are two sets of render pipelines: the new render pipeline and the legacy render pipeline. | ||
|
||
- [Custom Render Pipeline](user-pipeline.md) | ||
## New Render Pipeline | ||
|
||
- [Post-Processing](post-process.md) | ||
--> | ||
Cocos Creator 3.8.4 introduces a brand-new customizable render pipeline, CRP - Customizable Render Pipeline. | ||
|
||
The new customizable render pipeline mainly includes the following benefits: | ||
|
||
1. In Cocos Creator 3.8.4 and above, the engine's built-in render pipeline is based on the CRP pipeline, making the engine's built-in pipeline and the user's custom pipeline have the same rendering mechanism and process, with stronger compatibility and stability. | ||
2. Based on the CRP pipeline, developers can write rendering processes compatible with all platforms without modifying the engine's source code. | ||
3. Based on the CRP pipeline, developers can customize rendering processes according to the project's needs, remove unnecessary rendering processes, save overhead, and improve performance. | ||
4. Based on the RenderGraph rendering architecture in the CRP pipeline, developers can easily reuse and add rendering processes to achieve the advanced rendering effects and post-effects required by the project. | ||
|
||
Related documentation is as follows: | ||
|
||
- [Using Built-in Render Pipeline](./use-builtin-pipeline.md) | ||
- [Using Post-Processing Effects](./use-post-process.md) | ||
- [Writing a Render Pipeline (Advanced)](./write-render-pipeline.md) | ||
|
||
## Legacy Render Pipeline | ||
|
||
The legacy render pipeline, which started from Cocos Creator 3.0, is a set of render pipeline built based on the traditional rendering architecture. | ||
|
||
It includes forward rendering and deferred rendering. It does not support custom rendering processes and post-effects. | ||
|
||
The legacy render pipeline will be removed in the next major version. It is recommended that everyone use the new render pipeline in new projects. | ||
|
||
Related documentation is below: | ||
|
||
- [Built-in Render Pipeline - Legacy](./builtin-pipeline.md) | ||
- [Custom Render Pipeline - Legacy](./custom-pipeline.md) | ||
- [Post-Effects - Legacy](./post-process.md) | ||
|
||
## Compatibility Mechanism Between New and Legacy Render Pipelines | ||
|
||
1. New projects created in Cocos Creator 3.8.4+ default to use the new pipeline. | ||
2. If an old project did not use a custom pipeline, it will use the lagecy render pipeline after upgrading. | ||
3. If an old project used a custom pipeline, it will use the new render pipeline after upgrading. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
# Post-processing | ||
# Post-Processing Effects | ||
|
||
> **Note**:We updated the post process document since v3.8 which can be found here [Full-Screen Post Process](./post-process/index.md). | ||
Users of versions v3.8.3 and below, please refer to the documentation: [Fullscreen Effect Post-Processing Workflow](./post-process/index.md). | ||
|
||
To create a new post-processing effect, create a new RenderFlow script and set its type to POSTPROCESS. The production process is the same as other RenderFlow, but RenderPipeline does not automatically perform post-processing, it is necessary to set the `flows` property in the Camera to specify which post-processing to perform. | ||
Users of versions v3.8.4 and below, please refer to the documentation: [Using Post-Processing Effects](./use-post-process.md). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# Using the Built-in Render Pipeline | ||
|
||
Select the **New Render Pipeline** in the Project menu -> Project Settings -> Graphics Settings. | ||
|
||
![builtin-enable](./image/builtin-enable.jpg) | ||
|
||
The default render pipeline is the built-in render pipeline named **Builtin**. | ||
|
||
## Built-in Render Pipeline | ||
|
||
The built-in render pipeline (Builtin) is an implementation based on the CRP - Customizable Render Pipeline, providing basic cross-platform rendering capabilities suitable for all platforms. | ||
|
||
The current built-in render pipeline supports the following features: | ||
|
||
- Forward rendering | ||
- Multisample Anti-aliasing (MSAA) | ||
- Real-time shadows | ||
- Post-processing, including (Bloom, Color Grading, FXAA, FSR, etc.) | ||
|
||
It can meet almost all the needs of conventional projects. | ||
|
||
## BuiltinPipelineSettings Component | ||
|
||
Each camera in the scene is rendered in order and output to the screen or render texture. | ||
|
||
We can add a `BuiltinPipelineSettings` component to each camera node to set up the rendering for that camera. | ||
|
||
Through this component, we can control the camera's output behavior and post-effects. | ||
|
||
> For user's custom render pipelines, it is recommended to copy the source code of this component into the project and modify it as needed. | ||
## Editor Preview (Experimental) | ||
|
||
When the `Editor Preview (Experimental)` is checked, you can directly preview the rendering effects in the scene editor. | ||
|
||
![builtin-editor-preview](./image/builtin-editor-preview.jpg) | ||
|
||
Since scene rendering may include post-effects, previewing in the editor may have performance impacts, and some editor effects may display abnormally. | ||
|
||
## Using Post-Processing Effects | ||
|
||
For the configuration and use of post-processing effects, please refer to the document: [Using Post-Processing Effects](./use-post-process.md) | ||
|
||
## Code Location | ||
|
||
The implementation of the built-in render pipeline is located at `editor/assets/default_renderpipeline/builtin-pipeline.ts`. | ||
|
||
The `BuiltinPipelineBuilder` class implements the main functionalities of the built-in pipeline. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Using Post-Processing Effects | ||
|
||
> **Note**: This document is applicable to users of Cocos Creator v3.8.4 and above. For users of v3.8.3 and below, please refer to the document: [Fullscreen Effect Post-Processing Workflow](./post-process/index.md). | ||
## Adding Components | ||
|
||
Every camera in the scene can have a `BuiltinPipelineSettings` component added. `BuiltinPipelineSettings` is used for rendering settings of the current camera, including post-processing effects. | ||
|
||
When enabling the corresponding features, you need to attach the required materials and textures, which are generally prefixed with "builtin", as shown in the figure below. | ||
|
||
![builtin-pipeline-settings](./image/builtin-pipeline-settings.png) | ||
|
||
## Multisample Anti-aliasing (MSAA) | ||
|
||
Multisample Anti-aliasing (MSAA) is an anti-aliasing technique that eliminates the jagged edges of images by blending samples of different depths during the lighting phase. | ||
|
||
Currently supports 2X and 4X multisampling, which is only enabled on native platforms. | ||
|
||
On Web platforms, the `antialias` feature of `WebGL` is used, enabled by the `ENABLE_WEBGL_ANTIALIAS` macro. | ||
|
||
## Shading Scale | ||
|
||
`Shading Scale` is a rendering optimization technique that improves rendering performance by reducing the rendering resolution and thus decreasing the rendering burden. | ||
|
||
For example, if the window size is 1920x1080 and the `Shading Scale` is 0.5, the rendering resolution will be 960x540. | ||
|
||
It is suitable for scenes with high rendering pressure and can be used in conjunction with super-resolution technology to enhance image quality. | ||
|
||
For the UI rendering, the original resolution will be used. | ||
|
||
The `Shading Scale` property set on the `BuiltinPipelineSettings` component only affects the current camera. | ||
|
||
## Bloom | ||
|
||
Bloom is a post-processing effect that enhances the brightness of the image by extracting the bright parts of the image, blurring them, and then superimposing them on the original image. | ||
|
||
`Bloom Iterations` is the number of bloom iterations, and `Bloom Threshold` is the bloom threshold value. | ||
|
||
## Color Grading | ||
|
||
Color Grading is a post-processing effect that adjusts the color effects of the image through a grading map LUT. | ||
|
||
## Fast Approximate Anti-aliasing (FXAA) | ||
|
||
Fast Approximate Anti-aliasing (FXAA) is an anti-aliasing technique that eliminates the jagged edges of images by smoothing the image. | ||
|
||
## FidelityFX Super Resolution (FSR) | ||
|
||
FidelityFX Super Resolution is a rendering technique that enhances image quality by reducing the rendering resolution and then improving the image quality through algorithms. | ||
|
||
The currently used technology is `AMD FidelityFX Super Resolution`. | ||
|
||
It is currently only effective when `Shading Scale < 1`. | ||
|
||
## Tone Mapping | ||
|
||
Tone Mapping is a post-processing effect that improves the visual effect of the image by adjusting its tonal range. | ||
|
||
Currently, Color Grading integrates the Tone Mapping, and if you want to customize it, you need to modify it in conjunction. |
Oops, something went wrong.