By removing the check we make it possible to render volume objects
even if the shader doesn't require any volume attribute.
We still check if there is any attribute to not draw empty
volume objects that have no attribute as a unit cube.
Fix#103683
On export, PLY creates a matrix (in `set_world_axes_transform`) -- the
inverse transpose of the regular matrix [seems like the usual way of
transforming normals]] -- by which the normals are multiplied. This can end
up in non-normalized custom normals on scaled objects though. Corrected
in this PR by just normalizing after said multiplication.
On import, `BKE_mesh_set_custom_normals_from_verts` is used with the raw
data -- which ends up in `mesh_normals_corner_custom_set` which in turn
"is expected to have normalized normals" (from the comment).
We _could_ also make sure to normalize on import, however, setting these
properly on export seems the primary choice.
Other importers also dont go the extra route of making sure to normalize
the incoming data, so this seems to be in line of what other Im-/Exports
do.
Pull Request: https://projects.blender.org/blender/blender/pulls/122432
Unlike to `lookup_or_default` accessor methods of `Map` or attribute provider class,
`Span::get` is not so explicit and self described to be used with default value.
Other one issue was is that result is by value. But this is not the main reason to
delete this method. And although this can be fixed by reference, this is still not
such good to just have method to check index and return something.
Pull Request: https://projects.blender.org/blender/blender/pulls/122425
When online mode is enabled and the preferences are shown,
the users needed to manually check for updates.
Now this runs in the background, sharing logic with checking for
updates on startup.
When updates run status text is currently shown in the preferences
window, eventually this should be displayed in the status bar.
To avoid conflicts when updating a queue is used to avoid problems
caused by check for updates on startup & the preferences window also
checking for updates. Since checking for updates is optional it's
possible some repositories wont be handled by checking on startup
so both updates run for now. De-duplicating update checks can be
supported eventually.
The GPv2 draw tool used a setting called "Input Samples" to
generate points (subdivisions) when two samples are far apart
from one another.
In GPv3 we have the same feature, but with a bit more control.
Users can now specifiy the maximum distance between two
points based on a percentage of the brush size (in pixels).
There were some issues in this function.
* Undefined behavior for the fallback when getting the `layer_src`
* Searching for the layer `grease_pencil_dst` based on the value of a pointer, instead of the `name`.
Pull Request: https://projects.blender.org/blender/blender/pulls/122426
To reduce network bandwith and to only bother users once a day with
add-on updates. All repos are checked together so that there is only
one notification per day.
Also tweaked the wording so that it's more clear this will not actually
install the updates.
Ref !121888
Fix for sculpt mode: invert visible hides all faces with Multires modifier #95419
Grids face indices should not change on the fly based on hidden state.
It caused the rendering glitches shown on the original bug report and the attached recordings.
* this PR removes the unnecessary check and dependency of grids visibility with the smooth/sharp of faces.
* replaces smooth flag for sharp flag which better express the intent and simplifies the logic.
Pull Request: https://projects.blender.org/blender/blender/pulls/121929
Add > Utilities submenus for Color and Field do not include assets from the
correctly named catalogs due to typos: "Utilties/Color" and "Utilties/Field"
respectively.
Pull Request: https://projects.blender.org/blender/blender/pulls/122416
- `BMLayerItem.copy_from(other)` had a typo in its docstring that prevented `other` being typed.
- `BMesh.from_object()` and `BMesh.from_mesh()` had untyped arguments.
- `BMVert.copy_from_vert_interp()`'s `fac` argument was untyped.
- `remove(item)` method of `BMVertSeq`, `BMEdgeSeq` and `BMFaceSeq` had no type for `item`.
- `get()` method of `BMEdgeSeq` and `BMFaceSeq` had "sequence" in the description of `verts` but not in the type.
Pull Request: https://projects.blender.org/blender/blender/pulls/122374
- Layout changes
- Use panels instead of boxes resulting in a more compact UI,
more suitable to the drag-and-drop UI.
- Make all enum options to drop-down menus.
- Rename the title of `Position` box to `Transform`.
- Remove sub-headers `Plane dimensions`,
`Orientation` under Transform box.
- Move offset related options to the bottom. Importing a single
plane would be more common use case.
- Rename "Animate Image Sequences" to "Detect Image Sequences".
- Rename several labels and option names. Since drop-down allows more
space, make some option names verbose.
- Remove the warning `'Opaque' does not support alpha`. It should be
obvious from usual Blender usage, and doesn't need a special warning
from the add-on.
- Disable Alpha Mode options instead of hiding it when use alpha is
unchecked.
- Hide Track Camera option instead of disabling it when supported
align modes are selected.
- Fix or rewrite several tool-tips.
Original PR by Sun Kim: blender/blender-addons!104936
Ref: !122345
Co-authored-by: Sun Kim <perplexing.sun@gmail.com>
Removing the check for an empty repository list isn't correct when
only polling the active repository. Restore the check with a more
detailed error message.
Move the loop over all affected nodes to each brush implementation,
making use of lambdas to avoid a bunch of boilerplate code. This makes
it clearer what logic actually depends on the vertices in each node, and
decreases future overhead if we decide to make PBVH nodes smaller.
Access the vertex to face map directly from the mesh as necessary.
This helps to prevent unnecessary calculation (it isn't necessary in
weight paint mode besides the blur brush anymore), though it is
used for vertex normals calculation for smooth-shaded meshes.
`ss.vert_positions` and `pbvh.vert_positions` are expected to point to the
same evaluated deformed position array here. It's preferrable to use the
span we already have locally. Though eventually we hope to remove the
vertex position array from PBVH.
Reading the selection is much cheaper than calculating the brush radius
since it just requires reading from a boolean array. Better to do it earlier
so the radius calculation can be skipped for deselected points.
Multires isn't supported here anyway, and if it was it would look very different
because the weights and colors would probably be stored on the subdivided
grids somehow. For now this code is just confusing and gets in the way. It
also mixes up the purpose of the PBVH iteration macro abstraction.
Blender is offline by default. There is no need to mention that unless the user
went out of their way to make it offline (with the --offline-mode argument).
This is still waiting for the offline icon #122225. Using the internet
icon meanwhile.
Co-authored by Pablo Vazquez.
---
Pull Request: https://projects.blender.org/blender/blender/pulls/122392
This was caused by #122255 which used the normal
to tag the translucent with thickness case. But
this normal is then overwritten during the first
call to `light_eval_single`.
This patch moves the tag to a special type of
`LightingType` which then gets flushed to
`LIGHT_DIFFUSE` when used.
Pull Request: https://projects.blender.org/blender/blender/pulls/122400
Fix for #121890
The image shows testing results with "green" texture. It is expected that
all vectors are displaced along Y axis.
Cases are "no displacement", "tangent", "object" and "world" spaces.
Results are consistent with Cycles.
Pull Request: https://projects.blender.org/blender/blender/pulls/122376