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-02-16Cleanup: spellingCampbell Barton
2021-02-16Merge branch 'blender-v2.92-release'Nicholas Rishel
# Conflicts: # intern/ghost/intern/GHOST_SystemWin32.cpp # intern/ghost/intern/GHOST_WindowWin32.cpp # intern/ghost/intern/GHOST_WindowWin32.h
2021-02-16Revert Wintab High Frequency Input.Nicholas Rishel
This revert removes handling of cursor move and button press events during Wintab's WT_PACKET event, instead storing pressure and tilt information to be combined with Window's WM_MOUSEMOVE events. This also reverts dynamic enabling and disabling of Wintab, dependent on the chosen Tablet API. If the Tablet API is not explictly Windows Ink during startup, Wintab is loaded and enabled. Left in place is a fallback to Windows Ink when the Tablet API is set to Automatic and no Wintab devices are present. This allows devices with Wintab installed but not active to fallback to Windows Ink. Using position provided by Wintab was found to have too many regressions to include in Blender 2.93. The primary source of regressions was tablets which mapped coordinates incorrectly on multi- monitor and scaled displays. This resulted in an offset between what the driver controlled Win32 cursor position and the Wintab reported position. A special case of this included tablets set to mouse mode, where Wintab reported absolute position while the system cursor moved as a relative mouse with mouse acceleration.
2021-02-16Calm Win32 Window Creation WarningHarley Acheson
Removing warning that 'GHOST_TUns32' to 'LONG' requires a narrowing conversion. Differential Revision: https://developer.blender.org/D9971 Own Code
2021-02-15macOS: add Embree, OpenImageDenoise and sse2neon libraries for ARMBrecht Van Lommel
This required using a fork of Embree, newer LLVM version, unreleased ISPC version and sse2neon directly from Git. Hopefully over time all the required changes end up in official releases. For now we deviate from other platforms. Based on contributions by Apple and Stefan Werner. Ref D9527, D8237, T78710
2021-02-15macOS: fix Cycles not detecting 64 bit and failing to build with EmbreeBrecht Van Lommel
Contributed by Apple Ref D9527, T78710
2021-02-14Cycles: Implement Dwivedi guiding for path-traced subsurface scatteringLukas Stockner
Cycles has supported path-traced subsurface scattering for a while, but while it's more accurate than other approaches, the increase in noise makes it an expensive option. To improve this, this patch implements Dwivedi guiding, a technique that is based on zero-variance random walk theory from particle physics and helps to produce shorter random walks with more consistent throughput. The idea behind this is that in non-white materials, each scattering event inside the medium reduces the path throughput. Therefore, the darker the material is, the lower the contribution of paths that travel far from the origin is. In order to reduce variance, Dwivedi guiding uses modified direction and distance sampling functions that favor paths which go back towards the medium interface. By carefully selecting these sampling distributions, variance can be greatly reduced, and as a neat side effect shorter paths are produced, which speeds up the process. One limitation of just blindly applying this is that the guiding is derived from the assumption of a medium that covers an infinite half-space. Therefore, at corners or thin geometry where this does not hold, the algorithm might lead to fireflies. To avoid this, the implementation here uses MIS to combine the classic and guided sampling. Since each of those works on one of the three color channels, the final estimator combines six sampling techniques. This results in some unintuitive math, but I tried to structure it in a way that makes some sense. Another improvement is that in areas where the other side of the mesh is close (e.g. ears), the algorithm has a chance to switch to guiding towards the other side. This chance is based on how deep the random walk is inside the object, and once again MIS is applied to the decision, giving a total of nine techniques. Combining all this, the noise of path-traced subsurface scattering is reduced significantly. In my testing with the Rain character model and a simple lighting setup, the path-traced SSS is now actually less noisy than the Christensen-Burley approximation at same render time while of course still being significantly more realistic. Differential Revision: https://developer.blender.org/D9932
2021-02-14Cleanup: spellingCampbell Barton
2021-02-13Fix T85573: Building with Python 3.10a5 failsCampbell Barton
Replace deprecated _PyUnicode_AsString{AndSize} usage. T83626 still needs to be resolved before 3.10 is usable.
2021-02-13Cleanup: clang-formatCampbell Barton
2021-02-13Cleanup: macro hygiene, use parenthesis around operatorsCampbell Barton
2021-02-12Fix T85562: Remove Win32 RIM_INPUTSINKHarley Acheson
Removal of Win32 code that allows background windows to receive raw input. Differential Revision: https://developer.blender.org/D10408 Reviewed by Brecht Van Lommel
2021-02-12OpenColorIO: upgrade to version 2.0.0Brecht Van Lommel
Ref T84819 Build System ============ This is an API breaking new version, and the updated code only builds with OpenColorIO 2.0 and later. Adding backwards compatibility was too complicated. * Tinyxml was replaced with Expat, adding a new dependency. * Yaml-cpp is now built as a dependency on Unix, as was already done on Windows. * Removed currently unused LCMS code. * Pystring remains built as part of OCIO itself, since it has no good build system. * Linux and macOS check for the OpenColorIO verison, and disable it if too old. Ref D10270 Processors and Transforms ========================= CPU processors now need to be created to do CPU processing. These are cached internally, but the cache lookup is not fast enough to execute per pixel or texture sample, so for performance these are now also exposed in the C API. The C API for transforms will no longer be needed afer all changes, so remove it to simplify the API and fallback implementation. Ref D10271 Display Transforms ================== Needs a bit more manual work constructing the transform. LegacyViewingPipeline could also have been used, but isn't really any simpler and since it's legacy we better not rely on it. We moved more logic into the opencolorio module, to simplify the API. There is no need to wrap a dozen functions just to be able to do this in C rather than C++. It's also tightly coupled to the GPU shader logic, and so should be in the same module. Ref D10271 GPU Display Shader ================== To avoid baking exposure and gamma into the GLSL shader and requiring slow recompiles when tweaking, we manually apply them in the shader. This leads to some logic duplicaton between the CPU and GPU display processor, but it seems unavoidable. Caching was also changed. Previously this was done both on the imbuf and opencolorio module levels. Now it's all done in the opencolorio module by simply matching color space names. We no longer use cacheIDs from OpenColorIO since computing them is expensive, and they are unlikely to match now that more is baked into the shader code. Shaders can now use multiple 2D textures, 3D textures and uniforms, rather than a single 3D texture. So allocating and binding those adds some code. Color space conversions for blending with overlays is now hardcoded in the shader. This was using harcoded numbers anyway, if this every becomes a general OpenColorIO transform it can be changed, but for now there is no point to add code complexity. Ref D10273 CIE XYZ ======= We need standard CIE XYZ values for rendering effects like blackbody emission. The relation to the scene linear role is based on OpenColorIO configuration. In OpenColorIO 2.0 configs roles can no longer have the same name as color spaces, which means our XYZ role and colorspace in the configuration give an error. Instead use the new standard aces_interchange role, which relates scene linear to a known scene referred color space. Compatibility with the old XYZ role is preserved, if the configuration file has no conflicting names. Also includes a non-functional change to the configuraton file to use an XYZ-to-ACES matrix instead of REC709-to-ACES, makes debugging a little easier since the matrix is the same one we have in the code now and that is also found easily in the ACES specs. Ref D10274
2021-02-12OpenColorIO: remove default display workaroundBrecht Van Lommel
A fix for this is in 2.0 (and recent 1.1.x versions), no need for this anymore. Differential Revision: https://developer.blender.org/D10275
2021-02-12Merge branch 'blender-v2.92-release'Brecht Van Lommel
2021-02-12Baking: support vertex color baking of normal material, UV discontinuitiesBrecht Van Lommel
Baking vertex colors per-corner leads to unwanted discontinuities when there is sampling noise, for example in ambient occlusion or with a bevel shader node for normals. For this reason the code used to always average results per-vertex. However when using split normals, multiple materials or UV islands, we do want to preserve discontinuities. So now bake per corner, but make sure the sampling seed is shared for vertices. Fix T85550: vertex color baking crash with split normals, Ref D10399 Fix T84663: vertex color baking blending at UV seams
2021-02-12Merge branch 'blender-v2.92-release'Jeroen Bakker
2021-02-12Cycles: Use Blender Settings For AOVJeroen Bakker
This patch will share the AOV settings between Cycles and Eevee. It enable using the AOV name conflict detection of Blender. This means that unlike how Cycles used to work it isn't possible to add an AOV with a similar name. Conflicts with internal render pass names will be indicated with an Warning icon. Reviewed By: Brecht van Lommel Differential Revision: https://developer.blender.org/D9774
2021-02-12Cleanup: don't subclass 'Panel' for mix-in classesCampbell Barton
This reports warnings with `--debug-python` since all panel sub-classes are expected to be registered.
2021-02-11Cleanup: clang-format, spellingCampbell Barton
2021-02-11Fix T85462: crash in render mode while removing instancesKévin Dietrich
This crash is caused by accessing object data in the kernel at an out of bound index from a deleted instance. Cycles represents instances as Object nodes sharing the same Geometry node, so we need to tag the GeometryManager for an update if some objects are added or removed as no geometry might have been added or removed in order to properly update the BVH and its associated data arrays. Regression caused by rBbbe6d4492823.
2021-02-10TBB: fix deprecation warnings with newer TBB versionsBrecht Van Lommel
* USD and OpenVDB headers use deprecated TBB headers, suppress all deprecation warnings there since we have no control over them. * For our own TBB includes, use the individual headers rather than the tbb.h that includes everything to avoid warnings, rather than suppressing all. This is in anticipation of the TBB 2020 upgrade in D10359. Ref D10361.
2021-02-10UI: Removal of GHOST_CreateDialogWindowHarley Acheson
Simplification of window creation code to allow greater flexibility. Differential Revision: https://developer.blender.org/D10311 Reviewed by Brecht Van Lommel
2021-02-09Cycles: fix wrong flags used to tag device data as dirtyKévin Dietrich
Also fixes missing modified tag for float2 and float3 attributes arrays.
2021-02-05Cleanup: Remove LibAV supportSebastian Parborg
Ubuntu and Debian dropped libav in 2015 in favor of ffmpeg. Development stopped of libav in 2018, so it should be save to remove.
2021-02-05Cleanup: correct spelling in commentsCampbell Barton
2021-02-05Cleanup: cmake indentation, white-spaceCampbell Barton
2021-02-04UI: Win32 Window Creation RefactorHarley Acheson
Simplification of Win32 GHOST_WindowWin32 with improved support for owned windows. Differential Revision: https://developer.blender.org/D9971 Reviewed by Brecht Van Lommel
2021-02-03Alembic procedural: fix crash when cancelling a render duringKévin Dietrich
synchronization
2021-02-02Merge branch 'blender-v2.92-release'Sebastián Barschkis
2021-02-02Fix T84649: Quick liquid causing crash on scale operationSebastián Barschkis
This commit makes use of the updated fluid sources files (previous commit rB9ad828dbad94d279521875db47a3472a38cc9b29)
2021-02-02Python API: option for render engines to delegate Freestyle render to EeveeMiguel Pozo
Eevee is now used for Freestyle rendering by default, since other engines are unlikely to have support for this. Workbench and Cycles do their own rendering. RenderEngine add-ons can do their own Freestyle rendering by setting bl_use_custom_freestyle = True. Differential Revision: https://developer.blender.org/D8335
2021-01-29Fix T85144: Cycles crashes when editing render properties in viewportKévin Dietrich
rendering Issue was caused by the sample pattern LUT always being freed and not rebuilt when properties driving its dimensions were modified.
2021-01-29Merge branch 'blender-v2.92-release'Patrick Mours
2021-01-29Fix T85148: OptiX viewport denoising regressionPatrick Mours
Commit 6e74a8b69f215e63e136cb4c497e738371ac798f changed the denoiser input passes default to include the normal pass. This does not always produce optimal images though, hence why the default was previously set to only include the color and albedo passes. This restores that behavior, so that viewport denoising with OptiX produces the same results as before.
2021-01-27Sky Texture: change Nishita Altitude to use unit systemMarco
Differential Revision: https://developer.blender.org/D9968
2021-01-27Merge branch 'blender-v2.92-release'Patrick Mours
2021-01-27Fix T85089: Crash when rendering scene that does not fit into GPU memory ↵James Horsley
with CUDA/OptiX The "cuda_mem_map_mutex" was potentially being locked recursively during the call to "CUDADevice::move_textures_to_host", which crashed. This moves around the locking and unlocking of "cuda_mem_map_mutex", so that it doesn't call a function that locks it while still holding the lock. Reviewed By: pmoursnv Maniphest Tasks: T85089, T84734 Differential Revision: https://developer.blender.org/D10219
2021-01-27Cleanup: spellingCampbell Barton
2021-01-26Merge branch 'blender-v2.92-release'Richard Antalik
2021-01-26Fix T85048: Cycles sculpt vertex color issues after recent changesBrecht Van Lommel
Attribute fields were not fully copied. Ref D10208
2021-01-26Fix Cycles standalone compilation following API changesCharles Flèche
The changes to the socket API were not applied to the standalone app. Also modify Camera.compute_auto_viewplane() to use Camera.full_width and Camera.full_height as it is not possible to publicly access Camera.width and Camera.height anymore, so the aspect ratio could be computed with stale data. Differential Revision: https://developer.blender.org/D9961
2021-01-26Cycles standalone: fix missing dependencies in CMake filesCharles Flèche
Also set default CYCLES_INSTALL_PATH to CMAKE_INSTALL_PREFIX. By default with a `make cycles` this will build to ${CMAKE_BINARY_DIR}/bin Differential Revision: https://developer.blender.org/D9961
2021-01-25Cleanup: spellingCampbell Barton
2021-01-25Merge branch 'blender-v2.92-release'Hans Goudey
2021-01-25Cycles: modernize usage of rna iteratorsJacques Lucke
Using rna iterators in range-based for loops is possible since {rBc4286ddb095d32714c9d5f10751a14f5871b3844}. This patch only updates the places that are easy to update without more changes in surrounding code. Differential Revision: https://developer.blender.org/D10195
2021-01-25Fix build error after Cycles Amembic procedural commitBrecht Van Lommel
2021-01-25Cycles: internal support for Alembic proceduralsKevin Dietrich
The implementation is currently optimized to load animation sequences once and then quickly scrubbing through them. Later on an option should be added to optimize for memory usage and only load the current frame into memory. Currently mesh and curve objects are supported, including support for UV and vertex color attributes. Missing still is support for arbitrary attributes and motion blur, as well as better handling of changing topology. Shader assignments are made using FaceSets found in the Alembic archive. The animation (and constant) data of the objects inside the Alembic archive is loaded at once at the beginning of the render and kept inside a cache. At each frame change we simply update the right socket of the corresponding Cycles node if the data is animated. This allows for fast playback in the viewport (depending on the scene size and compute power). Note this is not yet exposed in the Blender UI, it's a feature that is still under development and not ready for general use. Ref T79174, D3089
2021-01-25Cycles: internal support for the concept of proceduralsKevin Dietrich
Procedurals are nodes in the scene that can generate an arbitrary number of other nodes at render time. This will be used to implement an Alembic procedural that can load an Alembic file into Cycles nodes. In the future we also expect to have a USD procedural. Direct loading of such files at render time is a standard feature in other production renderers. Reasons to support this are memory usage and performance, delayed loading of heavy scene data until rendering, Cycles standalone rendering using standard file formats beyond our XML files, and shared functionality for Cycles integration in multiple 3D apps. Ref T79174, D3089
2021-01-25Cleanup: move code to find geometry shaders into own functionKevin Dietrich
Ref D3089