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-08-12Fixes T77882: artifacts rendering OpenVDB volumes with multiple grids in CyclesKévin Dietrich
The previous algorithm was not using all of the requested grids to build a mesh around the volume due to limitations regarding the use of a dense buffer to gather information about the volume's topology. This resulted in artefacts during rendering. The mesh generation is now done by merging all of the input grids and using the resulting grid's topology to create the mesh. The generation of the mesh is still done in index space as before, and the vertices are converted to object space by using the merged topology grid indexToWorld transform. To be able to merge the grids together we have to make sure that their transformation matrices and their index spaces match, thus, if they do not match we simply resample the grids. This behaviour should tackle one other limitation of the current algorithm, which is that only one transformation matrix was used to generate the final mesh. If we do not have an OpenVDB grid for the requested volume data, we generate a temporary OpenVDB grid for it. Differential Revision: https://developer.blender.org/D8401
2020-08-05Fix T78869: denoising performance regression on WindowsBrecht Van Lommel
Optimization was disabled in this function to work around a bug in MSVC, use a different solution that does not come with such a big performance regression.
2020-08-04Cleanup: typos & co in UI messages (and some other places).Bastien Montagne
2020-08-04Cycles: Fix nan in decomposed transform for degenerated inputSergey Sharybin
The decomposed transform would have consists of nan values if the input transform had zero scale. Now the decomposition will check for zero scale, and if it is detected then the result will be ensured to be finite. Additionally, rotation value will be copied from previous/next time step to help avoiding obscure interpolation. The latter step can become more comprehensive than the current simple implementation. Differential Revision: https://developer.blender.org/D8450
2020-08-04Cycles: Add finite checks for float4 and transformsSergey Sharybin
Currently unused, preparing for an upcoming development.
2020-07-16Cleanup: missing CMake headers from source listsCampbell Barton
2020-07-10Cycles: optimize camera inside volume testsMilan Jaros
Only run when there are volumes in the scene, and compute in parallel. Ref T56939 Differential Revision: https://developer.blender.org/D8261
2020-07-09EEVEE: Implement the missing Sky textureSzymon Ulatowski
I'm not sure if the Sky was deliberately left out or was just waiting for a better moment, but so many I was disappointed that Sky in EEVEE is completely white. There are already 2 implementations (osl and gpu) so this is the third one. Looking at other cases it seems that we are not supposed to share sources between cycles and the rest? So the new util_sky_model files are just copies of what is already in cycles, except that the data file uses the RGB variant of the Hosek/Wilkie model, because we output RGB anyway (but can be easily changed to XYZ if desired - the results are nearly identical). I am not sure if it is okay to pass 3*9 float values as 3 mat4 uniforms (I wanted to use mat3 but it does not work). Also, should I cache the sky model data between renders if the parameters do not change? Reviewed By: fclem, brecht Differential Revision: https://developer.blender.org/D7108
2020-07-08Fix T78324: Different Sky Texture results between CPU and GPULukas Stockner
The problem here was numerical precision: The code calculates the angle between sun and view direction, and the usual acos(dot(a, b)) approach for that has poor numerical performance for almost parallel angles. As a result, the generally tiny difference between floating point computation between CPU and GPU was enough to make the sun vanish at different radii, causing different results. The new version fixes the difference by making the computation much more robust on both platforms.
2020-07-07Cycles: Add support for native OptiX curve primitivePatrick Mours
This patch adds support for the curve primitive from OptiX to Cycles. It's currently hidden behind a debug option, since there can be some slight rendering differences still (because no backface culling is performed and something seems off with endcaps). The curve primitive was added with the OptiX 7.1 SDK and requires a r450 driver or newer, so this also updates the codebase to be able to build with the new SDK. Reviewed By: brecht Differential Revision: https://developer.blender.org/D8223
2020-07-03Cycles: Use TBB's spin mutexSergey Sharybin
First benefit is reduced boilerplate code. Second benefit is fixed warnings about using deprecated spin lock on macOS when using SDK 10.12 and above. Differential Revision: https://developer.blender.org/D8182
2020-06-30Cycles: bump version to 1.13, matching Blender 2.90 release cycleBrecht Van Lommel
2020-06-30Cleanup: spellingCampbell Barton
2020-06-30Cleanup: clang-formatCampbell Barton
2020-06-24Fix T78047: Fix failing denoiser tests on windowsRay Molenkamp
When we switched to MSVC2019 and C++17 we seemingly managed to trigger a code-gen bug with MSVC in the AVX code-path. This change works around the issue by (hopefully temporary) disabling the optimizer for the fast_exp2f4 function, given it is only used in a single pass of the denoiser and nowhere else, this is luckily not as bad as it could have been. Once the compiler is fixed or a different fix is available we'll have to revisit this. Details and link to the repro posted to MS is available in T78047
2020-06-24Cleanup: make it possible to include util_tbb.h in any orderBrecht Van Lommel
2020-06-24Cycles: add Intel OpenImageDenoise support for viewport denoisingBrecht Van Lommel
Compared to Optix denoise, this is usually slower since there is no GPU acceleration. Some optimizations may still be possible, in avoid copies to the GPU and/or denoising less often. The main thing is that this adds viewport denoising support for computers without an NVIDIA GPU (as long as the CPU supports SSE 4.1, which is nearly all of them). Ref T76259
2020-06-24Fix build error on Windows after recent changesBrecht Van Lommel
2020-06-24Cleanup: move TBB includes into own headerBrecht Van Lommel
2020-06-22Cycles: remove SIMD BVH optimizations, to be replaced by EmbreeBrecht Van Lommel
Ref T73778 Depends on D8011 Maniphest Tasks: T73778 Differential Revision: https://developer.blender.org/D8012
2020-06-22Cycles: use TBB for task pools and task schedulerBrecht Van Lommel
No significant performance improvement is expected, but it means we have a single thread pool throughout Blender. And it should make adding more parallellization in the future easier. After previous refactoring commits this is basically a drop-in replacement. One difference is that the task pool had a mechanism for scheduling tasks to the front of the queue to minimize memory usage. TBB has a smarter algorithm to balance depth-first and breadth-first scheduling of tasks and we assume that removes the need to manually provide hints to the scheduler. Fixes T77533
2020-06-22Cleanup: remove task pool stop() and finished()Brecht Van Lommel
2020-06-22Cleanup: use lambdas instead of functors for task pools, remove threadidBrecht Van Lommel
2020-06-22Cycles: make TBB a required library dependency, and use in a few placesBrecht Van Lommel
Now that the rest of Blender also relies on TBB, no point in maintaining custom code for paraller_for and thread local storage.
2020-06-22Cleanup: use move semantics for task pool functionsBrecht Van Lommel
2020-06-17Cycles: Add new Sky Texture method including direct sunlightLukas Stockner
This commit adds a new model to the Sky Texture node, which is based on a method by Nishita et al. and works by basically simulating volumetric scattering in the atmosphere. By making some approximations (such as only considering single scattering), we get a fairly simple and fast simulation code that takes into account Rayleigh and Mie scattering as well as Ozone absorption. This code is used to precompute a 512x128 texture which is then looked up during render time, and is fast enough to allow real-time tweaking in the viewport. Due to the nature of the simulation, it exposes several parameters that allow for lots of flexibility in choosing the look and matching real-world conditions (such as Air/Dust/Ozone density and altitude). Additionally, the same volumetric approach can be used to compute absorption of the direct sunlight, so the model also supports adding direct sunlight. This makes it significantly easier to set up Sun+Sky illumination where the direction, intensity and color of the sun actually matches the sky. In order to support properly sampling the direct sun component, the commit also adds logic for sampling a specific area to the kernel light sampling code. This is combined with portal and background map sampling using MIS. This sampling logic works for the common case of having one Sky texture going into the Background shader, but if a custom input to the Vector node is used or if there are multiple Sky textures, it falls back to using only background map sampling (while automatically setting the resolution to 4096x2048 if auto resolution is used). More infos and preview can be found here: https://docs.google.com/document/d/1gQta0ygFWXTrl5Pmvl_nZRgUw0mWg0FJeRuNKS36m08/view Underlying model, implementation and documentation by Marco (@nacioss). Improvements, cleanup and sun sampling by @lukasstockner. Differential Revision: https://developer.blender.org/D7896
2020-06-02Merge branch 'blender-v2.83-release'Brecht Van Lommel
2020-06-02Fix build error in Cycles standalone without guarded allocatorBrecht Van Lommel
Solution suggested by howetuft. Differential Revision: https://developer.blender.org/D7892
2020-05-05Cleanup: clang-formatCampbell Barton
Minor difference caused by clang-format v10.0
2020-04-30Fix T75895: Unable to Compile Cycles on NAVI/LinuxJeroen Bakker
This patch will add some compiler hints to break unrolling in the nestled for loops of the voronoi node. Reviewed by: Brecht van Lommel Differential Revision: https://developer.blender.org/D7574
2020-04-24Cleanup: remove unused arg, clang-formatCampbell Barton
2020-04-23Cleanup: clang-format, unused warningCampbell Barton
2020-04-02Fix Cycles AVX unit test still failing to build with old GCCBrecht Van Lommel
2020-04-02Fix more build errors/warnings after recent AVX changesBrecht Van Lommel
Thanks to Sergey and Ray for the help identifying the problem.
2020-04-02Fix build error on Windows/Linux after recent AVX changesBrecht Van Lommel
2020-04-01Cycles: AVX implantation of Perlin noise.OmarSquircleArt
This patch adds an AVX implementation of Perlin noise in Cycles. An avxi type was also added as a utility based on the respective type in Intel Embree. Only 3D and 4D noise were implemented, there is no benefit for utilizing AVX in 1D and 2D noise. The SSE trilinear interpolation function was used in the AVX implementation because there is no benefit from using AVX in interpolating the last three dimensions. Differential Revision: https://developer.blender.org/D6680
2020-03-26Cycles: Restore cycles_cubin_cc to working orderRay Molenkamp
Reviewed by: brecht pmoursnv Differential Revision: https://developer.blender.org/D7136
2020-03-25Cycles: limit number of processes compiling OpenCL kernel based on memoryBrecht Van Lommel
The numbers here can probably be tweaked to be better, but it's hard to predict and this should at least avoid excessive memory swapping. Fixes T57064.
2020-03-20Fix T68370, T74973: Cycles cryptomatte not working when other passes are enabledBrecht Van Lommel
Solution found by Blazej Floch.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-18Cycles: support for different 3D transform per volume gridBrecht Van Lommel
This is not yet fully supported by automatic volume bounds but works fine in most cases that will have mostly matching bounds. Ref T73201
2020-03-11Cleanup: remove foreach include from header, conflicts with OpenVDBBrecht Van Lommel
2020-03-11Cleanup: stop encoding image data type in slot indexBrecht Van Lommel
This is legacy code from when we had a fixed number of textures.
2020-03-09Cleanup: avoid (harmless) race condition reported by HelgrindJohan Walles
Differential Revision: https://developer.blender.org/D7058
2020-03-06Cleanup: tweak Cycles #includes in preparation for clang-format sortingBrecht Van Lommel
2020-03-05Adaptive Sampling for Cycles.Stefan Werner
This feature takes some inspiration from "RenderMan: An Advanced Path Tracing Architecture for Movie Rendering" and "A Hierarchical Automatic Stopping Condition for Monte Carlo Global Illumination" The basic principle is as follows: While samples are being added to a pixel, the adaptive sampler writes half of the samples to a separate buffer. This gives it two separate estimates of the same pixel, and by comparing their difference it estimates convergence. Once convergence drops below a given threshold, the pixel is considered done. When a pixel has not converged yet and needs more samples than the minimum, its immediate neighbors are also set to take more samples. This is done in order to more reliably detect sharp features such as caustics. A 3x3 box filter that is run periodically over the tile buffer is used for that purpose. After a tile has finished rendering, the values of all passes are scaled as if they were rendered with the full number of samples. This way, any code operating on these buffers, for example the denoiser, does not need to be changed for per-pixel sample counts. Reviewed By: brecht, #cycles Differential Revision: https://developer.blender.org/D4686
2020-02-18Cycles: Enabled quaternion motion blur with Embree.Stefan Werner
Bringing Embree's motion blur closer to Cycles' native blur. This requries Embree 3.8.0 or newer. Differential Revision: https://developer.blender.org/D6575
2020-02-17Fix OpenCL issue after recent code cleanupBrecht Van Lommel
Thanks Patrick Mours for finding it.
2020-02-15Cleanup: work around clang-format differences between versionsBrecht Van Lommel
Ref T73747
2020-01-31Cycles: bump version to 1.12, matching Blender 2.83 release cycleBrecht Van Lommel