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-15Cleanup: Suppress compilation warning in eevee_lights.Jeroen Bakker
Temporarily commented out LightModule::input_depth_tx until it is used to hide a compilation warning.
2022-08-14EEVEE-Next: Light: Add light evaluation supportClément Foucault
This is the same implementation as the old one.
2022-08-14EEVEE-Next: Light: New light moduleClément Foucault
Compared to the previous implementation this has a limit of 65536 lights per scene. Lights exceeding this limit will be ignored. This also introduce fine grained GPU light culling, making rendering many lights in a scene more efficient as long they don't overlap much. Compatible light panels have been unhidden. Note: This commit does not include surface evaluation, only light culling.
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-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-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-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-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.
2022-07-24EEVEE-Next: Make animated viewport non jittered when disabling denoisingClément Foucault
2022-07-24EEVEE-Next: Add back background opacity toggleClément Foucault
2022-07-24EEVEE-Next: Make Anti-Flicker more strongClément Foucault
This might make the image a bit blurier but it reduces the flickering of shiny surfaces during animation. This uses the technique described in "High Quality Temporal Supersampling" by Brian Karis at Siggraph 2014 (Slide 45): Reduce the exponential factor when the history is close the bounding box border.
2022-07-24EEVEE-Next: Fix Alt+B render bordersClément Foucault
A few offsets were missing. Reminder that this does not change the actual render resolution but it reduces the VRAM consumption of accumulation buffers.
2022-07-24EEVEE-Next: Fix background velocityClément Foucault
2022-07-23EEVEE-Next: Film: Rename filter_size for clarity and add box filter ...Clément Foucault
... as a debug option.
2022-07-23EEVEE-Next: Film: Fix incorrect anti-aliasingClément Foucault
There was a confusion about what space the offset was in.
2022-07-22EEVEE-Next: Add exposure awareness to denoisingClément Foucault
This uses the exposure to get a better approximation of the perceptual brighness of a sample before accumulating it. Note that we do not modify exposure of the image. Only the samples weights are computed differently.
2022-07-22EEVEE-Next: Fix render not workingClément Foucault
The swaps during accumulation were ignored because of the way the `SwapChain<>` implementation works. Using external references and updating them fixes the issue.
2022-07-21EEVEE-Next: Add back option to disable TAA (Viewport DenoisingClément Foucault
2022-07-21EEVEE-Next: Filter NaN at output to avoid propagation.Clément Foucault
2022-07-21EEVEE-Next: Add Temporal-AntiAliasingClément Foucault
The improvements over the old implementation are: - Improved history reprojection filter (catmull-rom) - Use proper velocity for history reprojection. - History clipping is now done in YCoCg color space using better algorithm. - Velocity is dilated to keep correct edge anti-aliasing on moving objects. As a result, the 3x3 blocks that made the image smoother in the previous implementation are no longer visible is replaced by correct antialiasing. This removes the velocity resolve pass in order to reduce the bandwidth usage. The velocities are just resolved as they are loadded in the film pass.
2022-07-01Cleanup: spelling in commentsCampbell Barton
2022-07-01Cleanup: remove unused argumentCampbell Barton
2022-06-30EEVEE-Next: Add Film and RenderBuffers moduleClément Foucault
This modules handles renderpasses allocation and filling. Also handles blitting to viewport framebuffer and render result reading. Changes against the old implementation: - the filling of the renderpasses happens all at once requiring only 1 geometry pass. - The filtering is optimized with weights precomputed on CPU and reuse of neighboor pixels. - Only one accumulation buffer for renderpasses (no ping-pong). - Accumulation happens in one pass for every passes using a single dispatch or fullscreen triangle pass. TAA and history reprojection is not yet implemented. AOVs support is present but with a 16 AOV limit for now. Cryptomatte is not yet implemented.
2022-06-30Cleanup: spelling in commentsCampbell Barton
2022-06-28DRW: Curve: Fix wrong UBO alignmentClément Foucault
This was preventing correct attribute rendering with multiple attributes. Since the `CurveInfos` struct is used for data sharing between C++ and GLSL and inside a UBO it needs to obey the `std140` alignment rules which states that arrays of scalars are padded to the size of `vec4` for each array entry.
2022-06-13Cleanup: fix various typosBrecht Van Lommel
Found via codespell -q 3 -S ./intern,./extern -L ans,ba,bording,datas,eiter,fiter,hist,inout,lod,ot,parm,parms,pixelx,pres,te Contributed by luzpaz. Differential Revision: https://developer.blender.org/D15155
2022-06-10Cleanup: Clang tidyHans Goudey
2022-06-09Cleanup: spelling in comments & variablesCampbell Barton