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-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.
2019-03-04Cleanup: use single quotes for enumsCampbell Barton
2019-03-04Fix T62113: Color Management Curves CRGB buttons missingSebastian Parborg
Template was missing a type="COLOR" definition.
2019-02-28UI: Properties hierarchical nestingWilliam Reynish
Make hierarchy more clear and consistent in Render, Object and Particles
2019-02-15Add global control over disabling high-resolution smoke drawSergey Sharybin
Can be found in the viewport's simplify panel, allows to easily disable high-res display for all the smokes in the scene.
2019-01-31UI: rename Free Bake to Delete Bake.Brecht Van Lommel
"Free" is more of a programming term related to memory allocation, not a term we need to use in the interface. Ref T61054.
2019-01-23EEVEE UI: Render/Viewport Samples - follow CyclesDalai Felinto
Cycles shows first the render, and then the viewport settings. One could argue that EEVEE's main setting is the viewport one. But that is silly. If we need an extra setting for the lookdev mode so be it. But EEVEE should be treated as an engine just as Cycles. Also, removed the " Samples" bit from their labels since they are under the Sampling panel.
2018-12-20Cleanup: styleCampbell Barton
2018-11-26UI: rename "OpenGL" render engine to "Workbench".Brecht Van Lommel
Neither is very descriptive for its task, but at least workbench is more future proof and distinguishes it from Eevee.
2018-11-26GP: New Blend Layers functionalityAntonioya
Now it's possible define the blend mode between layers including the option to clamp the layer using underlying layers. Also a new Simplify option has been added to disable blend layers.
2018-11-16UI: Eevee: Rename Volume Exponential Sampling to DistributionClément Foucault
2018-11-15Eevee: Add Filter Quality settingClément Foucault
This setting can be tweaked to improve glossy reflection cubemaps. It increases the sample count for each roughness level. This settings affect the lookdev mode quality as well.
2018-11-15Eevee: Add Glossy Reflection clampingClément Foucault
This enables reducing the noise comming from very bright light sources (like a sun) that can be found in distant HDRIs. The lost energy may be replaced manually by a sunlight that compensate the this loss. This clamping only concerns Reflection Cubmaps and is done on all on all of them. Setting to 0.0 disables it (default).