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-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
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