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-01-06Fix Cycles updating display unnecessarily when stopping 3D viewportBrecht Van Lommel
Debug code accidentally committed in 466b50d. This was found while investigating issues with D13385.
2022-01-06Cleanup: spelling in commentsCampbell Barton
2022-01-06Cleanup: remove declaration for removed functionCampbell Barton
2022-01-05Fix/workaround macOS Rosetta crash running Cycles AVX testsBrecht Van Lommel
Just disable these tests on macOS for now as fixing seems hard, and we want to be able to cross-compile and test x86_64 on Arm machines on the buildbot.
2022-01-05Fix Cycles AVX test failure with x86_64 build running on ArmBrecht Van Lommel
Don't create const avx vectors before validating if CPU supports AVX.
2022-01-05Fix T94563: Cycles standalone build error on with strict float/double castingBrecht Van Lommel
Thanks to John David for finding this.
2022-01-05Fix Cycles using Cancel semantic on final result writeSergey Sharybin
Seems like a copy-paste bug from another place.
2022-01-05Cleanup: rename mesh -> geom in some places that now handle multiple geom typesBrecht Van Lommel
2022-01-05Cleanup: compiler warnings about unused codeBrecht Van Lommel
2022-01-05Cycles: Add OptiX temporal denoising supportPatrick Mours
Enables the `bpy.ops.cycles.denoise_animation()` operator again and modifies it to support temporal denoising with OptiX. This requires renders that were done with both the "Vector" and "Denoising Data" passes. Differential Revision: https://developer.blender.org/D11442
2022-01-05Cleanup: fix typos in source code in intern/Brecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D13532
2022-01-05Cycles: support rendering PointCloud motion blur from attributeKévin Dietrich
This adds support to render PointCloud motion blur from a standard "velocity" attribute. This implementation is similar to that of the Mesh geometry, and perhaps some code could be deduplicated through a more generic API. `mesh_need_motion_attribute` was renamed `object_need_motion_attribute` as it does not really require a mesh and moved to `util.h` so that it can be shared. This fixes T94622. Reviewed By: brecht Maniphest Tasks: T94622 Differential Revision: https://developer.blender.org/D13719
2022-01-04Fix: Build issue with MSVCRay Molenkamp
std::min was used without including the algorithm header. Seems to be implicitly included by something in newer MSVC versions and GCC, however vs16.4 needed a little help here.
2022-01-03Cleanup: Silence "integer conversion resulted in a change of sign" warning ↵Patrick Mours
in Cycles kernel code Occured because "PATH_RAY_SHADOW_CATCHER_BACKGROUND" is expressed as an unsigned integer, because too large for a signed integer, but the "PathRayFlag" enum type defaulted to a signed integer still.
2022-01-03Cleanup: Unused variable in Cycles codeSergey Sharybin
2022-01-03UDIM: Support virtual filenamesJesse Yurkovich
This implements the design detailed in T92696 to support virtual filenames for UDIM textures. Currently, the following 2 substitution tokens are supported: | Token | Meaning | | ----- | ---- | | <UDIM> | 1001 + u-tile + v-tile * 10 | | <UVTILE> | Equivalent to u<u-tile + 1>_v<v-tile + 1> | Example for u-tile of 3 and v-tile of 1: filename.<UDIM>_ver0023.png --> filename.1014_ver0023.png filename.<UVTILE>_ver0023.png --> filename.u4_v2_ver0023.png For image loading, the existing workflow is unchanged. A user can select one or more image files, belonging to one or more UDIM tile sets, and have Blender load them all as it does today. Now the <UVTILE> format is "guessed" just as the <UDIM> format was guessed before. If guessing fails, the user can simply go into the Image Editor and type the proper substitution in the filename. Once typing is complete, Blender will reload the files and correctly fill the tiles. This workflow is new as attempting to fix the guessing in current versions did not really work, and the user was often stuck with a confusing situation. For image saving, the existing workflow is changed slightly. Currently, when saving, a user has to be sure to type the filename of the first tile (e.g. filename.1001.png) to save the entire UDIM set. The number could differ if they start at a different tile etc. This is confusing. Now, the user should type a filename containing the appropriate substitution token. By default Blender will fill in a default name using the <UDIM> token but the user is free to save out images using <UVTILE> if they wish. Differential Revision: https://developer.blender.org/D13057
2021-12-28Fix compile error when building without OpenSubDivKévin Dietrich
Stubs were missing for functions added to opensubdiv_evaluator_capi.h
2021-12-27OpenSubDiv: add support for an OpenGL evaluatorKévin Dietrich
This evaluator is used in order to evaluate subdivision at render time, allowing for faster renders of meshes with a subdivision surface modifier placed at the last position in the modifier list. When evaluating the subsurf modifier, we detect whether we can delegate evaluation to the draw code. If so, the subdivision is first evaluated on the GPU using our own custom evaluator (only the coarse data needs to be initially sent to the GPU), then, buffers for the final `MeshBufferCache` are filled on the GPU using a set of compute shaders. However, some buffers are still filled on the CPU side, if doing so on the GPU is impractical (e.g. the line adjacency buffer used for x-ray, whose logic is hardly GPU compatible). This is done at the mesh buffer extraction level so that the result can be readily used in the various OpenGL engines, without having to write custom geometry or tesselation shaders. We use our own subdivision evaluation shaders, instead of OpenSubDiv's vanilla one, in order to control the data layout, and interpolation. For example, we store vertex colors as compressed 16-bit integers, while OpenSubDiv's default evaluator only work for float types. In order to still access the modified geometry on the CPU side, for use in modifiers or transform operators, a dedicated wrapper type is added `MESH_WRAPPER_TYPE_SUBD`. Subdivision will be lazily evaluated via `BKE_object_get_evaluated_mesh` which will create such a wrapper if possible. If the final subdivision surface is not needed on the CPU side, `BKE_object_get_evaluated_mesh_no_subsurf` should be used. Enabling or disabling GPU subdivision can be done through the user preferences (under Viewport -> Subdivision). See patch description for benchmarks. Reviewed By: campbellbarton, jbakker, fclem, brecht, #eevee_viewport Differential Revision: https://developer.blender.org/D12406
2021-12-27Allocator: add missing includeJacques Lucke
The placement-new operator requires `#include <new>`. It is used in `MEM_new`.
2021-12-25Cleanup: use new c++ guarded allocator APIAaron Carlisle
API added in rBa3ad5abf2fe85d623f9e78fefc34e27bdc14632e
2021-12-20Fix T94251: Cycles wrong pointcloud normal for instanced objectsBrecht Van Lommel
Refactor code a bit also so we need to do fewer matrix transforms for shader data setup of points and curves.
2021-12-20Fix Cycles OptiX crash with 3D curves after point cloud changesBrecht Van Lommel
Includes refactoring to reduce the number of bits taken by primitive types, so they more easily fit in the OptiX limit.
2021-12-17Allocator: simplify using guarded allocator in C++ codeJacques Lucke
Using the `MEM_*` API from C++ code was a bit annoying: * When converting C to C++ code, one often has to add a type cast on returned `void *`. That leads to having the same type name three times in the same line. This patch reduces the amount to two and removes the `sizeof(...)` from the line. * The existing alternative of using `OBJECT_GUARDED_NEW` looks a out of place compared to other allocation methods. Sometimes `MEM_CXX_CLASS_ALLOC_FUNCS` can be used when structs are defined in C++ code. It doesn't look great but it's definitely better. The downside is that it makes the name of the allocation less useful. That's because the same name is used for all allocations of a type, independend of where it is allocated. This patch introduces three new functions: `MEM_new`, `MEM_cnew` and `MEM_delete`. These cover the majority of use cases (array allocation is not covered). The `OBJECT_GUARDED_*` macros are removed because they are not needed anymore. Differential Revision: https://developer.blender.org/D13502
2021-12-17Fix error in Cycles geometry update tagging after pointcloud additionBrecht Van Lommel
Thanks to Christophe Hery for spotting this.
2021-12-17Fix T94142, T94182: Cycles metal broken after pointcloud changesMichael
Missing ccl_private form an older patch. Differential Revision: https://developer.blender.org/D13612
2021-12-17Cleanup: spelling in commentsCampbell Barton
2021-12-16Cycles: pointcloud renderingBrecht Van Lommel
This add support for rendering of the point cloud object in Blender, as a native geometry type in Cycles that is more memory and time efficient than instancing sphere meshes. This can be useful for rendering sand, water splashes, particles, motion graphics, etc. Points are currently always rendered as spheres, with backface culling. More shapes are likely to be added later, but this is the most important one and can be customized with shaders. For CPU rendering the Embree primitive is used, for GPU there is our own intersection code. Motion blur is suppored. Volumes inside points are not currently supported. Implemented with help from: * Kévin Dietrich: Alembic procedural integration * Patrick Mourse: OptiX integration * Josh Whelchel: update for cycles-x changes Ref T92573 Differential Revision: https://developer.blender.org/D9887
2021-12-16Revert "Cycles-X: Add hysteresis to resolution divider algorithm"Brecht Van Lommel
This reverts commit d8b42751625c915113b64f5a2d9c72f19f009fee. It causes reduced viewport render resolution. Revert for now until I have time to look into this more closely.
2021-12-15Fix T93995: Cycles camera motion blur not working in right stereo viewBrecht Van Lommel
Thanks to Michael (michael64) for identifying the solution. Ref D13567
2021-12-14Fix Cycles compilation with CUDA / Optix after recent Map Range additions.Thomas Dinges
2021-12-14Nodes: Add vector support to Map Range nodeCharlie Jolly
This replaces lost functionality from the old GN Attribute Map Range node. This also adds vector support to the shader version of the node. Notes: This breaks forward compatibility as this node now uses data storage. Reviewed By: HooglyBoogly, brecht Differential Revision: https://developer.blender.org/D12760
2021-12-14Cleanup: reorganize doxygen modulesCampbell Barton
- Nest compositor pages under the compositor module - Nest GUI, DNA/RNA & externformats modules under Blender. - Remove modules from intern which no longer exist. - Add intern modules (atomic, eigen, glew-mx, libc_compat, locale, numaapi, rigidbody, sky, utfconv). - Use 'intern_' prefix for intern modules since some of the modules use generic terms such as locale & atomic.
2021-12-14Cleanup: resolve parameter mis-matches in doc-stringsCampbell Barton
Renamed or removed parameters which no longer exist.
2021-12-14Cleanup: correct unbalanced doxygen groupsCampbell Barton
Also add groups in some files.
2021-12-14Cleanup: clang-formatCampbell Barton
2021-12-14Fix T94022: Both options GPU/CPU checked under preferences cause viewport ↵Michael Jones
render crash. (ARM/Metal) This fixes crash T94022 when selecting live viewport render with both GPU & CPU devices selected. It is caused by incorrect `KernelBVHLayout` assignment. Similar to `BVH_LAYOUT_MULTI_OPTIX` for Optix, this patch adds a `BVH_LAYOUT_MULTI_METAL` to correctly redirect to the correct Metal BVH layout type. Reviewed By: brecht Differential Revision: https://developer.blender.org/D13561
2021-12-13Cycles: add text explaining minimum requirements for Metal when no device foundBrecht Van Lommel
2021-12-13Cycles: enable Metal GPU renderingBrecht Van Lommel
This adds the remaining bits to enable Metal on macOS. There are still performance optimizations and other improvements planned, but it should now be ready for early testing. This is currently only enabled on in Arm builds for M1 GPUs. It is not yet working on AMD or Intel GPUs. Ref T92212 Differential Revision: https://developer.blender.org/D13503
2021-12-13Cleanup: clang-formatCampbell Barton
2021-12-11Cleanup: const, autoreleasepool, remove unneeded cast.Ankit Meel
Early return in some places also. De-duplicate getSystemDir and getUserDir also. Reviewed By: #platform_macos, brecht Differential Revision: https://developer.blender.org/D13211
2021-12-11Sky: Use Gauss-Laguerre quadrature for optical depth calculationLukas Stockner
This allows to use fewer evaluations (30 msec down to 23 for me) while giving more accurate results (3x-10x less relative absolute error) compared to classic ray marching. Not a massive difference, but meh, it's better. For Cycles the speedup doesn't really matter much, but I also have a patch for Eevee support. I've also tried Gauss-Legendre and Gauss-Lobatto - the latter was always worse, while the former was slightly better at 2deg elevation but notably worse on 15deg. Unfortunately the same approach can't be used for the integration along the primary ray, since there we also need the accumulated transmission so far at every integration point, not just the total result. Differential Revision: https://developer.blender.org/D13521
2021-12-10Added support for large texture to OCIO.Jeroen Bakker
2021-12-10Fix T92036: `Magic Texture` in Volumetric World Shaders render differently ↵William Leeson
with the CPU and GPU When rendering volume surfaces in unbounded worlds the volume stepping can produce large values. If used with a magic texture node the values can results in a Inf float which when used in a sin or cos produces a NaN. To fix this the input values are mapped into the periodic range of the sin and cos functions (-2*PI 2*PI) this stops the possibility of a Inf occurring and thus the NaN. It also improves the accuracy and smoothness of the result due to loss of precision when large values are summed with smaller ones effectively removing the parts of the smaller number (i.e. those in the -2PI to 2PI range) that result in variation of the output of sin and cos. Reviewed By: brecht Maniphest Tasks: T92036 Differential Revision: https://developer.blender.org/D12821
2021-12-09Fix Cycles wrong adaptive sampling render when using sample offsetAndrii
Sample offset was not accounted for in the adaptive sampling code and caused issues, like immediately applied adaptive filtering, with non-zero values. Differential Revision: https://developer.blender.org/D13510
2021-12-09Cycles: support merging images rendered with adaptive samplingAndrii
This patch adds support for merging images rendered with adaptive sampling to the merge operator (which is currently only exposed in the Python API). To do this an sample count buffer is created for each render layer from the sample count pass if it exists, or from the metadata otherwise. This is then used for averaging passes. Differential Revision: https://developer.blender.org/D13457
2021-12-09Cleanup: use more modern C++ in Cycles merge operatorAndrii
Use structured binding and for-each loop, remove reduntant type casts, use find_if instead of loop. Differential Revision: https://developer.blender.org/D13456
2021-12-09Fix T93498: Cycles fast GI add method affected by bounces settingsBrecht Van Lommel
This is only for the replace method.
2021-12-09Fix T93890: Cycles error with shadow catcher + OptiX denoise without passesBrecht Van Lommel
2021-12-09Fix T93874: Cycles crash with fast GI approximationBrecht Van Lommel
2021-12-09Cleanup: spelling in commentsCampbell Barton