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-15Cleanup: reduce indirect DNA header inclusionCampbell Barton
Remove DNA headers, using forward declarations where possible. Also removed duplicate header, header including it's self and unnecessary inclusion of libc system headers from BKE header.
2020-12-14Cryptomatte: apply volume transmittance to Eevee.Jeroen Bakker
This patch will add volumetric transmittance to the cryptomatte coverage data of all samples when post processing the cryptomatte passes. It was discussed with Cycles that this is desired, but tricky to implement in Cycles.
2020-12-14Fix missing string escape for RNA path creationCampbell Barton
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-08shaders_test: correct arguments to EEVEE_shaders_cryptomatte_sh_getCampbell Barton
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-30Cleanup: Use "region" for ARegion variable namesHans Goudey
As proposed in T74432 and already implemented in several commits, "region" is the preferred name for `ARegion` variables, rather than any variant of "ar". This commit changes a few "ar" variables that have popped up over time and also adjusted names of variants like "arnew".
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-19Cleanup: Grammar: "Allow to" vs gerundHans Goudey
In cases where "Allow" is followed by an infinitive, a noun needs to directly follow it. But it makes more sense to follow it with a gerund instead.
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-18Fix T82586: Sculpt normals not updating with EEVEE enabledPablo Dobarro
The root cause of this bug is that the function that updates the PBVH normals is drw_sculpt_generate_calls. As now both the overlays and mesh can be drawn without using pbvh drawing, the normals were not updating. This patch forces a normals updates also in the no PBVH drawing code path of the overlays. This was affecting both shading and sculpt surface sampling in both flat and smooth shading modes. Having the sculpt normals being updated by the drawing code is a wrong design which also causes other issues like: Brushes that sample the surface and do multiple stroke steps between redraws will sample invalid normals, creating artifacts during the stroke clearly visible in some brushes. Brushes that do not need to sample the surface update the normals on each redraw. This affects performance a lot as in some cases, updating the normals takes more time than doing the brush deformation. If flat shading is being used, this is only necessary to do once after the stroke ends. Reviewed By: fclem Differential Revision: https://developer.blender.org/D9535
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-14GPencil: Fix callback parameter list errorAntonio Vazquez
In the previous commit the bGPDframe parameter was removed, but this parameter is required to keep the same function signature.
2020-11-14GPencil: Fix compiler warning, unused variableFalk David
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-09Merge branch 'blender-v2.91-release'Brecht Van Lommel
2020-11-09Fix T78028: crash with grease pencil and save buffersBrecht Van Lommel
Perform grease pencil rendering delayed in this case, as there are no render buffers available for compositing. This keeps memory usage lower, but does involve multiple depsgraph evaluation. This seems in line with the intent of the save buffers feature, to use minimal memory.
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-06Cleanup: Render Module: combine intern/ source & includeAaron Carlisle
2020-11-06Cleanup: Render Module: move header files to main directoryAaron Carlisle
Move headers files from `render/extern/` to `render/` Part of T73586
2020-11-06Fix compilation error of bf_drawSergey Sharybin
Similar to previous commit, missing build dependency.