Revision da91f87 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 21, 2021, 20:06 (GMT) |
EEVEE: Check updates using recalc flag only an object maps. This avoids having to reset accumulation if nothing affecting eevee changes. |
Revision 6102942 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 19, 2021, 12:29 (GMT) |
EEVEE: Light: Add back LTC area lights and lighting function I did a small optimization pass to avoid some division and redundant computation. Also cleans-up the Light vector usage. |
Revision 5697f96 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 18, 2021, 15:30 (GMT) |
EEVEE: Light: 2.5D Culling: Initial implementation This follows closely the implementation of 2.5D tiled light culling described in the presentation: "Improved Culling for Tiled and Clustered Rendering" from Michal Drobot http://advances.realtimerendering.com/s2017/2017_Sig_Improved_Culling_final.pdf I chose the tile + Z binning approach for its high depth range support and low CPU overhead & low memory consumption compared to the cluster based culling. The cons is that the culling is a bit less precise in some aspect but it is quite balanced. The culling is done by the `Culling` object which is templated to easily be reused for light probes cullg. The Z-binning process is described starting from slide 20 in the reference pdf. I also implemented a debug pass to visualize false negative (light culled when they shouldn't) and light evaluation density. This is useful to detect failure case and hotspot. This could be exposed as a developper only render pass in the future. Some optimization of the reference implementation requires extensions not yet added to GPU module and will be added later. |
Revision 93b774a by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 17, 2021, 23:15 (GMT) |
GPUTexture: Fix missing cases for integer textures |
Revision bf0ca28 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 17, 2021, 23:14 (GMT) |
DRW: Fix const correctness |
Revision 89af2b0 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 16, 2021, 00:16 (GMT) |
EEVE: Lights: Implement simple culling scheme. This has the basis of clustered light culling but does not yet do it. The lights are only culled by frustum. Its the same as if there was only one Cell for the entire Viewport. |
Revision ddc1be5 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 14, 2021, 23:05 (GMT) |
EEVEE: Split shading passes to eevee_shading.cc |
Revision 23584ee by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 14, 2021, 22:49 (GMT) |
EEVEE: Refactor: Split implementation to .cc file This also wrap GPUFrameBuffer & GPUTexture inside eevee:Framebuffer and eevee:Texture to improve managment. Another cleanup was to put all members of `Instance` public to avoid much complexity in accessing the data with modules dependencies. Also split velocity View related data to `class Velocity` and rename previous `Velocity` to `VelocityModule` |
Revision 520962b by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 14, 2021, 14:46 (GMT) |
EEVEE: Lights: Support infinite light count Support infinite light count by dividing rendering into chucks of LIGHT_MAX. Forward passes are just rendered again and deferred passes (not implemented yet) will just have to have multiple light evaluation passes. |
Revision 017e9d8 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 14, 2021, 11:21 (GMT) |
EEVEE: Lights: Initial Work in progress implementation Only supports simple point lights for now |
Revision ab55a1b by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 14, 2021, 11:20 (GMT) |
DRW: Make draw_debug.h C++ compatible |
Revision 9bf6fa9 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 14, 2021, 10:08 (GMT) |
Cleanup: EEVEE: RenderPasses: Use iterator |
Revision 431a662 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 13, 2021, 22:24 (GMT) |
EEVEE: Add back object update and view update detection. |
Revision 9c74f93 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 12, 2021, 21:06 (GMT) |
EEVEE: Motion Blur: Fix cdf inversion and a typo |
Revision a4ae2b9 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 12, 2021, 19:34 (GMT) |
EEVEE: Motion Blur: Add back post process motion blur This is almost the same thing as old implementation. Differences: - We clamp the motion vectors to their maximum when sampling the velocity buffer. - Velocity rendering (and data manager) is separated from motion blur. This allows outputing the motion vector render pass and in the future use motion vectors to reproject older frames. - Vector render pass support (only if motion blur is disabled, just like cycles). - Velocity tiles are computed in one pass (simpler code, less CPU overhead, less VRAM usage, maybe a bit slower but imperceivable (< 0.3ms)). - Two velocity passes are outputed, one for motion blur fx (applied per shading view) and one for the vector pass. This could be optimized further in the future. - No current support for deformation & hair (to come). |
Revision 0cd4896 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 9, 2021, 23:40 (GMT) |
EEVEE: Add wrapper to simplify ubo managment |
Revision e540c9c by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 9, 2021, 19:42 (GMT) |
EEVEE: Motion Blur: Add back accumulation logic Bonus addition, support for shutter curve. Compared to the old implementation, the per time step sync function is lighter and localized. Also it does not require a full engine "reboot" in order to work. Also modifies camera setup to be compatible with future camera motion blur. |
Revision f9b15ed by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 9, 2021, 19:42 (GMT) |
EEVEE: Motion Blur: Add back accumulation logic Bonus addition, support for shutter curve. Compared to the old implementation, the per time step sync function is lighter and localized. Also it does not require a full engine "reboot" in order to work. |
Revision 1857fa8 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 8, 2021, 21:13 (GMT) |
EEVEE: Depth Of Field: Fix ortho factor When will it end? Is there some UB somewhere in cycles? |
Revision ac6e2b0 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) April 8, 2021, 21:11 (GMT) |
EEVEE: Sampling: Add UBO containing LDS random numbers We have many dimensions to avoid correlation between effects. |
|