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
2020-06-24Cleanup: compiler warningsBrecht Van Lommel
2020-06-24Fluid: Improved OpenVDB support for fluid cachesSebastián Barschkis
This commit makes uses of the new OpenVDB IO in Mantaflow (introduced in 781f783a66ac). From now on, fluid cache files in OpenVDB format will contain a list of grids per frame (before: one .vdb file per grid per frame). Besides regular grids, particle systems are also stored using OpenVDBs PointGrid data structures. All older cache formats will remain fully functional: - Uni caches (.uni) files are still available from the UI and can be used as before - Raw caches (.raw) are no longer available from the UI, but loading them is still possible - Old OpenVDB caches (one .vdb per grid) can no longer be baked either, but loading them is still possible. It is also no longer possible to choose file formats for 'Noise' and 'Particles'. Instead there are now options to set the file format for 'Volumetric' and for 'Mesh' data. Known issues (planned to be resolved soon): - OpenVDB files are currently not taking into consideration the clipping value (FluidDomainSettings). Empty cells are therefore being written too. Depending on the scene, this can make file sizes unnecessarily large. - Domains are not being exported at their world position. Instead they are always clipped to the origin.
2020-06-24Cleanup: fix typo in denoiser menuBrecht Van Lommel
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-24Cycles: add denoising settings to the render propertiesBrecht Van Lommel
Enabling render and viewport denoising is now both done from the render properties. View layers still can individually be enabled/disabled for denoising and have their own denoising parameters. Note that the denoising engine also affects how denoising data passes are output even if no denoising happens on the render itself, to make the passes compatible with the engine. This includes internal refactoring for how denoising parameters are passed along, trying to avoid code duplication and unclear naming. 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-24MEM_guardedalloc: allow freeing const arrays with MEM_SAFE_FREECampbell Barton
'const' arrays couldn't use this macro with GNUC.
2020-06-24UI: Cycles: Use Title CaseAaron Carlisle
2020-06-23Preferences: New experimental settings for particle system and hairJacques Lucke
This replaces the cmake options `WITH_NEW_OBJECT_TYPES` and `WITH_NEW_SIMULATION_TYPE` with two experimental userpref settings: * `use_new_particle_system`: Enables the point cloud type and the simulation editor. * `use_new_hair_type`: Only displays the add-operator in the add menu for now. Note, in the current state you can't do anything productive with the new particle system or the new hair type. Features will be added step by step in the upcoming weeks and months. Reviewers: brecht Differential Revision: https://developer.blender.org/D8096
2020-06-22Fix random crash in Cycles smoke volume loadingBrecht Van Lommel
Don't access evaluated mesh data after freeing Blender depsgraph. Potentially related to T77954.
2020-06-22Cycles: enable Embree by default for CPU renderingBrecht Van Lommel
For GPU debugging purposes, it is still possible to render with the same BVH2 on the CPU using the Debug panel in the render properties. Note that building Blender without Embree will now lead to significantly reduced performance in CPU rendering, and a few of the Cycles regression tests will fail due to small pixel differences. Ref T73778 Depends on D8014 Maniphest Tasks: T73778 Differential Revision: https://developer.blender.org/D8015
2020-06-22Cycles: internal refactoring to make thick/ribbon curve separate primitivesBrecht Van Lommel
Also removing the curve system manager which only stored a few curve intersection settings. These are all changes towards making shape and subdivision settings per-object instead of per-scene, but there is more work to do here. Ref T73778 Depends on D8013 Maniphest Tasks: T73778 Differential Revision: https://developer.blender.org/D8014
2020-06-22Cycles: port curve-ray intersection from Embree for use in Cycles GPUBrecht Van Lommel
This keeps render results compatible for combined CPU + GPU rendering. Peformance and quality primitives is quite different than before. There are now two options: * Rounded Ribbon: render hair as flat ribbon with (fake) rounded normals, for fast rendering. Hair curves are subdivided with a fixed number of user specified subdivisions. This gives relatively good results, especially when used with the Principled Hair BSDF and hair viewed from a typical distance. There are artifacts when viewed closed up, though this was also the case with all previous primitives (but different ones). * 3D Curve: render hair as 3D curve, for accurate results when viewing hair close up. This automatically subdivides the curve until it is smooth. This gives higher quality than any of the previous primitives, but does come at a performance cost and is somewhat slower than our previous Thick curves. The main problem here is performance. For CPU and OpenCL rendering performance seems usually quite close or better for similar quality results. However for CUDA and Optix, performance of 3D curve intersection is problematic, with e.g. 1.45x longer render time in Koro (though there is no equivalent quality and rounded ribbons seem fine for that scene). Any help or ideas to optimize this are welcome. Ref T73778 Depends on D8012 Maniphest Tasks: T73778 Differential Revision: https://developer.blender.org/D8013
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: remove __UV__ and __INSTANCING__ as kernel optionsBrecht Van Lommel
The kernel did not work correctly when these were disabled anyway. The optimized BVH traversal for the no instances case was also only used on the CPU, so no longer makes sense to keep. Ref T73778 Depends on D8010 Maniphest Tasks: T73778 Differential Revision: https://developer.blender.org/D8011
2020-06-22Cycles: always perform backface culling for curve, remove optionBrecht Van Lommel
The hair BSDFs are already designed to assume this, and disabling backface culling would break them in some cases. Ref T73778 Depends on D8009 Maniphest Tasks: T73778 Differential Revision: https://developer.blender.org/D8010
2020-06-22Cycles: remove support for rendering hair as triangle and linesBrecht Van Lommel
Triangles were very memory intensive. The only reason they were not removed yet is that they gave more accurate results, but there will be an accurate 3D curve primitive added for this. Line rendering was always poor quality since the ends do not match up. To keep CPU and GPU compatibility we just remove them entirely. They could be brought back if an Embree compatible implementation is added, but it's not clear to me that there is a use case for these that we'd consider important. Ref T73778 Reviewers: #cycles Subscribers:
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: minor refactoring around DeviceTaskBrecht Van Lommel
2020-06-22Cleanup: use move semantics for task pool functionsBrecht Van Lommel
2020-06-19Cleanup: SpellingHans Goudey
2020-06-19Cycles: Make compatible with C++17 on 10.9 deployment targetSergey Sharybin
OSLRenderServices contains a member which is 64 bytes aligned and this is onlys supported by default allocators in SDK 10.14. Since we take care of allocation ourselves ignoring the diagnostic is an acceptable way dealign with it.
2020-06-19Quadriflow: Fix compilation error with C++17Sergey Sharybin
Unary function has been removed. Unless I'm missing something subclass is not needed here.
2020-06-19Ceres: Update to the latest upstream versionSergey Sharybin
Using latest master because of various compilation error fixes. Brings a lot of recent development. From most interesting parts: - New threading model. - Tiny solver. - Compatibility with C++17.
2020-06-18Fix for T77095: work around render artifacts with AMD Radeon RX 4xx and 5xxBrecht Van Lommel
2020-06-18Fluids: fix variable namesJacques Lucke
This seems to be an error in rBb91b90f0dd3c9bff3b1a6e563c2cce293722ed16. I found it, because I could not open the file in T77263 anymore. Reviewers: sebbas Differential Revision: https://developer.blender.org/D8065
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-17Cleanup: fix compiler warningsBrecht Van Lommel
2020-06-17Fix T77915: Cycles OSL microfacet closure not working in custom shadersBrecht Van Lommel
The code to implement the newer closure in terms of the old one got lost in the removal of our stdosl.h copy. Now implement it as a builtin closure.
2020-06-12Cycles: Improve CUDA and OptiX error reporting in the viewportPatrick Mours
This patch makes the infamous "Cancel" error in the viewport a thing of the past. Instead it now shows a more useful error message and streamlines the error handling process in CUDA. Reviewed By: brecht Differential Revision: https://developer.blender.org/D8008
2020-06-12VR: Fix too dark rendering on SteamVRJulian Eisel
Apply the sRGB transform workaround we already apply for Monado (and used to apply for Windows Mixed Reality).
2020-06-12VR: SteamVR is now a supported OpenXR runtime! (Windows only)Julian Eisel
Steam just released a SteamVR update with OpenXR Developer Preview support: https://steamcommunity.com/games/250820/announcements/detail/2396425843528787270. Once SteamVR is set up for OpenXR (see link above), it works with Blender "out of the box", thanks to OpenXR! We have to apply the sRGB transform workaround for SteamVR though, otherwise it renders way too dark. Done in the next commit. Note that AMD users may still only see a pink screen, because the OpenGL-DirectX compatibility fails. I will check on a fix again. For SteamVR on Linux we may have to wait for until it supports OpenGL rendering for OpenXR. Alternatively, we *could* add initial Vulkan support at Ghost level and use Vulkan<->OpenGL interoperability extensions, Monado uses these as well.
2020-06-10Cleanup: fix compiler warning after recent changesBrecht Van Lommel
It would be good to use override for all member functions, but doing it for only somes generates compiler warning.
2020-06-10Fix Cycles viewport missing refresh when changing scene hair settingsBrecht Van Lommel
This code was not updated for the CoW depsgraph.
2020-06-10Fix T74101: File Browser in macOS fullscreen crashes or makes windows unusableJulian Eisel
When closing the File Browser window after making it fullscreen, Blender would either crash or all windows would disappear, with no obvious way to bring them back. The "fix" is to not allow fullscreen for File Browsers (or any future "dialog" windows), but only maximizing. From what I can tell that's how secondary windows are supposed to work on macOS. What we previously did seemed like something macOS doesn't handle cleanly, and I didn't find a simple way to do so on our side.
2020-06-10Cycles: Improve OptiX viewport denoising performance with CUDA renderingPatrick Mours
With this patch Cycles recognizing when a logical OptiX and CUDA device represent the same physical GPU and attempts to eliminate unnecessary tile copies for viewport rendering if that is the case for all active devices. In addition, denoising is now no longer performed on the first available OptiX device only, but instead it will try to match CUDA and OptiX rendering/denoising devices exactly to maximize utilization. Reviewed By: brecht Differential Revision: https://developer.blender.org/D7975
2020-06-10Cycles: Fix CUDA compilation after cone sampling fixLukas Stockner
2020-06-09Cycles: Fix uniform cone samplingLukas Stockner
This code is currently only used for the Glossy Toon BSDF, but it's a generic building block that might be used for other things in the future. To see why the current code does not give a uniform distribution, consider that it chooses both angles uniformly, but the smaller the angle from the center of the cone is, the smaller the differential solid angle is (similar to how sampling disks by choosing radius and phi uniformly does not work). Differential Revision: https://developer.blender.org/D7948
2020-06-09Cleanup: avoid addition with large strings in PythonCampbell Barton
This is known to be inefficient, use a second write call instead.
2020-06-08Cycles: Add support for P2P memory distribution (e.g. via NVLink)Patrick Mours
This change modifies the multi-device implementation to support memory distribution across devices, to reduce the overall memory footprint of large scenes and allow scenes to fit entirely into combined GPU memory that previously had to fall back to host memory. Reviewed By: brecht Differential Revision: https://developer.blender.org/D7426
2020-06-08Fix T77603: OSL parser fails when script ends with comment without newlineJacques Lucke
Reviewers: brecht Differential Revision: https://developer.blender.org/D7958
2020-06-05Fluid: Cleanup internal Python object namesSebastián Barschkis
Manta Python objects should not carry the global ID in their names.
2020-06-05Cycles: Enable OptiX on all Maxwell+ GPUsPatrick Mours
2020-06-05Cleanup: Strict compiler warningSergey Sharybin
2020-06-04Cleanup: remove unused flagBrecht Van Lommel