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
2021-04-23Cleanup: clang-formatCampbell Barton
2021-04-21Merge branch 'blender-v2.93-release'Brecht Van Lommel
2021-04-21Fix some Cycles random walk SSS precision issues with small radiusBrecht Van Lommel
2021-04-20Add support for building on Linux aarch64Patrick Mours
Differential Revision: https://developer.blender.org/D10958
2021-04-19Cycles: include more transparency and emission in fast GI approximationBrecht Van Lommel
For indirect light rays, don't assume any hit is opaque, rather if it has transparency or emission do the shading but don't do any further bounces. Naturally this is slower when there are transparent surfaces, however without this cutout opacity doesn't give sensible results. Differential Revision: https://developer.blender.org/D10985
2021-04-19Cleanup: move BVH utility functions into own fileBrecht Van Lommel
2021-04-16Remove unneeded code from previous commit.Jeroen Bakker
2021-04-16Fix OCIO Shader Compilation Error.Jeroen Bakker
Compilation fails when our OCIO wrapper creates a shader that transfer first to scene ref and directly after that to display. This cause is that the GPU resources of both transfers had the same name. This is fixed by prefixing the resources. This can be reproduced by loading a movie file (mkv) in the VSE editor. Reported by Sergey Sharybin.
2021-04-13Cycles: Initialize all OptiX structs to zero before usePatrick Mours
This is done to ensure building with newer OptiX SDK releases that add new struct fields gives deterministic results (no uninitialized fields and therefore random data is passed to OptiX).
2021-04-12Fix Cycles broken motion blur pass after recent bugfixBrecht Van Lommel
2021-04-12Fix T86880: Cycles bevel shader not working after editing worldBrecht Van Lommel
2021-04-12Fix T87283: crash with persistent data and motion blurBrecht Van Lommel
2021-04-12Fix T87324: incorrect parametric coordinates with light spreadBrecht Van Lommel
2021-04-12Win32: Fix fullscreen errors using Taskbar system menuHarley Acheson
Changing window state using taskbar system menu could result in a titleless window. Differential Revision: https://developer.blender.org/D10812 Reviewed by Ray Molenkamp
2021-04-11Cleanup: clang-formatCampbell Barton
2021-04-11Cleanup: spellingCampbell Barton
2021-04-09Cleanup: use our own code style for doxy-gen comment blocksCampbell Barton
2021-04-08Cleanup: Use const arguments for volume codeHans Goudey
The problem was that you could getting write access to a grid from a `const Volume *` without breaking const correctness. I encountered this when working on support for volumes in the bounding box node. For geometry nodes there is an important distinction between getting data "for read" and "for write", with the former returning a `const` version of the data. Also, for volumes it was necessary to cast away const, since all of the relevant functions in `volume.cc` didn't have const versions. This patch adds `const` in these places, distinguising between "for read" and "for write" versions of functions where necessary. The downside is that loading and unloading in the global volume cache needs const write-access to some member variables. I see that as an inherent problem that comes up with caching that never has a beautiful solution anyway. Some of the const-ness could probably be propogated futher in EEVEE code, but I'll leave that out, since there is another level of caching. Differential Revision: https://developer.blender.org/D10916
2021-04-08Cleanup: spellingCampbell Barton
2021-04-06Fix Cycles rendering files with Simplify wrong after recent changesBrecht Van Lommel
The versioning code was not taking into account the old default for AO bounces.
2021-04-05Render: faster animation and re-rendering with Persistent DataBrecht Van Lommel
For Cycles, when enabling the Persistent Data option, the full render data will be preserved from frame-to-frame in animation renders and between re-renders of the scene. This means that any modifier evaluation, BVH building, OpenGL vertex buffer uploads, etc, can be done only once for unchanged objects. This comes at an increased memory cost. Previously there option was named Persistent Images and had a more limited impact on render time and memory. When using multiple view layers, only data from a single view layer is preserved to keep memory usage somewhat under control. However objects shared between view layers are preserved, and so this can speedup such renders as well, even single frame renders. For Eevee and Workbench this option is not available, however these engines will now always reuse the depsgraph for animation and multiple view layers. This can significantly speed up rendering. These engines do not support sharing the depsgraph between re-renders, due to technical issues regarding OpenGL contexts. Support for this could be added if those are solved, see the code comments for details.
2021-04-05Cycles: update Light Paths presetBrecht Van Lommel
* Add Fast GI / AO bounces to presets * Add Default preset matching defaults * Add Fast Approximate GI preset * Lower Full GI depths to 32
2021-04-04Cycles: make AO bounces settings more discoverableBrecht Van Lommel
* Move out of Simplify panel, into Light Paths > Fast Global Illumination * Add separate boolan setting to enable/disable it separate from Simplify * Default AO bounces to 1 * Put ambient occlusion distance in this panel as well
2021-04-01Cleanup: spellingCampbell Barton
2021-04-01Fix "unused variable" warning when compiling without nanovdbSebastian Parborg
2021-04-01Cycles: light spread importance sampling for rectangular area lightsBrecht Van Lommel
Compute a subset of the area light that actually affects the shading point and only samples points within that. It's not perfect as the real subset is a circle instead of a rectangle, and the attenuation is not accounted for. However it massively reduces noise for shading points near the area light anyway. Ellipse shaped area lights do not have this importance sampling, but do not have solid angle importance sampling either. Ref D10594
2021-04-01Cycles: add a spread setting for area lightsMatteo Falduto
This simulates the effect of a honeycomb or grid placed in front of a softbox. In practice, it works by attenuating rays coming off-angle as a function of the provided spread angle parameter. Setting the parameter to 180 degrees poses no restrictions to the rays, making the light behave the same way as before this patch. The total light power is normalized based on the spread angle, so that the light strength remains the same. Differential Revision: https://developer.blender.org/D10594
2021-04-01Fix Cycles build error with "make developer" on some CPUsNikita Sirgienko
The combination of building unit tests and WITH_CYCLES_NATIVE_ONLY did not correctly detect when AVX/AVX2 support is available. Differential Revision: https://developer.blender.org/D8201
2021-04-01Libmv: Add clang-format for third party sourcesSergey Sharybin
Got ignored in the initial commit of clang-format support to the Libmv.
2021-03-31Alembic procedural: fix missing update when editing shadersKévin Dietrich
2021-03-31Alembic procedural: comment, speficy the behavior of a functionKévin Dietrich
2021-03-31Alembic procedural: cleanup, make add_object privateKévin Dietrich
This should only be accessed from within the procedural.
2021-03-31Alembic procedural: fix out of bound access when editing object properties ↵Kévin Dietrich
or shaders The index_data_map was not cleared when clearing a cache, so this would just append the new correct data to the end of the array instead of overwriting it, which would cause us to then use outdated indices.
2021-03-30Fix T87007: Cycles Background not updated if strength is initially nullKévin Dietrich
When the strength is initially set to zero, the shader graph is optimized out to remove any node which will not be executed because of this, which removes pretty much every single node, except for the output. As the graph is empty, the world shader is made invisible to rays so it is not evaluated in the kernel. However, when the strength is then modified, the Background is not updated as the modification happens on the Shader Node and not on the Background Node, so it is never tagged as modified. To fix this, we need to tag the Background as modified when its shader is also modified so the Kernel data is properly updated. Regression caused by rBbbe6d44928235cd4a5cfbeaf1a1de78ed861bb92.
2021-03-30Cycles: Do not allocate tile buffers on all devices when peer memory is ↵Patrick Mours
active and denoising is not Separate tile buffers on all devices only need to exist when denoising is active (so any overlap being rendered simultaneously does not write to the same memory region). When denoising is not active they can be distributed like all other memory when peer memory support is available. Reviewed By: brecht Differential Revision: https://developer.blender.org/D10858
2021-03-30Cycles: disable NanoVDB for AMD OpenCLBrecht Van Lommel
It is causing issue with AMD OpenCL drivers, due to a potential driver bug. Ref T84461
2021-03-27Win32: Allow return from fullscreen to maximizedVincent Blankfield
If window is maximized when toggling fullscreen, go back to maximized when done. Differential Revision: https://developer.blender.org/D10813 Reviewed by Harley Acheson
2021-03-26Fix T86859: Allow covering of Taskbar when Fullscreen from MaximizedVincent Blankfield
When the window is already maximized allow covering Windows Taskbar when toggling fullscreen. Differential Revision: https://developer.blender.org/D10811 Reviewed by Harley Acheson
2021-03-26Cleanup: redundant expressionKévin Dietrich
2021-03-26Fix T86939: Cycles objects bounds not updated when transforming objectsKévin Dietrich
As a rather premature optimization from rBbbe6d4492823, Object bounds were only computed when either the Object or its Geometry were modified. Prior to rB42198e9eb03b, this would work, as the Geometry was tagged as modified if the Object's transform was also modified. Since this tagging is not done anymore due to side effects, and since at the time bounds are computed Objects were already processed and tag as unmodified, the check on the modified status was always false. For now remove this check, so the bounds are always unconditionally updated. If this ever becomes a performance problem in large scenes with motion blur, we will then try to find a way to nicely optimize it. This would only affect BHV2 as OptiX and Embree handle object bounds themselves.
2021-03-26Cleanup: use code doxy command for Python snippetCampbell Barton
2021-03-26Cleanup: clang-formatCampbell Barton
2021-03-25Geometry Nodes: rename attribute domainsJacques Lucke
This patch renames two domains: * `Polygon` -> `Face` * `Corner` -> `Face Corner` For the change from `polygon` to `face` I did a "deep rename" where I updated all (most?) cases where we refere to the attribute domain in code as well. The change from `corner` to `face corner` is only a ui change. I did not see a real need to update all code the code for that. It does not seem to improve the code, more on the contrary. Ref T86818. Differential Revision: https://developer.blender.org/D10803
2021-03-24Alembic procedural: deduplicate cached data accross framesKévin Dietrich
Currently the procedural will add an entry to the cache for every frame even if the data only changes seldomly. This means that in some cases we will have duplicate data accross frames. The cached data is now stored separately from the time information, and an index is used to retrieve it based on time. This decoupling allows for multiple frames to point to the same data. To check if two arrays are the same, we compute their keys using the Alembic library's routines (which is based on murmur3), and tell the cache to reuse the last data if the keys match. This can drastically reduce memory usage at the cost of more processing time, although processing time is only increased if the topology may change.
2021-03-24Cleanup: clang-tidy errors.Jeroen Bakker
2021-03-24Cleanup: unused variableKévin Dietrich
2021-03-24Fix T86601: Cycles accumulates displacement when transforming an ObjectKévin Dietrich
In order to update the BVH when only the transformations are changing, we would tag the Object's Geometry as modified. However, when displacement is used, and the vertices were not themselves modified, this would cause us to redo the displacement on already displaced vertices. To fix this, use a specific update flag for detecting and notifying that transformations were modified. Regression caused by rBbbe6d44928235cd4a5cfbeaf1a1de78ed861bb92.
2021-03-24Cleanup: remove stdio.h header from MEM_guardedalloc.hCampbell Barton
This was included for `FILE *` which isn't used in the header. Ref D10799
2021-03-23Fix T86567: Cycles crashes when playing back animated volumesKévin Dietrich
The crash is caused by an out of bound access in the kernel due to missing data update when a Volume's voxel data changes. Although the previous bounding mesh is cleared, the Volume Node was not tagged as modified, and therefore never rebuilt. To fix this, tag the Geometries (not just Volumes, to be more robust) as modified in Geometry.clear(). Regression caused by rBbbe6d44928235cd4a5cfbeaf1a1de78ed861bb92.
2021-03-23Nodes: Add Refract and Faceforward functions to Vector Maths nodesCharlie Jolly
Cycles, Eevee, OSL, Geo, Attribute Based on outdated refract patch D6619 by @cubic_sloth `refract` and `faceforward` are standard functions in GLSL, OSL and Godot shader languages. Adding these functions provides Blender shader artists access to these standard functions. Reviewed By: brecht Differential Revision: https://developer.blender.org/D10622