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
2022-01-23Fix Cycles crash collecting render statsKévin Dietrich
2022-01-21Cycles: add pointcloud implementation for Metal RTBrecht Van Lommel
This is not currently working, with an internal compiler error. However we are currently using BVH2 instead of Metal RT. So this has no effect for users, it's being committed to avoid the code getting outdated. Ref T92573, T92212 Differential Revision: https://developer.blender.org/D13632
2022-01-21Fix T93711: Cycles diffuse/glossy baking does not write alphaBrecht Van Lommel
With the change to use render passes internally the alpha channel got lost. Add support for these render passes to output an alpha channel for baking.
2022-01-20Fix T94457: random result using sky texture in light objectBrecht Van Lommel
Still not well defined, but should not longer use uninitialized values that gave different results between CPU/GPU and subsequent renders.
2022-01-20Fix T94698: artifacts in light passes with mixed volumes and surfacesBrecht Van Lommel
2022-01-20Fix T94712: Cycles missing colorspace transform on grayscale imagesBrecht Van Lommel
2022-01-20Fix T94582: Cycles mapping shader node incorrectly skipped in Normal modeBrecht Van Lommel
Even if no rotation or scale is specified, we must still always normalize the output.
2022-01-20Cleanup: Remove OpenCL workaround in volume_sample_channel().Thomas Dinges
2022-01-20Cycles: Fix bvh2 gen on Apple Silicon and use it to speed up rendersMichael Jones
This patch fixes a correctness issue discovered in the `int4 select(...)` function on Apple Silicon machines, which causes bad bvh2 builds. Although the generated bvh2s give correct renders, the resulting runtime performance is terrible. This fix allows us to switch over to bvh2 on Apple Silicon giving a significant performance uplift for many of the standard benchmarking assets. It also fixes some unit test failures stemming from the use of MetalRT, and trivially enables the new pointcloud primitive. Ref T92212 Reviewed By: brecht Maniphest Tasks: T92212 Differential Revision: https://developer.blender.org/D13877
2022-01-20Cleanup: Remove unused python helper function.Thomas Dinges
Branched Path has been removed with the Cycles X merge.
2022-01-20Subdivision: add support for vertex creasingKévin Dietrich
This adds vertex creasing support for OpenSubDiv for modeling, rendering, Alembic and USD I/O. For modeling, vertex creasing follows the edge creasing implementation with an operator accessible through the Vertex menu in Edit Mode, and some parameter in the properties panel. The option in the Subsurf and Multires to use edge creasing also affects vertex creasing. The vertex crease data is stored as a CustomData layer, unlike edge creases which for now are stored in `MEdge`, but will in the future also be moved to a `CustomData` layer. See comments for details on the difference in behavior for the `CD_CREASE` layer between egdes and vertices. For Cycles this adds sockets on the Mesh node to hold data about which vertices are creased (one socket for the indices, one for the weigths). Viewport rendering of vertex creasing reuses the same color scheme as for edges and creased vertices are drawn bigger than uncreased vertices. For Alembic and USD, vertex crease support follows the edge crease implementation, they are always read, but only exported if a `Subsurf` modifier is present on the Mesh. Reviewed By: brecht, fclem, sergey, sybren, campbellbarton Differential Revision: https://developer.blender.org/D10145
2022-01-20Cleanup: clang-formatCampbell Barton
2022-01-19Cycles: Fix T94736: Crash when modifying strength of world environment textureMichael Jones
This patch fixes crash T94736 on Metal in which the launch_params were not being updated to reflect destruction of MetalMem objects. Reviewed By: brecht Differential Revision: https://developer.blender.org/D13875
2022-01-19Fix T95042: Rendering high-res image in Cycles crashesSergey Sharybin
Integer overflow when the final frame is handled by the Blender's output driver. Thanks Jesse and Thomas for investigation!
2022-01-19Cleanup: Strict compiler warning in CyclesSergey Sharybin
The ustring is not a trivially copyable object from the C++ standard point of view, so using memcpy on it is strictly wrong. In practice, however, this is OK since it is just a thin wrapper around char*. For now use explicit cast to void* same as it was done in other places of ccl::array implementation. But also localize the place where memory copy happens to make it easier to support proper non-trivial C++ objects in the future.
2022-01-17Baking: new method to generate margin, based on adjacent facesMartijn Versteegh
This significantly reduces discontinuities on UV seams, by giving a better match of the texture filtered colors on both sides of the seam. It works by using pixels from adjacent faces across the UV seam. This new option is called "Adjacent Faces" and is the default. The old option is called "Extend", and extends border pixels outwards. Differential Revision: https://developer.blender.org/D13303
2022-01-17Cleanup: refactor BVH2 in preparation of self intersection skipBrecht Van Lommel
Move some logic out of triangle intersection functions and into BVH traversal, so we can share logic between primitives. Ref D12954
2022-01-17Alembic: add support for reading override layersKévin Dietrich
Override layers are a standard feature of Alembic, where archives can override data from other archives, provided that the hierarchies match. This is useful for modifying a UV map, updating an animation, or even creating some sort of LOD system where low resolution meshes are swapped by high resolution versions. It is possible to add UV maps and vertex colors using this system, however, they will only appear in the spreadsheet editor when viewing evaluated data, as the UV map and Vertex color UI only show data present on the original mesh. Implementation wise, this adds a `CacheFileLayer` data structure to the `CacheFile` DNA, as well as some operators and UI to present and manage the layers. For both the Alembic importer and the Cycles procedural, the main change is creating an archive from a list of filepaths, instead of a single one. After importing the base file through the regular import operator, layers can be added to or removed from the `CacheFile` via the UI list under the `Override Layers` panel located in the Mesh Sequence Cache modifier. Layers can also be moved around or hidden. See differential page for tests files and demos. Reviewed by: brecht, sybren Differential Revision: https://developer.blender.org/D13603
2022-01-14Cleanup: spelling in comments, C++ style comments for disabled codeCampbell Barton
Also ensure space at end of comment.
2022-01-13Fix T94737: Cycles wrong normal map normal with OSLBrecht Van Lommel
Ensure valid reflection was moved elsewhere, should not be done in the node anymore.
2022-01-13Fix T94050, T94570, T94527: Cycles Bevel and AO nodes not working with MetalBrecht Van Lommel
Workaround what may be a compiler bug, solution found by Michael Jones.
2022-01-13Fix Cycles CPU + GPU render not using CPU after recent changesBrecht Van Lommel
In some places the task scheduler was not initialized in time.
2022-01-13Fix T94758: wrong denoising albedo with BSSRDF retro reflectionBrecht Van Lommel
2022-01-13Build: remove usage of link_directoriesBrecht Van Lommel
We are now always using absolute paths for libraries, as recommended by the CMake docs. Followup to D9177.
2022-01-10Fix T93727: Tiled render error in Cycles after changing temp directorySergey Sharybin
Consider temporary directory to be variant part of session configuration which gets communicated to the tile manager on render reset. This allows to be able to render with one temp directory, change the directory, render again and have proper render result even with enabled persistent data. For the ease of access to the temp directory expose it via the render engine API (engine.temp_directory). Differential Revision: https://developer.blender.org/D13790
2022-01-10Fix second render failure with Cycles persistent dataSergey Sharybin
The issue was caused by the recent changes in the way how the render result is drawn: the display driver now could hold an OpenGL resources. Those resources are not shared across contexts so whenever OpenGL context is destroyed those resources are to be destroyed as well (and not attempted to be re-used for a next render). Do such destruction and entire driver re-creation since it does simplifies things from API usage point of view without causing measurable slowdown. Steps to reproduce the issue: - Set the render resolution to 2x of Full HD - Enable persistent data - Render (F12) - Render again Observe OpenGL state being corrupted. Easy to see in debug mode where IMM abstraction level reports issues about the buffer size not being the proper size. This was caused by the display driver trying to use VAO from the previous OpenGL context. Differential Revision: https://developer.blender.org/D13789
2022-01-10Cleanup: typos in comments, remove libnumaapi referenceCampbell Barton
2022-01-07Fix wrong shadow terminator geometry offset with deformation motion blurOlivier Maury
Differential Revision: https://developer.blender.org/D13759
2022-01-07Fix wrong shadow terminator geometry offset for instancesOlivier Maury
Must take into account SD_OBJECT_TRANSFORM_APPLIED to determine if the normal was already in world space. Differential Revision: https://developer.blender.org/D13639
2022-01-07Fix T93350: Cycles renders shows black during rendering huge resolutionsBrecht Van Lommel
The root of the issue is caused by Cycles ignoring OpenGL limitation on the maximum resolution of textures: Cycles was allocating texture of the final render resolution. It was exceeding limitation on certain GPUs and driver. The idea is simple: use multiple textures for the display, each of which will fit into OpenGL limitations. There is some code which allows the display driver to know when to start the new tile. Also added some code to allow force graphics interop to be re-created. The latter one ended up not used in the final version of the patch, but it might be helpful for other drivers implementation. The tile size is limited to 8K now as it is the safest size for textures on many GPUs and OpenGL drivers. This is an updated fix with a workaround for freezing with the NVIDIA driver on Linux. Differential Revision: https://developer.blender.org/D13385
2022-01-07Cycles: Fix Metal buildMichael Jones
This patch fixes a couple of new Metal kernel compilation errors: 1) a kernel parameter count overflow, and 2) missing address space qualifiers. Reviewed By: brecht Differential Revision: https://developer.blender.org/D13763
2022-01-07Cycles: Remove usage of libnumaapiSergey Sharybin
No need for it now since all the threading queries and scheduling is done via TBB. Should be no functional changes as all the removed code is supposed to be unused.
2022-01-07Fix T94310: Blender doesn't support with 128 threads well in Win11Jagannadhan Ravi
Query TBB for the maximum allowed concurrency, which is free from a bug in own concurrency detection code. One thing to keep in mind is that now Cycles is limited by the number of threads in the TBB areana from which Session is created. This isn't a problem for Blender since we do not limit arena on Blender side. Could be something to watch out for in other Cycles integrations. Differential Revision: https://developer.blender.org/D13658
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-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-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-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-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-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