Blender Git Loki

Blender Git "depsgraph_refactor" branch commits.

Page: 20 / 59

December 4, 2014, 13:20 (GMT)
Tidy up code for attaching drivers/params to transforms

* Previous object-level hack for transform drivers is now done only
if the driver isn't affecting a posechannel instead
* Remove debug prints
December 4, 2014, 13:20 (GMT)
Drivers interleaved with bones seem to work now

More testing is needed, but for now, it seems that this finally works.
Other cases will need to be manually added later, but for a proof of
concept, this is working well already.

TODO: The drivers -> object transform link is superflous in this case...
December 4, 2014, 12:52 (GMT)
Depsgraph: Update armatures when leaving edit mode

The idea is to have proper operation nodes after editing the armature.

This isn't so trivial as it sounds to be, because:

- Dependency graph is being built from the pose channels, which means
adding/deleting bones are not visible to the depsgraph because those
operations doesn't rebuild pose.

- Updating pose after every topology change is rather costy and better
to be avoid.

Currently experimenting with rebuilding dependency graph when leaving
edit mode. This way i can work on partial graph rebuild which would
be really handy for such relations edits.

For now this partial update is rather a place holder and it invokes
full dependency graph rebuild. Actual partial rebuild brains would
be implemented as one of the next steps.

However all this work unleashed rather fundamental questions:

- it is already known that dependency graph uses pose channels for
building.

- Pose channels are being passed to the callback functions as arguments.

- One of operation nodes rebuilds the pose when it's missing or when
it's tagged for update.

- Hrm, ok. Now, what if the pose is tagged for update and some topology
changed? This could change some pose channel pointers leading to the
bad memory access in the callback.

How do we solve this?

- A bit easier question: What should operations do if armature is
edit mode?

Simplest answer would be to copy matricies from bones, skipping
pose rebuild, eval init, pose callbacks and eval flush callbacks.
December 4, 2014, 11:15 (GMT)
Depsgraph: Add check for whether graph was properly tagged for rebuild

Currently it's more like a preliminary check to catch obvious errors based on
comparing number of operations in current depsgraph and correct one. Ideally
relations and nodes themselves should be checked deeper,but that's NP-complex
problem which probably doesn't worth solving for now.

This check is commented out by default, uncomment it in BKE_scene_update_tagged
if needed.
December 4, 2014, 03:41 (GMT)
Fix for typo
December 4, 2014, 03:41 (GMT)
Drivers and their relationships are now included in the depsgraph

* Each driver now gets added as a separate opnode

* ID-block targets (e.g. object ref for Transform Channel/Location Diff/Rot Diff)
now get included when building the links
(TODO: local space vs world space may be able to benefit from getting special
exceptions for depending on intermediate results instead)

* Added temporary hook from "parameters" component (where drivers live) to
"transform" component, as is done for animation now. This will need to change,
to have greater granularity for bones, but at least this works now.

* Copied over the logic for evaluating drivers in full from the animsys code.
(This stuff should eventually go back into blenkernel though)
December 3, 2014, 23:21 (GMT)
Use just a single combined blackbox opnode for Action + NLA
December 3, 2014, 13:12 (GMT)
Depsgraph: Add scene.depsgraph_rebuild()

This could be handy for the time being all the areas does proper
tag for relations rebuild.
December 3, 2014, 13:05 (GMT)
Depsgraph: Remove simulation API

It was only needed for the time being no callbacks were filled up,
and this API was only running dummy operations which i basically
sleep for random number of milliseconds.

Now we've got real callbacks and don't need simulation any more.
December 3, 2014, 11:55 (GMT)
A counter-kludge to work around linking problems our __finite() wrapper not being found
December 3, 2014, 11:36 (GMT)
More mingw64 & c++11 - Python vs Math (::hypot) issue
December 3, 2014, 11:14 (GMT)
More mingw64 & c++11 fixes - Compiler didn't like isnan() -> _isnan()
December 3, 2014, 11:12 (GMT)
More mingw64 & c++11 math fixes

M_PI was undefined for some reason - probably one of the headers undefines it
or something. Nevertheless, this is the quickest fix to get this working
December 3, 2014, 11:11 (GMT)
Silence compiler warning about unclosed comments
December 3, 2014, 11:00 (GMT)
More compile fixes for mingw64

Swapping order of Python and cmath includes again for audaspace
December 1, 2014, 11:28 (GMT)
More mingw64 and c++11 fixes - hypot() is not defined

Fix is from the following thread(s):
* http://bugs.python.org/issue11566
* http://boost.2283326.n4.nabble.com/Boost-Python-Compile-Error-s-GCC-via-MinGW-w64-td3165793.html#a3166760

I haven't managed to fix this for all files here yet (this only fixes half of the files
for the freestyle module), so in the meantime, it'll be necessary to disable
the freestyle module. The same goes for Audaspace, which fails on the C APi currently.
December 1, 2014, 05:46 (GMT)
Hacky kludge fixes to get mingw64 to compile - "finite()" issues

* finite() is not defined on mingw64 when using c++11

* isfinite() can be used instead, but, to use it, you need to
#include <cmath> and using std::isfinite;
to each offending file where finite() may get called,
which is basically every file that includes
BLI_math.h ==> math_vector_inline.c

* In this patch, we define our own wrapper for finite() (via the
C code in blenlib, which is free of all this C++ crapiness),
which the C++ code can then feast on.

The name though needs 2 underscores, as the single-underscore
version (_finite) causes conflicts with symbols from dll's
(i.e. most likely conflicting with the MSVC _finite(), which
mingw-C++11 *still* doesn't see either).
November 28, 2014, 11:57 (GMT)
Compile fixes for mingw64

Need to set flags to use c++11 features, or else the
std::bind stuff isn't available
November 28, 2014, 10:42 (GMT)
Depsgraph: Code cleanup, fix typos
November 28, 2014, 10:18 (GMT)
Merge branch 'master' into depsgraph_refactor
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021