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-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: 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-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: Expose Motion blur shutter curve in render panelClément Foucault
It is now fully supported. Also reorder panels to keep EEVEE-Next panels in the same ordered as EEVEE's ones.
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-26Cleanup: formatCampbell Barton
2022-07-25EEVEE-Next: Display compatible properties panelsClément Foucault
Only a few are kept not available as their features are not yet supported.
2022-07-24EEVEE-Next: Add back background opacity toggleClément Foucault
2022-07-21EEVEE-Next: Add back option to disable TAA (Viewport DenoisingClément Foucault
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-02Cleanup: remove "<pep8 compliant>" from headersCampbell Barton
It can be assumed that all scripts comply with basic pep8 formatting regarding white-space, indentation etc. Also remove note in best practices page & update `tests/python/pep8.py`. If we want to exclude some scripts from make format, this can be done by adding them to `ignore_files` in: source/tools/utils_maintenance/autopep8_format_paths.py Or using `# nopep8` for to ignore for individual lines. Ref T98554
2022-04-07Curves: Hair to Curves rename in Cycles/EEVEE UIHans Goudey
Change uses of "Hair" in Render Settings UI in the property editor and the "Hair Info" node to use the "Curves" name to reflect the design described in T95355, where hair is just a use case of a more general curves data type. While these settings still affect the particle hair system, the idea is that if we have to choose one naming scheme to align with, we should choose the option that aligns with future plans and current development efforts, especially since the particle system is considered a legacy feature. A few notes: - "Principled Hair BSDF" is not affected since it's meant for hair. - Python API property identifiers are not affected. Differential Revision: https://developer.blender.org/D14573
2022-03-11Cycles: show viewport hair settings when using CyclesEthan-Hall
Before this patch, users had to switch render engines just to change how the hair should be displayed in solid and material preview viewport shading modes. Differential Revision: https://developer.blender.org/D14290
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2022-02-09Cleanup: use consistent copyright location, move descriptionsCampbell Barton
Order copyright immediately after the license block, this was done almost everywhere with a few exceptions. Remove authors from a few files (we had already removed "Contributors" section however with old patches being applied this gets added back in). Also move descriptive text into the doxygen comment block under \file. In some cases remove the text as it was accidentally copied.
2021-02-13EEVEE: Depth of field: New implementationClément Foucault
This is a complete refactor over the old system. The goal was to increase quality first and then have something more flexible and optimised. |{F9603145} | {F9603142}|{F9603147}| This fixes issues we had with the old system which were: - Too much overdraw (low performance). - Not enough precision in render targets (hugly color banding/drifting). - Poor resolution near in-focus regions. - Wrong support of orthographic views. - Missing alpha support in viewport. - Missing bokeh shape inversion on foreground field. - Issues on some GPUs. (see T72489) (But I'm sure this one will have other issues as well heh...) - Fix T81092 I chose Unreal's Diaphragm DOF as a reference / goal implementation. It is well described in the presentation "A Life of a Bokeh" by Guillaume Abadie. You can check about it here https://epicgames.ent.box.com/s/s86j70iamxvsuu6j35pilypficznec04 Along side the main implementation we provide a way to increase the quality by jittering the camera position for each sample (the ones specified under the Sampling tab). The jittering is dividing the actual post processing dof radius so that it fills the undersampling. The user can still add more overblur to have a noiseless image, but reducing bokeh shape sharpness. Effect of overblur (left without, right with): | {F9603122} | {F9603123}| The actual implementation differs a bit: - Foreground gather implementation uses the same "ring binning" accumulator as background but uses a custom occlusion method. This gives the problem of inflating the foreground elements when they are over background or in-focus regions. This is was a hard decision but this was preferable to the other method that was giving poor opacity masks for foreground and had other more noticeable issues. Do note it is possible to improve this part in the future if a better alternative is found. - Use occlusion texture for foreground. Presentation says it wasn't really needed for them. - The TAA stabilisation pass is replace by a simple neighborhood clamping at the reduce copy stage for simplicity. - We don't do a brute-force in-focus separate gather pass. Instead we just do the brute force pass during resolve. Using the separate pass could be a future optimization if needed but might give less precise results. - We don't use compute shaders at all so shader branching might not be optimal. But performance is still way better than our previous implementation. - We mainly rely on density change to fix all undersampling issues even for foreground (which is something the reference implementation is not doing strangely). Remaining issues (not considered blocking for me): - Slight defocus stability: Due to slight defocus bruteforce gather using the bare scene color, highlights are dilated and make convergence quite slow or imposible when using jittered DOF (or gives ) - ~~Slight defocus inflating: There seems to be a 1px inflation discontinuity of the slight focus convolution compared to the half resolution. This is not really noticeable if using jittered camera.~~ Fixed - Foreground occlusion approximation is a bit glitchy and gives incorrect result if the a defocus foreground element overlaps a farther foreground element. Note that this is easily mitigated using the jittered camera position. |{F9603114}|{F9603115}|{F9603116}| - Foreground is inflating, not revealing background. However this avoids some other bugs too as discussed previously. Also mitigated with jittered camera position. |{F9603130}|{F9603129}| - Sensor vertical fit is still broken (does not match cycles). - Scattred bokeh shapes can be a bit strange at polygon vertices. This is due to the distance field stored in the Bokeh LUT which is not rounded at the edges. This is barely noticeable if the shape does not rotate. - ~~Sampling pattern of the jittered camera position is suboptimal. Could try something like hammersley or poisson disc distribution.~~Used hexaweb sampling pattern which is not random but has better stability and overall coverage. - Very large bokeh (> 300 px) can exhibit undersampling artifact in gather pass and quite a bit of bleeding. But at this size it is preferable to use jittered camera position. Codewise the changes are pretty much self contained and each pass are well documented. However the whole pipeline is quite complex to understand from bird's-eye view. Notes: - There is the possibility of using arbitrary bokeh texture with this implementation. However implementation is a bit involved. - Gathering max sample count is hardcoded to avoid to deal with shader variations. The actual max sample count is already quite high but samples are not evenly distributed due to the ring binning method. - While this implementation does not need 32bit/channel textures to render correctly it does use many other textures so actual VRAM usage is higher than previous method for viewport but less for render. Textures are reused to avoid many allocations. - Bokeh LUT computation is fast and done for each redraw because it can be animated. Also the texture can be shared with other viewport with different camera settings.
2021-01-09Cleanup: remove redundant decorator for eevee 'overscan_size'Philipp Oeser
All eevee scene properties are not animatable due to `RNA_define_animate_sdna(false)` so there is no need for an animation decorator here (would not show anyways). Not sure if setting use_property_decorate to False and then manually adding one again was a hack in rB7fc60bff14a6 to get the alignment right, but seems to work good now without it. Note: there also seems to be an inconsistency here generally: - Eevee reserves room for an animation decorator in almost every panel (except for "Sampling" and "Indirect Lighting") even though almost none are animatable (except for stuff in "Hair" and "Film"). This looks nice if multiple panels are expanded (except for mentioned "Sampling" and "Indirect Lighting" -- maybe these should also reserve the room?) - Cycles does not use animation decorators at all (even though pretty much everything is animatable here -- maybe these should also use animation decorators?) - Then there is also the 'shared' "Grease Pencil", "Freestyle" and "Colormanagement" -- these dont use animation decorators, but some stuff is animatable... Regarding the note: not sure what the guidelines here are, if this is isolated to each panel then there is lots of stuff for eevee that could set use_property_decorate to False, if multiple open panels are considered (for nice visual consistency between them), then there is romm for improvement elsewhere, too. Maniphest Tasks: T81411 Differential Revision: https://developer.blender.org/D9164
2020-10-13EEVEE: Motion Blur: Add shutter position optionClément Foucault
This makes it easier to generate motion trail effect with EEVEE. This just mimics the cycles option as described here: https://docs.blender.org/manual/en/latest/render/cycles/render_settings/motion_blur.html This fix T80070
2020-10-01Volumes: support lower resolution in viewportJacques Lucke
The adds a new option to simplify volumes in the viewport. The setting can be found in the Simplify panel in the render properties. Volume objects use OpenVDB grids, which are sparse. For rendering, we have to convert sparse grids to dense grids (for now). Those require significantly more memory. Therefore, it's often a good idea to reduce the resolution of volumes in the viewport. Reviewers: brecht Differential Revision: https://developer.blender.org/D9040 Ref T73201.
2020-09-06GPencil: Remove console warning in RENDER_PT_gpencil panelAntonio Vazquez
COMPAT_ENGINE was missing
2020-09-06GPencil: Cleanup unused codeAntonio Vazquez
The poll method is not used
2020-06-23EEVEE: Motion Blur: Add accumulation motion blur for better precisionClément Foucault
This revisit the render pipeline to support time slicing for better motion blur. We support accumulation with or without the Post-process motion blur. If using the post-process, we reuse last step next motion data to avoid another scene reevaluation. This also adds support for hair motion blur which is handled in a similar way as mesh motion blur. The total number of samples is distributed evenly accross all timesteps to avoid sampling weighting issues. For this reason, the sample count is (internally) rounded up to the next multiple of the step count. Only FX Motion BLur: {F8632258} FX Motion Blur + 4 time steps: {F8632260} FX Motion Blur + 32 time steps: {F8632261} Reviewed By: jbakker Differential Revision: https://developer.blender.org/D8079
2020-06-19EEEVEE: Object Motion Blur: Initial ImplementationClément Foucault
This adds object motion blur vectors for EEVEE as well as better noise reduction for it. For TAA reprojection we just compute the motion vector on the fly based on camera motion and depth buffer. This makes possible to store another motion vector only for the blurring which is not useful for TAA history fetching. Motion Data is saved per object & per geometry if using deformation blur. We support deformation motion blur by saving previous VBO and modifying the actual GPUBatch for the geometry to include theses VBOs. We store Previous and Next frame motion in the same motion vector buffer (RG for prev and BA for next). This makes non linear motion blur (like rotating objects) less prone to outward/inward blur. We also improve the motion blur post process to expand outside the objects border. We use a tile base approach and the max size of the blur is set via a new render setting. We use a background reconstruction method that needs another setting (Background Separation). Sampling is done using a fixed 8 dithered samples per direction. The final render samples will clear the noise like other stochastic effects. One caveat is that hair particles are not yet supported. Support will come in another patch. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D7297
2020-06-04Fix Grease Pencil panel showing as first panel in render propertiesBrecht Van Lommel
Move it lower next to the Freestyle panel.
2020-05-21Merge branch 'blender-v2.83-release'Campbell Barton
2020-05-21Cleanup: excess blank lines and parenthesisCampbell Barton
2020-05-12Merge branch 'blender-v2.83-release'Antonio Vazquez
Conflicts: release/scripts/startup/bl_ui/properties_render.py source/blender/blenkernel/BKE_blender_version.h
2020-05-12GPencil: Add new parameter for SMAA thresholdAntonio Vazquez
This parameter allows to define the threshold for SMAA algorithm. Differential Revision: https://developer.blender.org/D7708
2020-04-17UI: Layout changes for new checkbox layout possibilitiesWilliam Reynish
Follow-up to previous commit. Some examples: {F8473507} {F8473508} {F8473509} {F8473510} For more screenshots, please see D7430. We use column or row headings here to bring more structure, and to give the eye visual anchors which aid eye-scanning. The left-aligned checkboxes likewise help with this. And we keep the adherence to the center line, so the alignment matches up between the various buttons and controls. * Changes the property split percentage from 50/50% to 40/60%. This is needed to give enough space for the checkboxes. But in most cases this looks better anyway - see Transform panel. In some cases it simply fills out the available space more efficently. * Fix various hacks where we previously used manually defined splits. When we did this, the alignment was never quite right, and the layout code was a mess. * Adds column headings to many places where a list of checkboxes all share a common purpose or leading text. * Add checkbox + value configurations various places where a checkbox only serves to enable the value slider * Removes most uses of grid flow layout. The grid flow layouts combine poorly with column headings, and also they would mess alignment up badly. The grid flow layouts also often made buttons and controls jump around on the screen if you would just resize editors slightly, causing visual confusion, making users lose their place. The logic for at what time the list of items would re-flow was often flawed, jumping to multiple columns too fast or too late - and frankly, the grid flow layouts would often just look bad. Maniphest Task: https://developer.blender.org/T65965 Differential Revision: https://developer.blender.org/D7430 Reviewed by: Brecht Van Lommel, Pablo Vazquez. Most work here by William Reynish, few changes by Julian Eisel.
2020-03-26Mantaflow: remove reminents of high res smokeAaron Carlisle
It appears this slipped through the code review Reviewed By: sebbas Differential Revision: https://developer.blender.org/D6760
2020-03-19UI: remove unnecessary Shadow from Shadow Samples label in Eevee volumetricsAdrian Newton
Differential Revision: https://developer.blender.org/D7161
2020-03-09UI: make workbench viewport samples label consistent with Cycles and EeveeAdrian Newton
Differential Revision: https://developer.blender.org/D7082
2020-02-19DRW: New High Quality Normal & Tangent extractClément Foucault
This patch adds a dedicated path to extract 16bit normals instead of packing them into 10bits/comp. The tangents are also packed to 10bits/comp if not using the new High Quality Normal option. Fix T61024 Degraded texture shading on dense meshes Reviewed By: brecht Differential Revision: https://developer.blender.org/D6614
2019-09-12GPencil: Add Simplify panel to Workbench engineAntonio Vazquez
2019-09-12GPencil: Fix missing Simplify panel in CyclesAntonio Vazquez
Differential Revision: https://developer.blender.org/D5776
2019-09-10GPencil: New Simplify Tint optionAntonio Vazquez
This is useful to disable all layers tint in one step and it will be used for future operators.
2019-09-05Eevee: Shadow map refactorClément Foucault
Reviewed By: brecht Differential Revision: http://developer.blender.org/D5659
2019-06-29UI: Make Panel Name PluralAaron Carlisle
This is more consistent with other panels; for example "Shadows"
2019-06-11Fix T65393: Error live editing UI scriptsCampbell Barton
Disable relative imports for UI scripts.
2019-05-19UI: Align Render and Viewport samples properties for EEVEE.Pablo Vazquez
Matches Cycles and other areas in Blender.
2019-05-19UI: add Panel.bl_order property to control order of panels for add-onsBrecht Van Lommel
This fixes poor Cycles panel ordering, with Freestyle and Custom Properties appearing at the top. For most cases order of registration is still the easiest way to control order and it's recommended to keep using that. This is mainly to solve a few cases where we want a few built-in panels to appear below add-on panels.
2019-05-17Cycles/Eevee: unify depth of field settings for camerasJeroen Bakker
There is now a checkbox to enable/disable depth of field per camera. For Eevee this replace the scene level setting. For Cycles there is now only an F-Stop value, no longer a Radius. Existing files are converted based on Cycles or Eevee being set in the scene. Differential Revision: https://developer.blender.org/D4882
2019-05-17Eevee: Remove the Volumetric Render checkboxClément Foucault
This is to simplify the usage of Volumetrics. Now it automatically detect if there is any Volumetric material in the view and allocate the needed buffer if any.
2019-05-17Eevee: Remove the Subsurface Render checkboxClément Foucault
This is to simplify the usage of SSS. Now it automatically detect if there is any SSS material in the view and allocate the needed buffer if any.
2019-05-16Cycles/Eeeve: unify film transparent settingJeroen Bakker
For existing files, it will use the setting from Cycles or Eevee depending on the render engine in the scene. Differential Revision: https://developer.blender.org/D4874
2019-05-14Fix T64567: Rename Viewport to Viewport RenderJeroen Bakker
2019-05-02Workbench,EEVEE: Viewport Render SamplesJeroen Bakker
- Add `render_aa` and `viewport_aa` sampling setting for workbench. 0 samples means no AA, 1 sample uses FXAA and more samples will use TAA. The viewport `gpu_viewport_quality` can still limit viewport anti-aliasing method. - Use TAA when rendering images. (this used to be CPU based FSAA) - Removed `R_OSA` related settings. Reviewers: fclem, brecht Maniphest Tasks: T60847 Differential Revision: https://developer.blender.org/D4773
2019-03-17Cleanup: unused variablesCampbell Barton
2019-03-14Cleanup: unused importsCampbell Barton
2019-03-08UI: Naming and tooltip for the new high-resolution smoke simplify setting.Pablo Vazquez
* Rename "Use Smoke Highres" to "Use High-resolution Smoke" * Use 'Display' instead of 'Draw', following the naming conventions in 2.8 * Drop the 'Use' prefix in the UI, a "High-resolution Smoke' checkbox sufficiently communicates what it does.