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
2020-12-14Fix enum-conversion, old-style-declaration warningsCampbell Barton
Introduced in 8f3a401975987c9b70f3ea0ea21977c70371b466
2020-12-14Eevee: Add Volume Transmittance to Color Render Passes.Jeroen Bakker
In Cycles the volume transmittance is already composited into the color passes. In Eevee the volume transmittance pass was separate and needed to be composited in the compositor. This patch adds the volume transmittance pass direct in the next render passes: * Diffuse Color * Specular Color * Emission * Environment This patch includes the removal of the volume transmittance render pass. It also renames the volume render passes to match Cycles. The setting themselves aren't unified. Maniphest Tasks: T81134
2020-12-11Correct the order of the last two arguments in ↵Evan Wilson
`eevee_cryptomatte_shading_group_create` When compiling on Windows, the following warnings occur: ```[3468/4560] Building C object source\blender\draw\CMakeFiles\bf_draw.dir\engines\eevee\eevee_cryptomatte.c.obj C:\blender-git\blender\source\blender\draw\engines\eevee\eevee_cryptomatte.c(306): warning C4047: 'function': 'bool' differs in levels of indirection from 'void *' C:\blender-git\blender\source\blender\draw\engines\eevee\eevee_cryptomatte.c(306): warning C4024: 'eevee_cryptomatte_shading_group_create': different types for formal and actual parameter 5``` As @Severin pointed out [here](https://developer.blender.org/rB76a0b322e4d3244e59a154c8255b84a4fbc33117#288960), this is due to the last two arguments being flipped. This diff corrects the order. Reviewed By: Severin, fclem Differential Revision: https://developer.blender.org/D9809
2020-12-11Cleanup: trailing spaceCampbell Barton
2020-12-10Fix T83361: UV Editor does not draw pinned selected UVs as pinnedPhilipp Oeser
Caused by rB4212b6528af. outlineColor is computed by the vertex shader, so not a uniform. So outlineColor was undefined. note: it was still possible to run into the situation that a selected UV is drawn ontop of a selected pinned UV [you had to disable sticky selection for this], now also make sure selected-pinned are drawn topmost, then selected, then unselected UVs. Maniphest Tasks: T83361 Differential Revision: https://developer.blender.org/D9786
2020-12-09Fix T83575: GPencil: VFX Blur is not disabled when samples are zeroAntonio Vazquez
Before the number of samples was not checked, only the pixel size.
2020-12-08Fix T81950: GPencil - Draw - Stoke Placement Stroke Feature BrokenJamell Moore
Buffer strokes weren't being the excluded from depth only draw calls so were being included in depth tests. They are now excluded by bypassing the creation of the buffer strokes. Reviewed By: fclem Differential Revision: https://developer.blender.org/D9742
2020-12-07Cleanup: spellingCampbell Barton
2020-12-07Cleanup: correct enum typeCampbell Barton
2020-12-05Fix T83400: GPencil onion skin not visible when Edit Lines is enabledAntonio Vazquez
The Edit Lines flag was not checking if Onion was enabled. In 2D template this is disabled by default, but default template has enabled it.
2020-12-04Cleanup: clang-formatSybren A. Stüvel
Rerun `make format`. No functional changes.
2020-12-04EEVEE CryptomatteJeroen Bakker
Cryptomatte is a standard to efficiently create mattes for compositing. The renderer outputs the required render passes, which can then be used in the compositor to create masks for specified objects. Unlike the Material and Object Index passes, the objects to isolate are selected in compositing, and mattes will be anti-aliased. Cryptomatte was already available in Cycles this patch adds it to the EEVEE render engine. Original specification can be found at https://raw.githubusercontent.com/Psyop/Cryptomatte/master/specification/IDmattes_poster.pdf **Accurate mode** Following Cycles, there are two accuracy modes. The difference between the two modes is the number of render samples they take into account to create the render passes. When accurate mode is off the number of levels is used. When accuracy mode is active, the number of render samples is used. **Deviation from standard** Cryptomatte specification is based on a path trace approach where samples and coverage are calculated at the same time. In EEVEE a sample is an exact match on top of a prepared depth buffer. Coverage is at that moment always 1. By sampling multiple times the number of surface hits decides the actual surface coverage for a matte per pixel. **Implementation Overview** When drawing to the cryptomatte GPU buffer the depth of the fragment is matched to the active depth buffer. The hashes of each cryptomatte layer is written in the GPU buffer. The exact layout depends on the active cryptomatte layers. The GPU buffer is downloaded and integrated into an accumulation buffer (stored in CPU RAM). The accumulation buffer stores the hashes + weights for a number of levels, layers per pixel. When a hash already exists the weight will be increased. When the hash doesn't exists it will be added to the buffer. After all the samples have been calculated the accumulation buffer is processed. During this phase the total pixel weights of each layer is mapped to be in a range between 0 and 1. The hashes are also sorted (highest weight first). Blender Kernel now has a `BKE_cryptomatte` header that access to common functions for cryptomatte. This will in the future be used by the API. * Alpha blended materials aren't supported. Alpha blended materials support in render passes needs research how to implement it in a maintainable way for any render pass. This is a list of tasks that needs to be done for the same release that this patch lands on (Blender 2.92) * T82571 Add render tests. * T82572 Documentation. * T82573 Store hashes + Object names in the render result header. * T82574 Use threading to increase performance in accumulation and post processing. * T82575 Merge the cycles and EEVEE settings as they are identical. * T82576 Add RNA to extract the cryptomatte hashes to use in python scripts. Reviewed By: Clément Foucault Maniphest Tasks: T81058 Differential Revision: https://developer.blender.org/D9165
2020-12-04EEVEE: Arbitrary Output VariablesJeroen Bakker
This patch adds support for AOVs in EEVEE. AOV Outputs can be defined in the render pass tab and used in shader materials. Both Object and World based shaders are supported. The AOV can be previewed in the viewport using the renderpass selector in the shading popover. AOV names that conflict with other AOVs are automatically corrected. AOV conflicts with render passes get a warning icon. The reason behind this is that changing render engines/passes can change the conflict, but you might not notice it. Changing this automatically would also make the materials incorrect, so best to leave this to the user. **Implementation** The patch adds a copies the AOV structures of Cycles into Blender. The goal is that the Cycles will use Blenders AOV defintions. In the Blender kernel (`layer.c`) the logic of these structures are implemented. The GLSL shader of any GPUMaterial can hold multiple outputs (the main output and the AOV outputs) based on the renderPassUBO the right output is selected. This selection uses an hash that encodes the AOV structure. The full AOV needed to be encoded when actually drawing the material pass as the AOV type changes the behavior of the AOV. This isn't known yet when the GLSL is compiled. **Future Developments** * The AOV definitions in the render layer panel isn't shared with Cycles. Cycles should be migrated to use the same viewlayer aovs. During a previous attempt this failed as the AOV validation in cycles and in Blender have implementation differences what made it crash when an aov name was invalid. This could be fixed by extending the external render engine API. * Add support to Cycles to render AOVs in the 3d viewport. * Use a drop down list for selecting AOVs in the AOV Output node. * Give user feedback when multiple AOV output nodes with the same AOV name exists in the same shader. * Fix viewing single channel images in the image editor [T83314] * Reduce viewport render time by only render needed draw passes. [T83316] Reviewed By: Brecht van Lommel, Clément Foucault Differential Revision: https://developer.blender.org/D7010
2020-12-02Fix T83293: crash when selecting boneJacques Lucke
This partially reverts rBe922dd7d8a307c54d49bc01649a12610b022192b. The issues fixed by that commit is still fixed. Reviewers: fclem
2020-11-28GPencil: Fix unreported vertex size for Bezier handlesAntonio Vazquez
By error, the Bezier points were using the mesh vertex size, not the grease pencil vertex size.
2020-11-25GPencil: Disable vertex color when use holdoutAntonio Vazquez
If the material has the holdout enabled, the value of the vertex color must not be used.
2020-11-24Viewport: cannot select object by clicking on its instancesJacques Lucke
Selecting an object by clicking on its instances only worked, when the object itself is visible. However, it is possible to hide the object and still keep the instances visible. The solution is to give every object the correct `select_id` in the depsgraph object iterator right before rendering. Reviewers: fclem, brecht Differential Revision: https://developer.blender.org/D9640
2020-11-24Fix T80748: Render Emissive Colors in Compositor BackdropJeroen Bakker
This change will use the image engine to draw the backdrop of the compositor. With this patch the alpha blending will be done in Linear Scene Reference space and shows pure emissive colors. See differential for an example image. **Technical changes** As only the backdrop drawing is done using the draw manager there are some technical changes. 1. The overlay buffer is partly drawn outside the draw manager. When drawing the backdrop image the overlay buffer needs to be masked to simulate premultiplied alpha under. 2. The backdrop of the node editor is done in region pixel space. A `DRWView` is constructed with this space. 3. UDIM textures uses world position to generate the UV coordinates. This has been implemented more strict by the `IMAGE_DRAW_FLAG_USE_WORLD_POS`. When the flag isn't used the local coordinates are used to generate the UV coordinates what is image space. 4. The draw manager now checks the actual `eSpaceType` of the space data to use different code paths. In the future the movie clip editor will be added. NOTE: The preview images in nodes are drawn in display space and cannot show pure emissive colors. As preview images are used on more locations it is best to fix this in a separate patch. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D9451
2020-11-20Fix wireframe opacity creating artifacts on sculpt overlay edgesPablo Dobarro
When lowering the wireframe opacity with sculpt overlays enabled, the wireframe overlay was creating white artifacts along the edges. Reviewed By: fclem Differential Revision: https://developer.blender.org/D9607
2020-11-20Cleanup: clang-formatCampbell Barton
2020-11-19Cleanup: Grammar: "Allow to" vs gerund missed in last commitHans Goudey
2020-11-18Merge branch 'blender-v2.91-release'Jeroen Bakker
2020-11-18Fix T82810: UV Editor, Crash with switching between single image and UDIM tileJeroen Bakker
Active tile could be NULL when it was on the second tile before switching back and forth between the Image/UDIM. In the future we might also check that the active_tile_index is always valid.
2020-11-17Merge branch 'blender-v2.91-release'Hans Goudey
2020-11-17Fix T77561 EEVEE: Refraction BSDF is using world probe during glossy bakeClément Foucault
This fixes light leaking during baking indoor environment when using refraction bsdfs.
2020-11-17Merge branch 'blender-v2.91-release'Jeroen Bakker
2020-11-17Fix T82064: Add Image Clone tool to overlay engineJeroen Bakker
The clone tool in the image editor can show a second texture on top of the image. This wasn't ported and now results into alpha and depth issues. This fix adds the clone tool drawing to the overlay engine. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D9352
2020-11-16Fix unreported wireframe opacity color blending brokenClément Foucault
This was introduced by rBdb7d8281c5a2. The color needs to be premultiplied as there is no blend mode and the output color is replacing the framebuffer color & alpha.
2020-11-13GPencil: Merge GSoC curve edit modeFalk David
Differential Revision: https://developer.blender.org/D8660 This patch is the result of the GSoC 2020 "Editing Grease Pencil Strokes Using Curves" project. It adds a submode to greasepencil edit mode that allows for the transformation of greasepencil strokes using bezier curves. More information about the project can be found here: https://wiki.blender.org/wiki/User:Filedescriptor/GSoC_2020.
2020-11-13UI: Adaptive HDRI preview resolutionIvan Perevala
HDRI preview should have resolution dependent on dpi, viewport scale and HDRI gizmo size. This patch uses a LOD to render a more round sphere. Reviewed By: Jeroen Bakker Differential Revision: https://developer.blender.org/D9382
2020-11-13Add An Opacity Slider to Overlay WireframeJun Mizutani
This patch adds an opacity slider to the wireframe overlay. The previous wireframe in dense geometry scenes could be too dark and sometimes the user just wants an impression of the geometry during modelling. Reviewed By: Jeroen Bakker Differential Revision: https://developer.blender.org/D7622
2020-11-12Cleanup: spellingCampbell Barton
2020-11-12Cleanup: warningsCampbell Barton
2020-11-11GPencil: Fix unreported crash when style is NULLAntonio Vazquez
2020-11-06Merge branch 'blender-v2.91-release' into masterPhilipp Oeser
2020-11-06Fix T82220 Missing viewport update after manual "HDRI Preview Size" inputClément Foucault
This is caused by the TAA being reset after the init phase, leading to 1 sample being kept as valid when it is clearly not. To fix this, we run the lookdev validation before TAA init. Reviewed By: Jeroen Bakker Differential Revision: https://developer.blender.org/D9452
2020-11-06Refactor: move LightCache .blend I/O to eevee_lightcache.cJacques Lucke
Ref T76372.
2020-11-06Cleanup: use STR_ELEM macroCampbell Barton
2020-11-06Cleanup: use ELEM macroCampbell Barton
2020-11-05Merge branch 'blender-v2.91-release' into masterClément Foucault
2020-11-05Fix T81752 EEVEE: Camera Motion Blur is not blending steps properlyClément Foucault
This was due to improper calculation of velocity factor and an error in the camera data swapping between two steps.
2020-11-04Merge branch 'blender-v2.91-release'Hans Goudey
2020-11-04Fix T73126 Eevee: light probe baking ignores indirect bounces from SSSClément Foucault
2020-11-04Merge branch 'blender-v2.91-release'Jeroen Bakker
2020-11-04Fix T67832: Camera Background Images View TransformJeroen Bakker
This patch will apply the view transform when a movie clip is used as camera background image. It does this by rendering the image in the color buffer when it needs the view transform. For other images it uses the overlay buffer. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D7067
2020-11-03Merge branch 'blender-v2.91-release'Sebastián Barschkis
2020-11-03Fluid: Fix crash with viewport display optionsSebastián Barschkis
Overlay extras should not be drawn outside of the fluid domain cache range.
2020-10-30GPencil: New material parameter to rotate textureAntonio Vazquez
Add a parameter to rotate the texture for Dots and Squares Differential Revision: https://developer.blender.org/D9369
2020-10-27Cleanup: use over-line for doxy commentsCampbell Barton
Follow our code style for doxygen sections.
2020-10-23Fix T81942 EEVEE: Reflection Plane glitch with low clip distancesClément Foucault
This was happening because the raytrace was not even being performed due to the tracing line being too small after frustum clipping.