Age | Commit message (Collapse) | Author |
|
Careless use of acos() in spherical coordinates transformation was
deteriorating the precision near zenith (and nadir) and producing
glitchy pixels (best seen in longer focal lengths).
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D8266
|
|
Simply remove that check ob userdef's themes, we are never read any
userdef from startup file anymore, so this check makes no more sense.
To be backported to 2.83.
|
|
Implemented G.moving suggestion from comments.
|
|
This commit adds a new read-only boolean property `Screen.is_scrubbing`.
The related property `Screen.is_animation_playing` is set to `True` in
two situations:
- Animation is actually playing (for example via the Play button in the
timeline)
- The user is scrubbing through time (in the timeline, dopesheet, graph
editor, etc.)
To distinguish between these two cases, the property
`Screen.is_scrubbing` has been added.
Concept approved by @brecht.
|
|
It was already possible to create Sound and Image strips that reference
non-existing files. Now it's also possible to create Movie strips
referencing missing files via the Python API call
`Sequences.new_movie()`. In this case, the duration of the strip will be
set to 1 frame.
Note that this commit does not change anything in the user interface.
The Python API of the `MovieStrip` class is extended with a function
`reload_if_needed()`. This function only performs disk I/O if the movie
strip cannot produce frames, that is either when its filepath points to
a non-existing file, or when the video sequence editor has not been
shown yet (for example because it is in an inactive workspace).
This allows for the following:
```
import bpy
scene = bpy.context.scene
vse = scene.sequence_editor_create()
filepath = bpy.path.abspath('//demo.mkv')
strip = vse.sequences.new_movie("movie", filepath,
channel=2,
frame_start=47,
file_must_exist=False)
strip.frame_final_end = 327
```
This will create a new movie strip, even when `demo.mkv` does not exist.
Once `demo.mkv` has appeared at the expected location, either
`strip.reload_if_needed()` or `strip.filepath = strip.filepath` will
load it.
Differential Revision: https://developer.blender.org/D8257
Reviewed By: Sergey, ISS
|
|
overrides.
This is long work, we are still likely missing a lot of cases...
|
|
|
|
I don't see the need for a BVH Tree to have root but not have leafs.
But apparently this case is possible.
|
|
Called when canceling a transform operation.
|
|
|
|
|
|
This function is more expansive than the simpler `rna_ensure_property()`
one, and should only be used when IDProperty data is actually needed.
If one only needs to ensure it has a valid PropertyRNA pointer,
`rna_ensure_property()` is much more efficient.
Also add compiler warnings when results of those functions are unused,
this should never be the case.
|
|
Only consider a full IDProperty as set if it actually exists in given
PointerRNA data.
|
|
The warnings were introduced in rB725973485a909c2b732c5.
|
|
Clang Tidy reported a couple of false positives. I disabled
those `NOLINTNEXTLINE`.
Differential Revision: https://developer.blender.org/D8199
|
|
This was introduced in rB403384998a6bb5f428e15ced5.
|
|
|
|
The code was actually correct, but clang tidy complaint about
using the Vector after it was moved from.
|
|
Differential Revision: https://developer.blender.org/D8091
|
|
Differential Revision: https://developer.blender.org/D8091
|
|
When using the sun, we need to sun sampling logic to avoid excessive
sampling map resolution, but that logic assumes that the Vector input
comes from the view direction.
That is the case in the vast majority of cases anyways, so the easiest
solution is to just remove the input for that case.
Differential Revision: https://developer.blender.org/D8091
|
|
For animation/driver purposes, being able to go outside of the 0-360
range makes things easier.
Differential Revision: https://developer.blender.org/D8091
|
|
|
|
|
|
The force node can now be used to control the behavior of particles.
Forces can access particles attributes. Currently, there are three attributes:
`Position` (vector), `Velocity` (vector) and `ID` (integer).
Supported nodes are: Math, Vector Math, Separate Vector, Combine Vector and Value.
Next, I'll have to split `simulation.cc` into multiple files and move
some stuff out of blenkernel into another folder.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This required a little bit of refactoring, because we were using c-only
syntax for the gpu shader names. All tests are still passing.
|
|
Instead of using the mouse cursor position,
this selects between existing selected elements.
Access this since picking a selection path doesn't
work from the menu.
|
|
|
|
|
|
This is no longer used by default, when '--python-use-system-env' is set
there are many Python environment variables, don't list them in
Blender's help message.
|
|
This reverts commit 39b525e0f07fa25dcda54226ade789959b642dec and
3121015dceb1d269d79690c8f15c8e1406c9b09f as tests are failing.
|
|
For the active frame it was using always a value of 1.0 and it was not using the curve.
|
|
Some core BMesh topology changing functions were not properly tagging
custom normal runtime caches as dirty...
|
|
Make sure that proxy and original images are scaled to same size before
applying offset or crop.
During testing, I discovered, that raw cache will lose information whether
this image was proxy or not. Because of this, proxy images will not create
this cache type. It would be fairly easy to implement this functionality for
cache, but I have decided to not do it now, because I did not want to pass yet
another mostly hard-coded bool flag to cache system. Since image is proxy, it
should be fast to read anyway.
In case of using offset property, code was modified to make sure we scale
image only once. I also tried to make code more readable and streamlined and
cleaned up surrounding functions a bit.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D8203
|
|
Stop prefetching before changing content of seqbase.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D8256
|
|
seq->strip was overwritten in python API function.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D8204
|
|
This adds `blender::RandomNumberGenerator` in `BLI_rand.hh`.
Furthermore, `RNG` is now implemented in terms of this new generator.
No functional changes are expected, the generated random numbers
are not changed by this commit.
Reviewers: campbellbarton, brecht
Differential Revision: https://developer.blender.org/D8259
|
|
Time will tell whether we need to expose more RNA override flags here.
Implements/Fix T78534.
Differential Revision: https://developer.blender.org/D8250
|
|
|
|
The triplet static RNA / runtime RNA / custom properties is a real pain to
deal with...
Using the new `PropertyRNAOrID` struct helps clarifying and properly
dealing with all three cases.
Note that this makes override of py-defined RNA properties working
(support for that will be committed next).
Differential Revision: https://developer.blender.org/D8249
|
|
Introduce new PropertyRNAOrID structure, storing most useful data about
an 'opaque' PropertyRNA in relation with a given PointerRNA struct.
It deals with all the three cases (pure static RNA, runtime RNA where
data is actually stored in IDProperties, and pure IDProperties, aka
custom data.
|