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-24Cmake/deps: Update OSL to 1.11.10.0Ray Molenkamp
This bumps OSL to 1.11.10.0. OSL Has a new build time dependency: Clang, and more importantly it expects clang and llvm to share a library folder, which it previously for us did not. This patch changes: -OSL Update to 1.11.10.0 -refactor the llvm/clang/clang-tools-extra builds into the llvm build using the llvm-project tarball for building that has all of the subprojects in it. -update ispc/openmp builds since clang no longer its own dependency and they have to depend on the llvm build now. -Update the windows builder to use the 64 bit host tools since it ran out of ram linking clang -Since OSL now needs clang to link successfully a findclang.cmake has been provided for linux/OSX Differential Revision: https://developer.blender.org/D10212 Reviewed By: brecht, sebbas, sybren
2021-02-24Revert Automatic Tablet API dynamic fallback.Nicholas Rishel
Removes fallback to Windows Ink when Wintab reports no devices present. Returns to old behavior of using only Wintab if Wintab.dll exists.
2021-02-24Fix T85844: high pressure at start of line.Nicholas Rishel
m_tabletInRange is no longer set for Wintab after 2e81f2c01abd21fdbc reverted Wintab changes. This reverts most button processing to behavior present in 2.91.2. Left in place is a bugfix for Windows Ink: button events while a Windows Ink pen is in range should still be processed. Events processed by Windows Ink and not passed to DefWindowProc do not create WM_*BUTTON events, but button events from e.g. tablet pad express keys do create WM_*BUTTON events and should be handled.
2021-02-24Revert high fequency mouse input for Windows.Nicholas Rishel
Windows mouse history function GetMouesMovePointsEx has well documented bugs where it receives and returns 32 bit screen coordinates, but internally truncates to unsigned 16 bits. For mouse (relative position) input this is not a problem as motion events and the resulting screen coordinates reliably fit within 16 bit precision. For tablets (absolute position) the 16 bit truncation results in corrupt history when tablet drivers use mouse_event or SendInput from the Windows API to move the mouse cursor. Both of these functions take absolute mouse position as singed 32 bit value on the range of 0-65535 (or 0x0-0xFFFF) inclusive. Values larger than 0x7FFF (the largest signed 16 bit value) are reliably corrupt when retrieved from GetMouesMovePointsEx history. This is true regardless of whether mouse history is retrieved using display resolution (GMMP_USE_DISPLAY_POINTS) or high resolution points (GMMP_USE_HIGH_RESOLUTION_POINTS), the latter of which should return points in range 0-65535. Reviewed By: brecht Maniphest Tasks: T85874 Differential Revision: https://developer.blender.org/D10507
2021-02-23WM_MOUSEMOVE cleanup.Nicholas Rishel
2021-02-23Cycles: Add option to change input passes for viewport denoisingPatrick Mours
There are cases where the default input passes of color+albedo do not yield useful results and while this was possible to change that for final frame rendering (in the layer settings), viewport denoising always used a fixed color+albedo. This adds an option to change the input passes for viewport denoising too, so that one can use it in scenes that otherwise wouldn't work well with it. Reviewed By: brecht Differential Revision: https://developer.blender.org/D10404
2021-02-23Alembic procedural: avoid storing constant hair topology for each frameKévin Dietrich
Only store the curve keys and radiuses for each frame if the topology does not change through time, this helps saving quit a bit of memory.
2021-02-23Alembic procedural: cleanup, demultiply Object and Geometry NodeKévin Dietrich
creation
2021-02-23Alembic procedural: use an enumeration to discriminate IObjectsKévin Dietrich
Using the various IObject::matches() to do so was expensive and would show up in profiles as requires creating std::strings for each call.
2021-02-23Alembic procedural: fix crash when accessing data out of frame boundsKévin Dietrich
2021-02-22Win32: Do not (yet) set window styles for DialogHarley Acheson
Remove the setting of Dialog window styles until we confirm expected behavior between platforms. Differential Revision: https://developer.blender.org/D10470 Own Code
2021-02-22Fix Principled BSDF specular color for black base colorPascal Schön
Specular color is set to black instead of white inside the Principled BSDF when the base color is set to fully black. This is contradictory to the sample code of the Disney BRDF in BRDF Explorer. This patch aligns both implementations. Differential Revision: https://developer.blender.org/D10448
2021-02-22Fix T85768: Win32 Full-Screen Owned WindowsHarley Acheson
Improvements to how window states are determined and changed. Differential Revision: https://developer.blender.org/D10470 Reviewed by Brecht Van Lommel
2021-02-22Fix Cycles world volume scattering missing light in some casesBrecht Van Lommel
With very large distances there were precision / overflow errors, normalize the average albedo to avoid that. This was causing test failures on macOS Arm, but also other architectures had slightly wrong results. Ref T78710
2021-02-21PyAPI: use postponed annotations to support Python 3.10Campbell Barton
Support Python 3.10a5 or 3.9x with support explicitly enabled. - Enable Python's postponed annotations for Blender's RNA classes types registered on startup. - Using postponed annotations has implications for how they are defined, since they must evaluate in the modules name-space instead of the classes name-space. See changes to annotations in `release/scripts`. - Use `from __future__ import annotations` at the top of the module to ensure the script will run with Python 3.10. - Old logic is kept since it could be used if PEP-649 is supported. Resolves T83626 Ref D10474
2021-02-20Geometry Nodes: expose float2 attribute in rnaJacques Lucke
This also fixes the issue reported in T85651. Differential Revision: https://developer.blender.org/D10477
2021-02-20Cleanup: doxygen sectionsCampbell Barton
2021-02-18Cleanup: clang-formatCampbell Barton
2021-02-18Cleanup: spelling, correct doc-string argumentsCampbell Barton
2021-02-18Cleanup: Fix unused variable warningRay Molenkamp
exception was not used and can be safely removed
2021-02-17Cycles: Fix build error on windowsRay Molenkamp
Function __bsf was in util/util_simd.h twice problem located by @EAW on chat.
2021-02-17Fix OpenColorIO 2.0 GPU shader error in uniform assignmentBrecht Van Lommel
And fix a (harmless) compiler warning.
2021-02-17Fix T85694: Cycles incorrect grayscale conversion with some OpenColorIO configsBrecht Van Lommel
2021-02-17Cycles: add support for Arm Neon instructions using sse2neonBrecht Van Lommel
Based on patch contributed by Apple and Stefan Werner. Ref D8237, T78710
2021-02-17Cycles: add utility functions for zero float2/float3/float4/transformBrecht Van Lommel
Ref D8237, T78710
2021-02-17Cycles: refactor intrinsic functions implementationBrecht Van Lommel
* Add processor independent fallbacks * Use uint32_t and uint64_t types * Remove unused functions * Better comments and less indentation Ref D8237, T78710
2021-02-17BLI: use sse2neon to emulate SSE instructions with Arm NeonBrecht Van Lommel
* WITH_CPU_SSE was renamed to WITH_CPU_SIMD, and now covers both SSE and Neon. * For macOS sse2neon.h is included as part of the precompiled libraries. * For Linux it is enabled if the sse2neon.h header file is detected. However this library does not have official releases and is not shipped with any Linux distribution, so manual installation and configuration is required to get this working. Ref D8237, T78710
2021-02-17Merge branch 'blender-v2.92-release'Brecht Van Lommel
2021-02-17Fix T85440: crash with displacement shaders and updating geometry in viewportBrecht Van Lommel
When primitive offsets change we need to rebuild or refit BVHs, however this was also tagging other data as modified too late in the geometry update process. Now ensure only the BVHs are updated. Ref D10441
2021-02-17Cycles: support accessing custom mesh attributesJacques Lucke
This makes custom mesh attributes available in Cycles. Typically, these attributes are generated by Geometry Nodes, but they can also be created with a Python script. * The `subdivision` code path is not yet supported. * This does not make vertex weights and some other builtin attributes available in Cycles, even though they are accesible in Geometry Nodes. All attributes generated in Geometry Nodes should be accessible though. * In some cases memory consumption could be removed by not storing all attributes in floats. E.g. booleans and integer attributes for which all values are within a certain range, could be stored in less than 4 bytes per element. Differential Revision: https://developer.blender.org/D10210
2021-02-17Cycles: detect when attributes have changedJacques Lucke
This patch has originally been written by Kévin Dietrich, thanks! It is part of D10210. As Brecht noted in D10210, this might not handle all cases yet. I better solution should come soonish.
2021-02-17Cleanup: spellingCampbell Barton
2021-02-17Merge branch 'blender-v2.92-release'Nicholas Rishel
2021-02-17Fix T84701: Popup closes on release while dragging parameter.Nicholas Rishel
Windows Ghost cursor movement was previously changed to use SendInput because SetCursorPos sporadically allows the cursor to escape the window. This is now reverted because SendInput causes mouse history via GetMouseMovePointsEx to contain invalid movement history, likely due to interaction with mouse acceleration. This resulted in popups closing when the cursor appeared to leave their range.
2021-02-17Fix T85671: color management crash with Medium Contrast lookBrecht Van Lommel
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