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
2021-02-18- ghost fcurve drawing uses Show Extrapolation settingtemp_T76472_graph_editor_fcurve_extrapolationWayde Moss
2021-02-17Graph Editor: FCurve Extrapolation Visibility T76472Wayde Moss
Adds toggle to graph editor (View->Show Extrapolation). When disabled, then fcurves only draw over the keyframe range. For baked fcurves, the range is all sampled points. For ghost fcurves, extraplation is always drawn since the sampled points may include extrapolated points of the original fcurve. Show Extrapolation is the default. ___ **Technical Notes**: - `draw_fcurve_curve()`: There are now explicit checks for floating point poor accuracy cases. Without them, then there would be visual flickering when no extrapolation is drawn and there is a discontinuity at the end (due to cyclic modifier). This removes the need for the `+samplefreq` in `etime = v2d->curxmax + samplefreq`. It also removes the need to do so on `fcu_start/fcu_end`. - `draw_fcurve_curve()`: Besides the previous note, the only other meaningful change is the `if(!draw_extrapolation)` branch which just changes `stime/etime` to match the keyframe bounds instead. Differential Revision: https://developer.blender.org/D10442
2021-02-12Cleanup: Decrease scope of RNA enum definitionsHans Goudey
Since these enums are only used in a single function, they can be defined where they are used. Similar to rB2f60e5d1b56dfb8c9104.
2021-02-12Geometry Nodes: Add operation setting to attribute randomize nodeHans Goudey
This commit adds a drop-down to the attribute randomize node to support a few operations on the values of existing attributes: "Replace/Create" (the existing behavior), "Add", "Subtract", and "Multiply". At this point, the operations are limited by what is simple to implement. More could be added in the future, but there isn't a strong use case for more complex operations anyway, and a second math node can be used. Differential Revision: https://developer.blender.org/D10269
2021-02-12Geometry Nodes: Allow attribute nodes to use different domainsHans Goudey
Currently every attribute node assumes that the attribute exists on the "points" domain, so it generally isn't possible to work with attributes on other domains like edges, polygons, and corners. This commit adds a heuristic to each attribute node to determine the correct domain for the result attribute. In general, it works like this: - If the output attribute already exists, use that domain. - Otherwise, use the highest priority domain of the input attributes. - If none of the inputs are attributes, use the default domain (points). For the implementation I abstracted the check a bit, but in each node has a slightly different situation, so we end up with slightly different `get_result_domain` functions in each node. I think this makes sense, it keeps the code flexible and more easily understandable. Note that we might eventually want to expose a domain drop-down to some of the nodes. But that will be a separate discussion; this commit focuses on making a more useful choice automatically. Differential Revision: https://developer.blender.org/D10389
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-12Py Doc: Fix rst syntax errorsAaron Carlisle
2021-02-12Py Doc: Delete old deployment scriptsAaron Carlisle
Now, the API docs are deployed via the new devops pipeline developed by James.
2021-02-12Py Doc: Update Sphinx and theme versionsAaron Carlisle
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-12Geometry Nodes: Add dependency relation for collection objectsHans Goudey
Currently moving or changing an object references in a node modifier's node group does not trigger re-evaluation. Because there is no collection relation in the dependency graph, we must add the relation to all objects in the collection individually.
2021-02-12Geometry Nodes: Make instances real on-demandHans Goudey
This commit makes the geometry output of the collection info usable. The output is the geometry of a collection instance, but this commit adds a utility to convert the instances to real geometry, used in the background whenever it is needed, like copy on write. The recursive nature of the "realize instances" code is essential, because collection instances in the `InstancesComponent`, might have no geometry sets of their own containing even more collection instances, which might then contain object instances, etc. Another consideration is that currently, every single instance contains a reference to its data. This is inefficient since most of the time there are many locations and only a few sets of unique data. So this commit adds a `GeometryInstanceGroup` to support this future optimization. The API for instances returns a vector of `GeometryInstanceGroup`. This may be less efficient when there are many instances, but it makes more complicated operations like point distribution that need to iterate over input geometry multiple times much simpler. Any code that needs to change data, like most of the attribute nodes, can simply call `geometry_set_realize_instances(geometry_set)`, which will move any geometry in the `InstancesComponent` to new "real" geometry components. Many nodes can support read-only access to instances in order to avoid making them real, this will be addressed where needed in the near future. Instances from the existing "dupli" system are not supported yet. Differential Revision: https://developer.blender.org/D10327
2021-02-12Merge branch 'blender-v2.92-release'Jacques Lucke
2021-02-12Fix T84899: instance ids are not unique in common casesJacques Lucke
Ids stored in the `id` attribute cannot be assumed to be unique. While they might be unique in some cases, this is not something that can be guaranteed in general. For some use cases (e.g. generating "stable randomness" on points) uniqueness is not important. To support features like motion blur, unique ids are important though. This patch implements a simple algorithm that turns non-unique ids into unique ones. It might fail to do so under very unlikely circumstances, in which it returns non-unique ids instead of possibly going into an endless loop. Here are some requirements I set for the algorithm: * Ids that are unique already, must not be changed. * The same input should generate the same output. * Handle cases when all ids are different and when all ids are the same equally well (in expected linear time). * Small changes in the input id array should ideally only have a small impact on the output id array. The reported bug happened because cycles found multiple objects with the same id and thought that it was a single object that moved on every check. Differential Revision: https://developer.blender.org/D10402
2021-02-12Merge branch 'blender-v2.92-release'Antonio Vazquez
2021-02-12GPencil: Fix compiler warnings after previous commitAntonio Vazquez
These warnings were not detected by Windows compiler as the Linux compiler does.
2021-02-12Merge branch 'blender-v2.92-release'Antonio Vazquez
2021-02-12Fix T85581: GPencil draw on surface does not workAntonio Vazquez
The problem was the stroke was reproject flat to view if the axis was View. Now, if the operation is using depth, the stroke is not reprojected. Related to T85082
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-12CMake/Deps: fix build of nasm when asciidoc and xmlto are unavailableSybren A. Stüvel
Create zero-byte manual page files `nasm.1` and `ndisasm.1` such that nasm's `make install` step succeeds. Installing nasm requires that its manual pages are built. This requires local packages `asciidoc` and `xmlto` to be installed. Not only does `asciidoc` pull in 110 MB of packages (itself + dependencies), there is also no need for these manual pages. Nasm is just used for building other dependencies, and not even part of our precompiled libraries in SVN. Reviewed By: sebbas Differential Revision: https://developer.blender.org/D10396
2021-02-12Fix T85558: crash changing the resolution mode of the "volume to mesh" nodePhilipp Oeser
The nodes update function geo_node_volume_to_mesh_update would not run if it is not the very first node in the tree. If the update function is not run, there are sockets not cleared from the SOCK_UNAVAIL flag (but this needs to be done -- these get available depending on the chosen mode). Havent tracked down why this was actually updating when it was the first node in the tree, but now make sure we always get an update by specifing an appropriate RNA update callback for the property. Maniphest Tasks: T85558 Differential Revision: https://developer.blender.org/D10403
2021-02-12Merge branch 'blender-v2.92-release'Jacques Lucke
2021-02-12Geometry Nodes: remove incorrect assertJacques Lucke
It is perfectly valid that an attribute does not exist and cannot be created. For example, this can happen when a mesh does not contain any vertices.
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-12Fix T85545: changing position attribute does not tag normals dirtyJacques Lucke
This makes it so that normals are tagged dirty whenever the position attribute is requested for writing. This seems like a good default. If the calling code is aware of normals, it could untag normals when they are not changed by the operation. Differential Revision: https://developer.blender.org/D10397
2021-02-12Fix T79999: Double color management applied during viewport animation renderJeroen Bakker
In 2.81 there was a change to increase the performance of viewport animation rendering. This change would perform the color management on the GPU if the only 8bit was needed. This saved CPU cycles and data transfer. The issue is that in the image editor or when saving the image the CM will be reapplied. Although the speed is desired, exporting the actual colors has more priority. In the ticket there is an analysis that shows that shows that this fix is the correct short term step to take. It would be better that the render result is aware of the color space of its buffers so the applying color management could be skipped when saving to disk or drawing in the image editor. The issue with this change is the performance penalty it has. Reviewed By: Brecht van Lommel Maniphest Tasks: T79999 Differential Revision: https://developer.blender.org/D10371
2021-02-12Fix T79999: Double color management applied during viewport animation renderJeroen Bakker
In 2.81 there was a change to increase the performance of viewport animation rendering. This change would perform the color management on the GPU if the only 8bit was needed. This saved CPU cycles and data transfer. The issue is that in the image editor or when saving the image the CM will be reapplied. Although the speed is desired, exporting the actual colors has more priority. In the ticket there is an analysis that shows that shows that this fix is the correct short term step to take. It would be better that the render result is aware of the color space of its buffers so the applying color management could be skipped when saving to disk or drawing in the image editor. The issue with this change is the performance penalty it has. Reviewed By: Brecht van Lommel Maniphest Tasks: T79999 Differential Revision: https://developer.blender.org/D10371
2021-02-12UI: expose the 3D views active object, even when hiddenCampbell Barton
The previous behavior meant that changing an objects visibility effectively changed the current mode - which missed necessary updates for the tool-system (for example). There was already a check for edit-mode, now expected to all modes. This makes the test-case described in T83013 work as expected.
2021-02-12WM: Add 'Confirm On Release' option for WM_OT_radial_controlJuanfran Matheu
Adds a new property called "Confirm On Release" that does what it says, confirm the action without having to do left-click or to press any other extra-key which concludes in a more dynamic and efficient way of changing brush size or strength for example, especially for tablet users. Reviewed By: campbellbarton Ref D10233
2021-02-12Cleanup: use the assignment operator with list-comprehensionCampbell Barton
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-12Cleanup: remove unused panel SEQUENCER_PT_soundCampbell Barton
These have since been moved to SEQUENCER_PT_source.
2021-02-12Docs: add notes to 'make deps' & the sqlite build configurationCampbell Barton
- Move non-blender build targets into their own section. - Expand 'make help' text, noting a local 'make deps' overrides. - Note where the spell checkers word-list is maintained. - Note on why sqlite is built without 'tcl'.
2021-02-12CMake: update MSVC PDB path referenceCampbell Barton
Replace literal number with a variable.
2021-02-12PyAPI: Use PyPreConfig & PyConfig for Python initializationCampbell Barton
Use Python 3.8's API for setting the initial configuration. This replaces a mix of our logic and direct calls to the Python API and has no user visible changes. Using the Python API makes the logic easier to follow and provides utilities such as `PyConfig_SetBytesArgv` that wasn't available in previous releases. Note that this uses Python's utf8/wchar_t conversions, which used to cause problems (see T31506). Since `Py_UTF8Mode` was set, the systems locale isn't used for decoding, allowing us to use Python's utility functions that call `Py_DecodeLocale` internally. Ref D10382
2021-02-12PyAPI: use PyModule_AddType utility functionCampbell Barton
2021-02-12PyAPI: remove Python 3.7x compatibility codeCampbell Barton
This removes Python version checks needed to build with 3.8+ and 3.7x. Ref D10381
2021-02-11CMake: update python to 3.9.1Campbell Barton
Default to Python version 3.9. Reviewed By: LazyDodo, sybren, sebbas Ref D10380
2021-02-11Cleanup: clang-format, spellingCampbell Barton
2021-02-11Mesh automated testing: compare selectionHabib Gahbiche
MeshTest now compares selection between evaluated mesh and expected mesh. This way, we can test more operators such as `faces_select_linked_flat` Note: selection comparison intentionally does not happen in BKE_mesh_cmp() on C side but rather on Python side, because selection is independent of mesh generation. Reviewed By: calra, mont29 Differential Revision: https://developer.blender.org/D10279
2021-02-11Fix finding system Haru library on Debian.Bastien Montagne
Paths and names of system packages-installed libhpdf on Debian (and probably its derived distributions?) are slightly different than what was given to CMake finding script.
2021-02-11Cleanup: Python GPU: Use consistent prefixes for local APIGermano Cavalcante
It was not following the own documentation at the top code that mentions that for local API the prefix is "bpygpu_".
2021-02-11Mesh automated testing: improve progress printingHabib Gahbiche
Print number of total tests with each test to show how many tests have been executed and how many are left. Example: `Running test 27/36: PlaneFaceSplitByEdges...` Reviewed By: calra, mont29 Differential Revision: https://developer.blender.org/D10278
2021-02-11Cleanup: delete comments with test indexHabib Gahbiche
Tests are not identified with indexes, so no need to maintain comments with indexes anymore Reviewed By: calra, mont29 Differential Revision: https://developer.blender.org/D10277
2021-02-11Cleanup: Remove unused variableHans Goudey
2021-02-11Merge branch 'blender-v2.92-release'Hans Goudey
2021-02-11Fix T85555: Geometry Nodes: Attribute Vector Math Wrap is brokenHans Goudey
This was just a copy and paste error / typo. The proper DNA variable wasn't used. Thanks @charlie for finding the issue.