Blender Git Loki

Blender Git "asset-browser" branch commits.

Page: 13 / 27

March 15, 2021, 16:02 (GMT)
Cleanup: pose library, remove unused includes

No functional changes.
March 15, 2021, 16:02 (GMT)
Pose blending: also apply rounding to floats

My code for interpolating booleans basically performed the same function
as the rounding for ints and enums. Now the code is the same, too.

No functional changes
March 15, 2021, 16:02 (GMT)
Add operator `POSELIB_OT_blend_pose` for interactive pose blending

The operator doesn't blend yet, but it does allow temporarily applying the
pose, switching between the original and the given pose with Tab, applying
the pose with Enter/LeftClick, and cancelling with Esc/RightClick.
March 15, 2021, 16:02 (GMT)
Rough implementation for temp-loading poses from C

The code needs some cleanup, as the temp-loading of asset datablocks needs
to be separated from the pose library code.
March 15, 2021, 16:02 (GMT)
Cleanup: remove unused code and rename variables/fields

No functional changes.
March 15, 2021, 16:02 (GMT)
Pose library: add simple blending of pose Action onto current pose

Naieve blending of the pose Action onto the current pose. This performs
linear blending (LERP) per FCurve. This is not suitable for rotations, so
it's probably better to do proper matrix interpolation for loc/rot/scale.
However, for other properties, the current LERP will be necessary anyway.
March 15, 2021, 16:02 (GMT)
Pose library: Use scrollwheel to set the blend factor

This is not the final UI, but gives a way to at least set it to some value.
March 11, 2021, 17:05 (GMT)
Do proper updates when local asset data changes

Makes sure the asset list is updated and redrawn correctly an local asset data
changes: Creating assets, removing assets, clearing assets, undo/redo, reading
files (with and without UI), parallel reading of asset data from files, ...

For redraws there now is a listener callback in the uiList type (C only) that
asks the asset lists if it needs a redraw after a given notifier. For the case
of asset data-block removal there is a ID remapping function in the asset list
now (just tags the list for a complete re-read). File reading, undo, redo and
the "Mark Asset"/"Clear Asset" operators explicitly tag asset lists showing
main data as dirty (via the global asset storage).
March 11, 2021, 16:50 (GMT)
Merge branch 'master' into ui-asset-view-template
March 11, 2021, 13:58 (GMT)
Merge branch 'master' into ui-asset-view-template
March 9, 2021, 17:58 (GMT)
Support passing ID type filter to the template

The ID type filter can be set as follows:
```
template_asset_view(..., filter_id_types={'filter_material', 'filter_object'})
```

I would have prefered if you could just create a
`bpy.types.AssetFilterSettings` object, fill that and pass it to the
template. But that doesn't seem possible right now without more complex
BPY additions.
Also, newer ID types (hair, point cloud, volume and simulation IDs) do
not support filtering, because their filtering flags exceed 32, meaning
we have to store them in 64 bit integers which RNA doesn't support for
enum properties...
March 9, 2021, 13:59 (GMT)
Merge branch 'master' into ui-asset-view-template
March 4, 2021, 15:29 (GMT)
Fix items not showing up if the preview is missing

No reason to skip adding the UI elements just because the preview is missing.
We can still show the text and allow dragging. Also makes it feel more
interactive while the previews load in a background thread.
March 4, 2021, 14:57 (GMT)
Add own button/widget type for the asset previews

The new button type (UI_BTYPE_PREVIEW_TILE) shows the items similar to
the Asset Browser, or the File Browser in thumbnail display mode. That
is, previews bigger than normal buttons, with the name drawn centered
below it.

Would be nice if the File/Asset Browser and preview templates could
adopt that new button type, so that there's no ad-hoc drawing for these
anymore. That's for a future cleanup though.
March 3, 2021, 20:44 (GMT)
Properly support mouse-selecting items in the asset view list

This was very glitchy before and just didn't work in most cases. The mouse
press event was simply caught by the preview icon button and didn't make its
way to the underlying list-row button.
March 3, 2021, 17:15 (GMT)
Cleanup: clang tidy

Warning: else-after-return/break
March 3, 2021, 17:15 (GMT)
Cleanup: clang tidy

Can use const parameter.
March 3, 2021, 17:15 (GMT)
EEVEE: Add ensure_valid_reflection to glossy closures

This is ported from Cycles and fixes issues with bump/normal mapping
giving weird reflections/lighting.

Fixes T81070 Specular light should be limited to normal pointing toward the camera
Fixes T78501 Normal mapping making specular artifact
March 3, 2021, 17:15 (GMT)
Fix compiler issues introduced in recent commit.

{73af762e9cd595ea708647c02c7e74752d844e80}
March 3, 2021, 17:15 (GMT)
EEVEE: SSS: Fix light leaking bewteen object at different depths

The SSS shader in Eevee has the following drawbacks (elaborated in {T79933}):

1. Glowing
2. Ringing. On low SSS jittering it is rendered a bunch of sharp lines
3. Overall blurriness due to the nature of the effect
4. Shadows near occlusions as in T65849
5. Too much SSS near the edge and on highly-tilted surfaces

{F9438636}
{F9427302}

In the original shader code there was a depth correction factor, as far as I can understand for fixing light bleeding from one object to another. But it was scaled incorrectly. I modified its scale to depend on SSS scale*radius and made it independent from the scene scale. The scale parameter (`-4`) is chosen so that it makes tilted surfaces to have visually the same SSS radius as straight surfaces (surfaces with normal pointed directly to the camera).

This depth correction factor alone fixes all the problems except for ringing (pt. 2). Because of float-point precision errors and irradiance interpolation some samples near the border of an object might leak light, causing sparkly or dashed (because of aliasing) patterns around the highlights. Switching from `texture()` to `texelFetch()` fixes this problem and makes textures on renders visually sharper.

An alternative solution would be to detect object borders and somehow prevent samples from crossing it. This can be done by:
1. Adding an `object_id` texture. I think it requires much more code changing and makes the shader more complicated. Again, `object_id` is not interpolatable.
2. Watch gradient of depth and discard samples if the gradient is too big. This solution depends on scene scale and requires more texture lookups. Since SSS is usually a minor effect, it probably doesn't require that level of accuracy.

I haven't notice it in practice, but I assume it can make visible SSS radius slightly off (up to 0.5 px in screen space, which is negligible). It is completely mitigated with render sampling.

Reviewed By: Cl�ment Foucault
Differential Revision: https://developer.blender.org/D9740
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021