Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-08-09Cleanup: use own username in code-comment tagsCampbell Barton
2022-08-09License headers: add missing license headersCampbell Barton
2022-08-05EEVEE-Next: Depth Of Field: Avoid Framebuffer setup cost for each redrawClément Foucault
Using 2 framebuffer, if the temp textures are the same across redraws, we can avoid the setup cost.
2022-08-05EEVEE-Next: Depth Of Field: Add comment about failed optimization attemptClément Foucault
2022-08-05EEVEE-Next: Depth Of Field: Fix black tiles when max blur radius is lowClément Foucault
There was a missing clamp in `dof_slight_focus_coc_tile_get()` and a couple of wrongly handled corner cases.
2022-08-05EEVEE-Next: Depth Of Field: Use random sampling in slight focus gatherClément Foucault
This replace the previous square rings approach by sampling a disk the footprint of the search area. This avoids sampling in areas in corners where there isn't any weight. This results in much less samples needed to acheive a good enough result. The max number of samples for an area of 11x11 px is hard coded to 16 and still gives good results with the final clamp. The number of samples is adaptative and is scaled by the search area (max CoC). The High Quality Slight Defocus is not required anymore. If there is a quality parameter to add, it would be sample count option. But I consider the temporal stability enough for viewport work and render can still render many full scene samples. So I don't see a need for that yet.
2022-08-05EEVEE-Next: Depth Of Field: Fix reduce passClément Foucault
The indexing during mipmap downsampling was wrong, leading to incorrect bilateral downsampling.
2022-08-05EEVEE-Next: Depth Of Field: Improve image stabilityClément Foucault
This adds anti-flicker pass to the slight focus region by using the temporaly stable output from stabilize pass. This also fixes the bilateral weight factor which was reversed.
2022-08-05EEVEE-Next: Depth Of Field: Fix glitch on foreground scattered bokehClément Foucault
This was caused by a missing synchronization. The background gather pass was writting to the same occlusion texture before the end of the scatter draw.
2022-08-05EEVEE-Next: Depth Of Field: Improve Temporal stabilityClément Foucault
This implement a full TAA pass on the depth of field input. An history buffer is kept for each view needing Depth of field. This uses a swap with a `TextureFromPool` in order to not always 2 textures allocated. Since this uses luma weighting without any input, the firefly parameter is now obsolete and has been removed. There is some tiny difference with the Film TAA so the implementation is mostly copy pasted. Also this implementation uses a LDS cache to speedup the TAA computations.
2022-08-05EEVEE-Next: Depth Of Field: Make slight focus max coc more accurateClément Foucault
This moves the slight focus max in tile from the setup pass to the resolve pass. This reduces complexity as there is no need for an extra component in the tile textures. This also avoids skipping any pixels and makes sure the local max matches the dispatched local group size. This should make the resolve pass a little bit faster.
2022-08-05DRW: GPU Wrapper: add possibility to swap Texture and TextureFromPoolClément Foucault
Ownership is transfered from the pool to the `Texture` and vice versa. This allows to have history buffers with only 1 persistent texture.
2022-08-05Cleanup: DRW: Remove void function argumentClément Foucault
2022-08-05Cleanup: Remove outdated commentHans Goudey
2022-08-05Cleanup: Reduce indentationHans Goudey
2022-08-05Cleanup: Spelling, remove double negativeHans Goudey
2022-08-04Cleanup: Move RNA path functions into own C++ fileJulian Eisel
NOTE: This is committed to the 3.3 branch as part of D15606, which we decided should go to this release still (by Bastien, Dalai and me). That is because these are important usability fixes/improvements to have for the LTS release. Adds `rna_path.cc` and `RNA_path.h`. `rna_access.c` is a quite big file, which makes it rather hard and inconvenient to navigate. RNA path functions form a nicely coherent unit that can stand well on it's own, so it makes sense to split them off to mitigate the problem. Moreover, I was looking into refactoring the quite convoluted/overloaded `rna_path_parse()`, and found that some C++ features may help greatly with that. So having that code compile in C++ would be helpful to attempt that. Differential Revision: https://developer.blender.org/D15540 Reviewed by: Brecht Van Lommel, Campbell Barton, Bastien Montagne
2022-08-04Cleanup: spelling, code-blocksCampbell Barton
2022-08-03Cleanup: fix various typosBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D15588
2022-08-02EEVEE-Next: Depth Of Field: Port implementation to compute shaderClément Foucault
This is a port of the previous implementation but using compute shaders instead of using the raster pipeline for every steps. Only the scatter passes is kept as a raster pass for obvious performance reasons. Many steps have been rewritten to take advantage of LDS which allows faster and simpler downsampling and filtering for some passes. A new stabilize phase has been separated from another setup pass in order to improve it in the future with better stabilization. The scatter pass shaders and pipeline also changed. We now use indirect drawcall to draw quads using triangle strips primitives. This reduces fragment shader invocation count & overdraw compared to a bounding triangle. This also reduces the amount of vertex shader invocation drastically to the bare minimum instead of having always 3 verts per 4 pixels (for each ground).
2022-08-02EEVEE-Next: Cleanup: Remove static references for swapchainsClément Foucault
Those are no longer necessary.
2022-08-02EEVEE-Next: Fix GL errors when rendering with transparent materialsClément Foucault
For now, we need to always bind the render pass images even if not used.
2022-08-02EEVEE: Depth of field: Fix incorrect variance occlusionClément Foucault
The change is likely not noticeable.
2022-08-02DRW: common_math_lib.glsl: Fix weighted_sum macroClément Foucault
This avoids issue when the macro is followed by another operator. Example: `float result = weighted_sum(a,b,c,d,w) * 5.0;`
2022-08-02DRW: Add image unbind in debug modeClément Foucault
This allows finding missing binds more easily as the missing binds slots won't be populated with previous texture binds.
2022-08-02DRW: Add `DRW_shgroup_call_procedural_indirect()`Clément Foucault
Replaces `DRW_shgroup_call_procedural_triangles_indirect`. This makes the indirect drawing more flexible. Not all primitive types are supported but it is just a matter of adding them.
2022-08-02DRW: Add DRW_shgroup_call_procedural_triangles_indirectClément Foucault
Just like the name suggest, this adds a way to draw a series of proceduraly positioned triangles using and indirect buffer.
2022-08-02DRW: GPU Wrapper: Fix invalid cached texture view when ensure() reallocsClément Foucault
2022-08-02DRW: GPU wrapper: Make SwapChain renference workClément Foucault
This make using texture reference easier. But now, it makes it mandatory for the wrapped type to implement the `swap()` static method.
2022-08-02DRW: GPU wrappers: Expose more ease of use functions and cleanup styleClément Foucault
2022-08-02Merge branch 'blender-v3.3-release'Jeroen Bakker
2022-08-02Fix T99715: Only force optimal display during on cage editing.Jeroen Bakker
This loosens the current implementation a bit to only force optimal display when editing on cage. It used to be any editing mode. Brings GPU based subdivision closer to the CPU version.
2022-08-01Merge branch 'blender-v3.3-release'Jeroen Bakker
2022-08-01Eevee: Add support of rendering curves with cryptomatte.Jeroen Bakker
There were 2 errors. 1. hair code was used to draw curves 2. vertex shader wasn't aware of curves and failed to compile.
2022-08-01Merge branch 'blender-v3.3-release'Jeroen Bakker
2022-08-01Eevee: Fix compilation error in eevee-next.Jeroen Bakker
Although eevee-next is disabled in Blender 3.3 there is an error that is visible when compiling shaders using the shader builder. This is because of an error in a preprocessing directive (defined should be define).
2022-07-29Cleanup: Move RNA path functions into own C++ fileJulian Eisel
Adds `rna_path.cc` and `RNA_path.h`. `rna_access.c` is a quite big file, which makes it rather hard and inconvenient to navigate. RNA path functions form a nicely coherent unit that can stand well on it's own, so it makes sense to split them off to mitigate the problem. Moreover, I was looking into refactoring the quite convoluted/overloaded `rna_path_parse()`, and found that some C++ features may help greatly with that. So having that code compile in C++ would be helpful to attempt that. Differential Revision: https://developer.blender.org/D15540 Reviewed by: Brecht Van Lommel, Campbell Barton, Bastien Montagne
2022-07-28Merge branch 'blender-v3.3-release'Brecht Van Lommel
2022-07-28Revert "Fix T98773: GPU Subdivision breaks auto selection in UV edit mode"Brecht Van Lommel
This reverts commit e2c02655c78b2c669468ae568ddf4b17953cc98d. It was already reverted in the 3.2 branch, as it caused more serious issues than it solved. Fixes T99805, T99323, T99296.
2022-07-28EEVEE-Next: UI: Make Vector pass greyed out when motion blur is enabledClément Foucault
Also clears the render result to 0 to avoid invalid motion vectors.
2022-07-28EEVEE-Next: Cleanup: Isolate render result readback and prototype progressClément Foucault
Still not working but the idea is to read the result and display the first image sample so that user has a better feedback of the rendering.
2022-07-28EEVEE-Next: Motion Blur new implementationClément Foucault
The new implementation leverage compute shaders to reduce the number of passes and complexity. The max blur amount is now detected automatically, replacing the property in the render panel by a simple checkbox. The dilation algorithm has also been rewritten from scratch into a 1 pass algorithm that does the dilation more efficiently and more precisely. Some differences with the old implementation can be observed in areas with complex motion.
2022-07-28DRW: TextureFromPool: Change API to use acquire / releaseClément Foucault
This removes the quirk of having to call the sync function for each new render loop. # Conflicts: # source/blender/draw/engines/eevee_next/eevee_view.cc
2022-07-28EEVEE-Next: Fix Vector render passClément Foucault
2022-07-26Refactor: Extract color attributes as generic attributesHans Goudey
Previously there was a special extraction process for "vertex colors" that copied the color data to the GPU with a special format. Instead, this patch replaces this with use of the generic attribute extraction. This reduces the number of code paths, allowing easier optimization in the future. To make it possible to use the generic extraction system for attributes but also assign aliases for use by shaders, some changes are necessary. First, the GPU material attribute can now store whether it actually refers to the default color attribute, rather than a specific name. This replaces the hack to use `CD_MCOL` in the color attribute shader node. Second, the extraction code checks the names against the default and active names and assigns aliases if the request corresponds to a special active attribute. Finally, support for byte color attributes was added to the generic attribute extraction. Differential Revision: https://developer.blender.org/D15205
2022-07-26Cleanup: spelling in commentsCampbell Barton
2022-07-25EEVEE-Next: Fix float3 passes being incorrectClément Foucault
2022-07-25EEVEE-Next: Fix some Material compilation errorsClément Foucault
2022-07-24EEVEE-Next: Decorelate Large filter spiral samplingClément Foucault
This avoids correlation artifacts with the jitter pattern itself. Also try to reduce the visible spiral pattern.
2022-07-24EEVEE-Next: Fix depth accumulation and stability in viewportClément Foucault
The display depth is used to composite Gpencil and Overlays. For it to be stable we bias it using the dFdx gradient functions. This makes overlays like edit mode not flicker. The previous approach to save the 1st center sample does not work anymore since we jitter the projection matrix in a looping pattern when scene is updated. So the center depth is only (almost) valid 1/8th of the times. The biasing technique, even if not perfect, does the job of being stable. This has a few cons: - it makes the geometry below the ground plane unlike workbench engine. - it makes overlays render over geometry at larger depth discontinuities.