Browse Source

Merge pull request #132 from smurly/postfx_workflow

PostFX workflow
smurly 2 years ago
parent
commit
52a4310766
1 changed files with 91 additions and 0 deletions
  1. 91 0
      testing-guidance/workflow-tests/PostFX/PostFx-Layer.md

+ 91 - 0
testing-guidance/workflow-tests/PostFX/PostFx-Layer.md

@@ -0,0 +1,91 @@
+# Editor component PostFX Layer and Modifiers Workflow Tests
+Testing in this area should focus on the PostFX components.
+
+## **General Docs**
+* [O3DE Learn: PostFX Components](https://www.o3de.org/docs/user-guide/components/reference/atom/post-processing-modifiers/)
+* [Post-processing Effects Tutorial](https://www.o3de.org/docs/learning-guide/tutorials/postfx/)
+
+## Common Issues to Watch For
+ - Crashes, soft-locks, hangs when launching Editor.exe or adding a component.
+ - When a component settings value is changed, it has a visual impact on the level. 
+   - The change can be subtle, but if no change is present log an issue
+
+
+## Workflows
+- Create various entities with meshes and materials and place them in the space. 
+  - Add PostFX Layer and Exposure components to an entity and see how it controls render brightness 
+    - Utilize PostFX modifier components to see how they change the Exposure component effects 
+
+## Prepare the level
+Prepare a simple level for all workflows to be run against
+- Launch the editor, and create a new level with default settings 
+
+### Suggested Time Box: 
+5 minutes per workflow per platform. Note that the workflow below is the basic steps, feel free to experiment with other settings during the remaining time.
+- With extra time try adding other PostFX components replacing Exposure (Bloom, Depth of Field, etc)
+- Run both Vulkan and DX12 on Windows. On Linux Vulkan is the only RHI option.
+
+
+---
+### Exposure Control
+
+| Workflow                                   | Requests                                                                                                                                                                                                                                                                       | Things to Watch For                                                                                                                                                                                                                                                                                                                                                                                                |
+|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Exposure Control | <ul><li>Create a new entity<li>Add a `PostFX Layer` component<li>Add a `Exposure Control` component<li>Locate the default `Camera` component on the level or add one, then add a `Tag` component to that entity and set a string value in the elements list to "Exposure"<li>Modify the `PostFX Layer` component property `Select Camera Tags Only` adding a new element with the string "Exposure"<li>Set the `Exposure Control` component's Manual Compensation to `-1.0`<li>Enter game mode `ctrl+g`<li>Exit game mode `esc`<li>Modify properties and enter/exit game mode | <ul><li>Overall brightness of render is impacted by Manual Compensation property<br><br><img width="475" alt="postfx_01" src="https://user-images.githubusercontent.com/26234397/228080734-9ace1120-76e3-4495-84cf-aa9a0eeebea0.png"> |
+
+---
+### Bloom
+
+| Workflow                                   | Requests                                                                                                                                                                                                                                                                       | Things to Watch For                                                                                                                                                                                                                                                                                                                                                                                                |
+|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Bloom | <ul><li>Create a new entity<li>Add a `PostFX Layer` component<li>Add a `Bloom` component<li>Toggle the Enable Bloom property to enabled<li>Locate the Shader Ball entity and add a `Material` component setting the Default Material property to `011_emissive`<li>Locate the `Tag` component on the Camera entity remove previous tag string elements and set a string value in the elements list to "Bloom"<li>Modify the `PostFX Layer` component property `Select Camera Tags Only` adding a new element with the string "Bloom"<li>On the `Bloom` component set the Intensity property to `1.0`<li>Enter game mode `ctrl+g`<li>Exit game mode `esc`<li>Modify properties and enter/exit game mode; toggle the Enable comparing the game mode render enabled/disabled | <ul><li>Tags should prevent the Exposure Control from impacting in game mode for Bloom<li>The emissive material should have a visible glow beyond the surface of the Shader Ball <br><br><img width="237" alt="postfx_03" src="https://user-images.githubusercontent.com/26234397/228080845-d0054130-2ff7-47a5-8445-28fbbde0ca7b.png"> <img width="534" alt="postfx_03_bloom" src="https://user-images.githubusercontent.com/26234397/228080882-bee83bde-a861-4e1b-89f8-ed211b914859.png"> |
+
+---
+### Depth of Field
+
+| Workflow                                   | Requests                                                                                                                                                                                                                                                                       | Things to Watch For                                                                                                                                                                                                                                                                                                                                                                                                |
+|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Depth of Field | <ul><li>Create a new entity<li>Add a `PostFX Layer` component<li>Add a `Depth Of Field` component<li>Set the Camera Entity property of the `Depth of Field` component using the crosshair picker to select the Camera Enitity from the Entity Outliner<li>Toggle the Enable Depth of Field property to enabled<li>Locate the `Tag` component on the Camera entity remove previous tag string elements and set a string value in the elements list to "Depth"<li>Modify the `PostFX Layer` component property `Select Camera Tags Only` adding a new element with the string "Depth"<li>Enter game mode `ctrl+g`<li>Exit game mode `esc`<li>Modify properties and enter/exit game mode | <ul><li>Near and far distance should be less focused <br><br><img width="515" alt="postfx_04_depthoffield" src="https://user-images.githubusercontent.com/26234397/228080949-c34127e6-5643-42cb-9ab3-d6258f374a24.png"> |
+
+---
+### HDR Color Grading and Look Modification
+
+| Workflow                                   | Requests                                                                                                                                                                                                                                                                       | Things to Watch For                                                                                                                                                                                                                                                                                                                                                                                                |
+|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| HDR Color Grading | <ul><li>Create a new entity<li>Add a `PostFX Layer` component<li>Add a `HDR Color Grading` component<li>Toggle Enable HDR Color Grading property to enabled<li>Locate the `Tag` component on the Camera entity remove previous tag string elements and set a string value in the elements list to "Color"<li>Modify the `PostFX Layer` component property `Select Camera Tags Only` adding a new element with the string "Color"<li>Modify properties<li>Press the Generate LUT button on the `HDR Color Grading` component in Entity Inspector and wait for it to finish<li>Press the Activate LUT button on the `HDR Color Grading` component | <ul><li>Console spew should indicate that a LUT is generating a file with several lines `(python_test) - [ColorGrading`<li>Activate LUT should add a `Look Modification` component and disable the `HDR Color Grading` component |
+| Look Modification | <ul><li>Starting with the entity used for `HDR Color Grading` component<li>Having clicked the Generate LUT button and the Activate LUT you should now see the `HDR Color Grading` component disabled by scripts and a `Look Modification` component added and enabled<li>Enter game mode `ctrl+g`<li>Exit game mode `esc`<li>Modify properties and enter/exit game mode | <ul><li>The enabled look modification uses the generated LUT to alter render <br><br><img width="476" alt="postfx_05" src="https://user-images.githubusercontent.com/26234397/228081946-12a7e7df-7cf8-4803-865f-371c1882fb44.png"> |
+
+---
+### SSAO
+
+| Workflow                                   | Requests                                  | Things to Watch For                                    |
+|--------------------------------------------|-------------------------------------------|--------------------------------------------------------|
+| SSAO | <ul><li>Use AtomSampleViewer to test SSAO | Consider this covered in the AtomSampleViewer workflow |
+
+---
+### Deferred Fog
+This is covered in another workflow already
+
+---
+### PostFX Radius Weight Modification
+
+| Workflow                                   | Requests                                  | Things to Watch For                                    |
+|--------------------------------------------|-------------------------------------------|--------------------------------------------------------|
+| Radius Weight Exposure Control | <ul><li>Locate the Exposure Control entity you worked with or create a new entity with `PostFX Layer` and `Exposure Control`. Set `Manual Compensation` property to -5.0<li>Add `PostFX Radius Weight Modifier` component and set a radius of 5.0<li>Create a new entity and add `PostFX Layer` and `Exposure Control` components leaving default values. This acts as a global expusure setting<li>Locate the default `Camera` component on the level or add one, then update a `Tag` component to that entity and set a string value in the elements list to "Exposure"<li>Modify the `PostFX Layer` component property `Select Camera Tags Only` adding a new element with the string "Exposure"<li>Enter game mode `ctrl+g` and use the fly camera `ASDW and mouse` to move towards and away from the Shader Ball mesh<li>Exit game mode `esc`<li>Modify properties and enter/exit game mode | <ul><li>Brightness of render is impacted by Manual Compensation property<li>Exposure effect is localized to the radius around the PostFX Radius Weight Modifier<li>`PostFX Layer` components either need different Layer Category selections or different Priority in Layer values to clarify which takes effect. <br><br><img width="614" alt="postfx_07_Radius" src="https://user-images.githubusercontent.com/26234397/228082077-20287b3b-77e8-4fc1-99d9-bcf05102e739.png"> |
+
+---
+### PostFX Shape Weight Modification
+
+| Workflow                                   | Requests                                  | Things to Watch For                                    |
+|--------------------------------------------|-------------------------------------------|--------------------------------------------------------|
+| Shape Weight Exposure Control | <ul><li>Locate the Exposure Control entity you worked with or create a new entity with `PostFX Layer` and `Exposure Control`. Set `Manual Compensation` property to -5.0<li>Delete or Disable `PostFX Radius Weight Modifier` component<li>Add a `PostFX Shape Weight Modifier` component<li>Add a required shape object like sphere and set a radius of 5.0<li>Create a new entity for global exposure if you don't already have one and add `PostFX Layer` and `Exposure Control` components leaving default values. This acts as a global expusure setting<li>Locate the default `Camera` component on the ensure that it still has the tag element "Exposure"<li>Modify the `PostFX Layer` component property `Select Camera Tags Only` adding a new element with the string "Exposure" if it is not already set<li>Enter game mode `ctrl+g` and use the fly camera `ASDW and mouse` to move towards and away from the Shader Ball mesh<li>Exit game mode `esc`<li>Modify properties and enter/exit game mode | <ul><li>Brightness of render is impacted by Manual Compensation property<li>Exposure effect is localized to the area covered by the PostFX Shape Weight Modifier<li>`PostFX Layer` components either need different Layer Category selections or different Priority in Layer values to clarify which takes effect. <br><br><img width="615" alt="postfx_07_Shape" src="https://user-images.githubusercontent.com/26234397/228082115-ec0dd0e0-2866-46d3-9997-cb1032c213c1.png"> |
+
+---
+### PostFX Gradient Weight Modfication
+
+| Workflow                                   | Requests                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Things to Watch For                                    |
+|--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------|
+| Radius Weight Exposure Control | <ul><li>Locate the Exposure Control entity you worked with or create a new entity with `PostFX Layer` and `Exposure Control`. Set `Manual Compensation` property to -5.0<li>Add `PostFX Gradient Weight Modifier` component and remove any previous PostFX Weight Modifier components<li>Add a new entity and to that entity add the `Perlin Noise Gradient`, `Gradient Transform Modifier`, and `Sphere Shape` (radius 10) components<li>Set the `Perlin Noise Gradient` component's Frequency property to 0.3 and the `Gradient Transform Modifier` component's Wrapping Type property to `Clamp to Edge`<li>Create a new entity for global exposure if you don't already have one and add `PostFX Layer` and `Exposure Control` components leaving default values. This acts as a global expusure setting<li>On the `PostFX Gradient Weight Modifier` component us the picker for `Gradient Entity Id` property to select the entity you created for the `Perlin Noise Gradient` component<li>Locate the default `Camera` component on the level or add one, then update a `Tag` component to that entity and set a string value in the elements list to "Exposure"<li>Modify the `PostFX Layer` component property `Select Camera Tags Only` adding a new element with the string "Exposure"<li>Enter game mode `ctrl+g` and use the fly camera `ASDW and mouse` to move towards and away from the Shader Ball mesh<li>Exit game mode `esc`<li>Modify properties and enter/exit game mode | <ul><li>Brightness of render fluctuates as the camera moves throught the `Perlin Noise Gradient`<li>Exposure effect is localized to the noise gradient around the PostFX Gradient Weight Modifier<li>`PostFX Layer` components either need different Layer Category selections or different Priority in Layer values to clarify which takes effect. <br><br><img width="928" alt="postfx_06_Gradient" src="https://user-images.githubusercontent.com/26234397/228082175-fcd46ba6-1d30-4161-9812-7c3ab75155ca.png"> |
+
+
+