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
path: root/intern
AgeCommit message (Collapse)Author
2022-09-02Cleanup: refactoring of kernel film function names and organizationBrecht Van Lommel
2022-09-01Cleanup: minor cleanups for sample pattern codeBrecht Van Lommel
2022-09-01Cycles: remove old Sobol pattern, simplify sampling dimensionsBrecht Van Lommel
The multi-dimensional Sobol pattern required us to carefully use as low dimensions as possible, as quality goes down in higher dimensions. Now that we have two sampling patterns that are at least as good, there is no need to keep it around and the implementation can be simplified. Differential Revision: https://developer.blender.org/D15788
2022-09-01Cycles: improve Progressive Multi-Jittered samplingNathan Vegdahl
Fix two issues in the previous implementation: * Only power-of-two prefixes were progressively stratified, not suffixes. This resulted in unnecessarily increased noise when using non-power-of-two sample counts. * In order to try to get away with just a single sample pattern, the code used a combination of sample index shuffling and Cranley-Patterson rotation. Index shuffling is normally fine, but due to the sample patterns themselves not being quite right (as described above) this actually resulted in additional increased noise. Cranley-Patterson, on the other hand, always increases noise with randomized (t,s) nets like PMJ02, and should be avoided with these kinds of sequences. Addressed with the following changes: * Replace the sample pattern generation code with a much simpler algorithm recently published in the paper "Stochastic Generation of (t, s) Sample Sequences". This new implementation is easier to verify, produces fully progressively stratified PMJ02, and is *far* faster than the previous code, being O(N) in the number of samples generated. * It keeps the sample index shuffling, which works correctly now due to the improved sample patterns. But it now uses a newer high-quality hash instead of the original Laine-Karras hash. * The scrambling distance feature cannot (to my knowledge) be implemented with any decorrelation strategy other than Cranley-Patterson, so Cranley-Patterson is still used when that feature is enabled. But it is now disabled otherwise, since it increases noise. * In place of Cranley-Patterson, multiple independent patterns are generated and randomly chosen for different pixels and dimensions as described in the original PMJ paper. In this patch, the pattern selection is done via hash-based shuffling to ensure there are no repeats within a single pixel until all patterns have been used. The combination of these fixes brings the quality of Cycles' PMJ sampler in line with the previously submitted Sobol-Burley sampler in D15679. They are essentially indistinguishable in terms of quality/noise, which is expected since they are both randomized (0,2) sequences. Differential Revision: https://developer.blender.org/D15746
2022-09-01Tweak cryptomatte channels naming to improve interoperabilitySergey Sharybin
Use lowercase rgba channel names which still by-passes lossy nature of DWA compression and which also keeps external compositing tools happy. Thanks Steffen Dünner for testing this patch! Differential Revision: https://developer.blender.org/D15834
2022-09-01Fix cryptomatte passes saved lossy into multilayer EXRSergey Sharybin
The DWA compression code in OpenEXR has hardcoded rules which decides which channels are lossy or lossless. There is no control over these rules via API. This change makes it so channel names of xyzw is used for cryptomatte passes in Cycles. This works around the hardcoded rules in the DWA code making it so lossless compression is used. It is important to use lower case y channel name as the upper case Y uses lossy compression. The change in the channel naming also makes it so the write code uses 32bit for the cryptomatte even when saving half-float EXR. Fixes T96933: Cryptomatte layers saved incorrectly with EXR DWA compression Fixes T88049: Cryptomatte EXR Output Bit Depth should always be 32bit Differential Revision: https://developer.blender.org/D15823
2022-09-01Fix: Build error in Cycles with OpenVDB turned offHans Goudey
2022-08-31Fix T100708: Cycles bake of diffuse/glossy color not outputting alphaBrecht Van Lommel
2022-08-31Fix part of T100626: Cycles not using tiles for bakingBrecht Van Lommel
Leading to excessive memory usage compared to Blender 2.93. There's still some avoidable memory usage remaining, due to the full float buffer in the new image editor drawing and not loading the cached EXR from disk in tiles. Main difficulty was handling multi-image baking and disk caches, which is solved by associating a unique layer name with each image so it can be matched when reading back the image from the disk. Also some minor header changes to be able to use RE_MAXNAME in RE_bake.h.
2022-08-31Fix T100714: Cycles volume render artifacts with negative value gridsBrecht Van Lommel
The volume bounds were not constructed correctly in this case.
2022-08-31Mesh: Move material indices to a generic attributeHans Goudey
This patch moves material indices from the mesh `MPoly` struct to a generic integer attribute. The builtin material index was already exposed in geometry nodes, but this makes it a "proper" attribute accessible with Python and visible in the "Attributes" panel. The goals of the refactor are code simplification and memory and performance improvements, mainly because the attribute doesn't have to be stored and processed if there are no materials. However, until 4.0, material indices will still be read and written in the old format, meaning there may be a temporary increase in memory usage. Further notes: * Completely removing the `MPoly.mat_nr` after 4.0 may require changes to DNA or introducing a new `MPoly` type. * Geometry nodes regression tests didn't look at material indices, so the change reveals a bug in the realize instances node that I fixed. * Access to material indices from the RNA `MeshPolygon` type is slower with this patch. The `material_index` attribute can be used instead. * Cycles is changed to read from the attribute instead. * BMesh isn't changed in this patch. Theoretically it could be though, to save 2 bytes per face when less than two materials are used. * Eventually we could use a 16 bit integer attribute type instead. Ref T95967 Differential Revision: https://developer.blender.org/D15675
2022-08-31Merge branch 'blender-v3.3-release'Xavier Hallade
2022-08-31Cycles: Enforce Windows driver version requirements for syclXavier Hallade
sycl/L0 runtime reports compute-runtime version since Intel graphics driver 101.3268 on Windows, when querying driver version from sycl. Prior to this driver, it was 0. Now we can bump minimum requirement to this one and filter-out devices returning 0. Maniphest Tasks: T100648
2022-08-31Fix resource leak dropping files in GHOST/Win32Campbell Barton
Early returns in error cases missed calling ReleaseStgMedium for getDropDataAsFilenames, getDropDataAsString & getDropDataAsString.
2022-08-31Cleanup: remove pointless strcpy return value checkCampbell Barton
2022-08-31Fix returning a freed context when initialization fails for GHOST/Win32Campbell Barton
2022-08-31Fix uninitialized variable use for ID3D11RenderTargetViewCampbell Barton
When 'm_render_target' was NULL, backbuffer_res would be used without being assigned. While it seems likely this code-path is rarely used (if at all), resolve the logical error.
2022-08-31Cleanup: check GetKeyboardState succeeds before using it's valuesCampbell Barton
Quiets compiler warning.
2022-08-31Cleanup: tablet press could fall through to release on GHOST/Win32Campbell Barton
Introduced in [0], checking the logic here, there seems to be no reason a press event should ever run release logic, relocate break statement. In practice this was unlikely to cause problems as peeking into press events would need to fail, peeking into release would need to succeed. Even so, better avoid accidental fall through in switch statements. [0]: 6f158f834dcfa638639391f37afcb2ca8457cb45
2022-08-31Cleanup: remove 'else' after returnCampbell Barton
2022-08-31Cleanup: use bool for GHOST_SystemWin32::setConsoleWindowState returnCampbell Barton
2022-08-31Node: Mix nodeCharlie Jolly
This patch is a response to T92588 and is implemented as a Function/Shader node. This node has support for Float, Vector and Color data types. For Vector it supports uniform and non-uniform mixing. For Color it now has the option to remove factor clamping. It replaces the Mix RGB for Shader and Geometry node trees. As discussed in T96219, this patch converts existing nodes in .blend files. The old node is still available in the Python API but hidden from the menus. Reviewed By: HooglyBoogly, JacquesLucke, simonthommes, brecht Maniphest Tasks: T92588 Differential Revision: https://developer.blender.org/D13749
2022-08-30Cleanup: simplify comparison, clarify commentCampbell Barton
2022-08-30Cleanup: spelling in commentsCampbell Barton
2022-08-30Cleanup: formatCampbell Barton
2022-08-29Build: automatically disable WITH_GHOST_WAYLAND if missing librariesBrecht Van Lommel
Same as other build options, don't make it a hard requirement to have Wayland libraries installed when it gets enabled by default. Also fixes wayland-protocols not being found on the buildbot.
2022-08-29Cycles: add option to specify OptiX runtime root directoryBrecht Van Lommel
This allows individual users or Linux distributions to specify a directory Cycles will automatically look for the OptiX include folder, to compile kernels at runtime. It is still possible to override this with the OPTIX_ROOT_DIR environment variable at runtime. Based on patch by Sebastian Parborg. Ref D15792
2022-08-29Cycles: disable Scrambling Distance UI when using Sobol BurleyBrecht Van Lommel
Contributed by Alaska. Differential Revision: https://developer.blender.org/D15794
2022-08-29Cleanup: move Cycles display driver context handling to render moduleBrecht Van Lommel
This is highly coupled to Blender logic so doesn't belong in Cycles.
2022-08-29Allocator: add MEM_cnew_arrayBrecht Van Lommel
This is a more C++ friendly version MEM_calloc_arrayN, like MEM_cnew is for MEM_callocN. For cases where data structures are still C and Vector or Array don't work.
2022-08-29Merge branch 'blender-v3.3-release'Nikita Sirgienko
2022-08-29Cycles: Remove "return" and "assert" from oneAPI kernel codeNikita Sirgienko
2022-08-29Merge branch 'blender-v3.3-release'Nikita Sirgienko
2022-08-29Cycles: Increased minimum supported driver for Windows in oneAPINikita Sirgienko
2022-08-27CMake: include missing header filesCampbell Barton
2022-08-27CMake: cleanup, rename INC_HD_CYCLES to SRC_HD_CYCLES_HEADERSCampbell Barton
Our convention is to use `INC_*` for include directories, this caused `make check_cmake` to incorrectly fail as it expected these files to be include directories.
2022-08-27Cleanup: simplify key input handling for GHOST/Win32Campbell Barton
- Don't create utf8 text for key release events. - Reduce variable scope.
2022-08-27Cleanup: add missing braces for GHOST/Win32Campbell Barton
2022-08-27Cleanup: use C style comments for GHOST/Win32 textCampbell Barton
2022-08-27Fix T100582: Windows-10 Switching Desktops locks Ctrl KeyCampbell Barton
Regression in recent fix for T66088 [0]. caused by much older problem introduced with [1] & [2]. Unlike other platforms, as of [1] GHOST/Win32 was keeping track of the pressed modifier keys. Since GHOST/Win32 cleared the modifier state on window activation [2] and only changes to modifier state would generate key events, activating the window and releasing the modifier would not send the release event. Resolve this by removing the stored modifier state from GHOST/Win32, always passing modifier press/release events through to Blender (matching other GHOST back-ends). Instead, use key-repeat detection to prevent repeated modifier keys from being generated - an alternate solution to T26446. [0]: 8bc76bf4b957c51ddc5a13c6305f05c64b218a27 [1]: d6b43fed313b60bb6a269680b3c5622955b8a690 [2]: 6b987910e43ff5f91512a3c361ea3141590d4e45
2022-08-26Merge branch 'blender-v3.3-release'Bastien Montagne
2022-08-26Fix T55284: error in Hybrid MultiFractal Musgrave textureLuis Pereira
The calculation was revised to address two issues: * Discontinuities occurring when detail was a non-integer greater than 2. * Levels of detail in the interval [0,1) repeating the levels of detail in the interval [1,2). This fixes Cycles, Eevee and geometry nodes. Differential Revision: https://developer.blender.org/D15785
2022-08-26Cleanup: spelling in comments, formatCampbell Barton
2022-08-26Fix incorrect UI scaling after changing monitors DPI under WaylandCampbell Barton
Add a GHOST_kEventWindowDPIHintChanged event to ensure the UI is properly updated.
2022-08-25Merge branch 'blender-v3.3-release'Sergey Sharybin
2022-08-25Fix Cycles oneAPI for a newer DPC++ compiler versionSergey Sharybin
2022-08-25Fix accessing freed memory for GHOST/Wayland clipboard accessCampbell Barton
2022-08-24Merge branch 'blender-v3.3-release'Brecht Van Lommel
2022-08-24Fix WITH_CYCLES_ONEAPI_BINARIES issues with make releaseBrecht Van Lommel
Fix typo in blender_release.cmake, and ensure that "make release" still works when ocloc is not available. While a fatal error is useful for debugging, the current convention is to disable features, especially in cases like this where there is no simple way to make the feature work. Differential Revision: https://developer.blender.org/D15774
2022-08-23Cleanup: match names between functions & declarationsCampbell Barton