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-01-27Sky Texture: change Nishita Altitude to use unit systemMarco
Differential Revision: https://developer.blender.org/D9968
2021-01-26Geometry Nodes: Support all operations in the "Attribute Math" nodeHans Goudey
This adds the ability to use all the math operations in the regular utility "Math" node. The code is quite similar to the attribute vector math node, with the simplification that the result is always a float. Differential Revision: https://developer.blender.org/D10199
2021-01-26Merge branch 'blender-v2.92-release'Sebastian Parborg
2021-01-26Fix T85049: Geometry Nodes: How to handle instances with shear?Sebastian Parborg
Use transform matrices instead of loc, rot, scale variables to store instance transforms. Reviewed By: JacquesLucke Differential Revision: http://developer.blender.org/D10211
2021-01-26Merge branch 'blender-v2.92-release'Richard Antalik
2021-01-26Fix T84935: improve previous fix for boolean custom data layersJacques Lucke
This improves the fix introduced in rBdc8b31af578bfcf9f77dbce6d7b7da1006a3c8c1. While it did not result in other bugs afaik, I thought it would be good to make the fix more specific, in case some other code did expect `layer->data` to be null. This updated fix checks for the very specific case the fix was intended for.
2021-01-26Geometry Nodes: new Points to Volume nodeJacques Lucke
This implements a new geometry node based on T84606. It is the first node that generates a `VolumeComponent`. Differential Revision: https://developer.blender.org/D10169
2021-01-26Subdiv: Use better default UV interpolationSergey Sharybin
The default one is now UVs are smoothed, boundaries are kept sharp. After some time of experimentation seems this is better default from interoperability point of view. This fixes distortion reported in T83470. Differential Revision: https://developer.blender.org/D10111
2021-01-26Cleanup: Reduce variable scopeHans Goudey
2021-01-26Merge branch 'blender-v2.92-release'Robert Guetzkow
2021-01-26Fix T84935: boolean custom data layers not saved correctlyJacques Lucke
The issue was that boolean custom data layers were not written to files, because the dna struct name `bool` does not exist. Adding a struct that just contains a `bool/uint8_t` does not seem to be possible, it looks like the minimum dna struct size is 4 bytes. The proposed solution has two parts: 1. Write the custom data layer using `BLO_write_raw` instead of `BLO_write_struct_array_by_name`. 2. When loading a file, reinitialize any custom data layer that was not saved correctly (this is just a fix for existing files). Differential Revision: https://developer.blender.org/D10194
2021-01-26Cleanup: Reduce variable scope, use LISTBASE_FOREACH macroHans Goudey
2021-01-26Cleanup: Use const argumentsHans Goudey
2021-01-26Cleanup: Declare variables where initializedHans Goudey
2021-01-25Cleanup: spellingCampbell Barton
2021-01-25LibOverride: refactor of relationships handling in library overrides.Bastien Montagne
First step towards a better handling of relationships between IDs in override context, especially when a resync is needed. First, introduce a new flag to override operations, `IDOVERRIDE_LIBRARY_FLAG_IDPOINTER_MATCH_REFERENCE`, for ID pointers. It keeps track of whether an RNA ID pointer has been kept to its 'natural overriden ID' (in override hierarchy context), or has actually been re-assigned to some other data-block. Second, refactor how we deal with relationships between IDs in override hierarchy code, especially in resync case. This will fixe several cases listed in T83811, especially the case where an ID pointer to an existing override needs to be updated to a new one due to a matching change in linked data.
2021-01-25Merge branch 'blender-v2.92-release'Sergey Sharybin
2021-01-25Fix T84398: Multiview images show only one view.Jeroen Bakker
The `image_get_gpu_texture` didn't use the iuser->view_index but recalculated the requested view again. This lead to inconsistent behavior when switching between multi view textures or stereo textures. This has been fixed by ensuring that the `iuser->view_index` is always used. An Image has only place to store 2 view textures. This is done for right/left eye compositing. A multi view texture can have more views. This would lead to reading and writing to unallocated space. When a multiview texture is requested that is larger than 1. It will always be cached as being the first eye. The `gpu_view` of the Image is also used as a cache key to check this.
2021-01-24Cleanup: email address formattingCampbell Barton
Match git style email addresses, ignored by the spell checker.
2021-01-22Fix crashes from recent refactor rB131a758b6f88.Bastien Montagne
Much better to add a relation entry for all IDs, even if they are not connected to any other ID.
2021-01-22Refactor BMain relations temp data.Bastien Montagne
`bmain.relations` is used to store temp data of relations between IDs, to speed-up some complex processes heavily relying on such information. Previous implementation was failry unclear/confusing, and required a not-so-nice hack to 'tag' some ID as processed. New code changes as such: * Using `from`/`to` naming (instead of `user`/`used`). * More clear separation between `to` `id_pointer` and `from` one, using an union instead of hacking around difference between `ID *` and `ID **` pointers. * Adds storage of `session_uuid` informations (mainly useful as debug/ensuring proper consistency of data currently). * Adds a structure per ID in the mapping. This enables possibility of storing tags (and potentially more data in the future) per-ID, without polluting the IDs themselves with very short-life info. Differential Revision: https://developer.blender.org/D10164
2021-01-22LibOverride: Add an 'post apply' callback to IDTypeInfo.Bastien Montagne
Currently this is needed to properly tag PointCache's for info update (fixes an issue reported in T82503). Suspect we may need this in more cases in the future though, RNA assign/update processes are not always 100% enough to deal with complicated corner cases.
2021-01-22Cleanup - Point Instance: Use own DNA structDalai Felinto
We will need to expand this node soon to add weight/count for different elements inside the collection. For that it is better to have the node to use its own DNA.
2021-01-22Particles: Fixed thread work size calculation.Stefan Werner
Dividing the workload by number of tasks in float is imprecise and lead in some cases to particles not being calculated at all (example: 20000 particles, 144 tasks). Switching this calculation to integer makes sure we don't lose count. Differential Revision: https://developer.blender.org/D10157
2021-01-22Particles: Fixed thread work size calculation.Stefan Werner
Dividing the workload by number of tasks in float is imprecise and lead in some cases to particles not being calculated at all (example: 20000 particles, 144 tasks). Switching this calculation to integer makes sure we don't lose count. Differential Revision: https://developer.blender.org/D10157
2021-01-22Cleanup: spelling, remove outdated/invalid commentsCampbell Barton
2021-01-21Merge branch 'blender-v2.92-release'Falk David
2021-01-21Geometry Nodes: fix losing data when attribute has incorrect typeJacques Lucke
Differential Revision: https://developer.blender.org/D10165
2021-01-21Geometry Nodes: new Attribute Sample Texture nodeJacques Lucke
This node allows sampling a texture for every vertex based on some mapping attribute. Typical attribute names are the name of a uv map (e.g. "UVMap") and "position". However, every attribute that can be converted to a vector implicitly is supported. It should be noted that as of right now, uv map attributes can only be accessed after a Point Distribute node. Ref T82584. Differential Revision: https://developer.blender.org/D10121
2021-01-21GPencil: Make Layer and Frame duplicate functions more flexibleAntonio Vazquez
Now it's possible to copy only part of the data. This will be used in future operators.
2021-01-21Cleanup: variable rename.Bastien Montagne
Avoid using two or three chars names when it's not absolutely obvious what they mean.
2021-01-21Asset Browser: Enable by default in alpha buildsJulian Eisel
The Asset Browser is still considered an experimental feature right now. But it can be enabled by default for alpha builds, to get further testing and feedback. It will hopefully be a non-experimental feature by the end of bcon1. This is done in agreement with Dalai.
2021-01-21Geometry Nodes: initial support for volumesJacques Lucke
For the most part, this just adds boilerplate code for volume support in geometry nodes: * Add `VolumeComponent` next to `MeshComponent`, etc. * Support `VolumeComponent` in depsgraph object iterator. Furthermore, I added initial volume support in a few nodes: * The Object Info node outputs an object instance when the input is a volume object (that will be the same for mesh objects soonish, to avoid copies). * Support transforming a `VolumeComponent` in the Transform node. * Support the `VolumeComponent` in Join Geometry nodes, but only when just one of the inputs has a volume component for now. Right now, there is no way to create a `VolumeComponent`, because the Object Info node outputs an object instance. The `VolumeComponent` will be necessary for upcoming nodes, which will generate volumes on the fly. Viewport selection does not work correctly with `VolumeComponent`s currently. I don't know why that is. That can be figured out a bit later, once we can actually create new volumes in geometry nodes. Ref T84604. Differential Revision: https://developer.blender.org/D10147
2021-01-21Cleanup: spellingCampbell Barton
2021-01-20Merge branch 'blender-v2.92-release'Sebastian Parborg
2021-01-20Fix T84867: Transform node does not rotate/scale instancesSebastian Parborg
The manipulation of rot/scale was simply not implemented.
2021-01-20Tracking: Fix missing average of track offsetSergey Sharybin
2021-01-20Cleanup: spellingCampbell Barton
2021-01-20Cleanup: remove extra in trailing asteriskCampbell Barton
Comment blocks not conforming to convention.
2021-01-20Merge branch 'blender-v2.92-release'Campbell Barton
2021-01-20CMake: add missing headersCampbell Barton
Resolves 'cmake_consistency_check' reports.
2021-01-20Cleanup: Store runtime space node variables in a separate structHans Goudey
This commit moves runtime-only variables from the `SpaceNode` DNA struct to a private struct in `node_intern.h`. Before, it was hard to tell which data needed to be saved in files, this should make it more clear. Node that the `edittree` field is basically a runtime variable, since it's set from the `treepath` list on read, but moving it would require some more invasive changes that I don't think are worth it right now. Also, not all of the moved variables were explicitly cleared on read-- `aspect` is set at the start of a redraw, `cursor` is set in a region callback, and `recalc` was used as an update flag. Differential Revision: https://developer.blender.org/D10141
2021-01-19Refactor modifier copying code.Bastien Montagne
Things like pointers to particle systems, or softbody data being stored outside of its modifier, make it impossible for internal modifier copy data code to be self-contained currently. It requires extra processing. In existing code this was handled in several different places, in several ways, and alltogether fairly inconsistently. Some cases were even not properly handled, causing e.g. crashes as in T82945. This commit addresses those issues by: * Adding comments about the hackish/unsafe parts `psys` implies when copying some modifier data (since we need to ensure particle system copying and remapping of those pointers separately). * Adding as-best-as-possible handling of those cases to `BKE_object_copy_modifier` (note that it remains fragile, but is expected to behave 'good enough' in any practical usecase). * Remove special handling for specific editor code (`copy_or_reuse_particle_system`). This should never have been accepted in ED code area, and is now handled by `BKE_object_copy_modifier`. * Factorize copying of the whole modifier stack into new `BKE_object_modifier_stack_copy`, now used by both `object_copy_data` and `BKE_object_link_modifiers`. Note that this implies that `BKE_object_copy_modifier` and `BKE_object_copy_gpencil_modifier` are now to be used exclusively to copy single modifiers. Full modifier stack copy should always use `BKE_object_modifier_stack_copy` instead. Fix T82945: Crash when dragging modifiers in Outliner. Maniphest Tasks: T82945 Differential Revision: https://developer.blender.org/D10148
2021-01-19Refactor modifier copying code.Bastien Montagne
Things like pointers to particle systems, or softbody data being stored outside of its modifier, make it impossible for internal modifier copy data code to be self-contained currently. It requires extra processing. In existing code this was handled in several different places, in several ways, and alltogether fairly inconsistently. Some cases were even not properly handled, causing e.g. crashes as in T82945. This commit addresses those issues by: * Adding comments about the hackish/unsafe parts `psys` implies when copying some modifier data (since we need to ensure particle system copying and remapping of those pointers separately). * Adding as-best-as-possible handling of those cases to `BKE_object_copy_modifier` (note that it remains fragile, but is expected to behave 'good enough' in any practical usecase). * Remove special handling for specific editor code (`copy_or_reuse_particle_system`). This should never have been accepted in ED code area, and is now handled by `BKE_object_copy_modifier`. * Factorize copying of the whole modifier stack into new `BKE_object_modifier_stack_copy`, now used by both `object_copy_data` and `BKE_object_link_modifiers`. Note that this implies that `BKE_object_copy_modifier` and `BKE_object_copy_gpencil_modifier` are now to be used exclusively to copy single modifiers. Full modifier stack copy should always use `BKE_object_modifier_stack_copy` instead. Fix T82945: Crash when dragging modifiers in Outliner. Maniphest Tasks: T82945 Differential Revision: https://developer.blender.org/D10148
2021-01-19Merge branch 'blender-v2.92-release'Sebastian Parborg
2021-01-19Volumes: fix calling BKE_volume_load from multiple threadsJacques Lucke
`BKE_volume_is_loaded` uses `grids.filepath` to determine if the grids are already loaded. The issue was that `grids.filepath` was set before the grids were loaded, resulting in incorrect early returns for other threads. Differential Revision: https://developer.blender.org/D10150
2021-01-19Geometry Nodes - Object Info: option to apply obj transform to the geometryDalai Felinto
By design the modified object transformations should still work and affect the geometry nodes results. The current behaviour, however, would make the geometry from the object info to not be affected by the modified object transformations. This patch changes that by default. In a similar fashion the Location, Rotation and Scale sockets outputs should be aware of whether the output should be in the global space or in the space of the nodetree. To solve this, the patch introduces a new transformation space "enum" where users can pick "Original" or "Relative" space. Original -------- Output the geometry relative to the input object transform, and the location, rotation and scale relative to the world origin. Relative -------- Bring the input object geometry, location, rotation and scale into the modified object maintaining the relative position between the two objects in the scene. Relative space violates a bit the design of the nodetree. The geometry in this case is transformed so that moving the modified object doesn't interfere with the geometry. This is particularly useful for the boolean node for instance. "Original" is the default space, but old files are set to "Relative" for backwards compatibility. Differential Revision: https://developer.blender.org/D10124
2021-01-19Fix T74755: Cap of curve doesn't have smooth shadingCampbell Barton
Copy the smooth setting when filling in curve caps. For drawing this doesn't change behavior as a single normal is used for all faces. The difference may be noticed when converting to a mesh or with modifiers applied.
2021-01-19Merge branch 'blender-v2.92-release'Campbell Barton
2021-01-19Fix T84041: Bevel caps have invalid normalsCampbell Barton
Bevel caps always had incorrect normals, causing display glitches in some cases. It seems this never worked properly (at least 2.79 also had this bug). Use the projection vector as the normal.