Age | Commit message (Collapse) | Author |
|
Now modifier takes a segments parameter.
Bevel edge weights will multiply the overall amount.
For vertex-only, you can give a vertex group name,
and the weights in that will multiply the overall amount.
|
|
|
|
* BCon1, alpha. New features, extensive breakage...the usual thing. :)
|
|
- Version bump to 2.66
- Splash image by Lucas Falcao, selected by Jonathan Williamson, Andrew Price
and Bart Veldhuizen.
|
|
threads (which can be slow)
|
|
This is a pretty rare case that can be triggered by switching rigid body
and constraint groups before simulation was validated.
Code checked for existing physics objects but was missing else block.
|
|
In rare cases this would allow the simulation to run before being
initialized (if cache is baked and reading cache fails after undo or
loading a file).
|
|
autocomplete is now unicode aware, using python api's checks for now. eventually we should have our own.
|
|
thanks!)...
|
|
Before this change only old flag "Premultiply" was used to
detect alpha mode, which is not enough actually.
Now the logic here is:
- If "Premultiply" was enabled it is likely float image with
straight alpha, which shall be premultiplied before usage.
In this case image/sequence Alpha Mode is set to Straight.
- Otherwise use default alpha mode for image format based on
an extension. This could fail in some cases like TIFF, but
this wasn't handled fully correct in older blender anyway.
Initial discovered issue was that EXR images saved in older
Blender versions were set to Straight alpha mode, which is
obviously a straight way to lots of headache.
|
|
This was caused by a floating point precision error. During collision detection, Newton-Raphson iteration is used to find the exact time of the collision. But when using subframes, the initial Newton step was too small. Now the initial step is given in absolute units. When subframes = 0, this should behave almost the same as before.
Thanks to Janne Karhu, Lukas Toenne and Ton Roosendaal for their help with this patch, and to AutoCRC for funding.
|
|
alpha was used for them which doesn't work for cleaned footage stored
in EXR file format.
Perhaps we need to support configurable alpha mode for clips, but
that's for later (maybe even after release),
|
|
Calculate dependent area based on distortion model rather than
using 15% of image resolution for this.
Some assumptions here:
- We're assuming real-life camera calibration is used here
- Maximal undistortion delta would be achieved on frame boundary
- Distortion fully goes inside frame
This makes it possible to approximate margin for distortion by
checking undistortion delta across frame boundary and use it
for dependent area of interest.
We do not use any formula-based equation here because we're likely
support other distortion models and in that case it'll be stupid
to try detecting formula here.
|
|
Since BKE_object_where_is_calc() might be called outside of
scene_update_tagged_recursive(), we need to fall back to the scene's
rigid body world.
|
|
Sv.Lockal, Gabriel Gazzán and Satoshi Yamasaki, thanks!
|
|
|
|
BKE_object_where_is_calc_time_ex() so extra arg is at the end (loose convention for *_ex() funcs). also some style cleanup.
|
|
Copying scenes didn't handle rigid body worlds previously.
Since we use groups to keep track of objecs in the rigid body sim it's
tricky to do the right thing here since groups aren't duplicated.
One option would be to create new groups and add the duplicated objects
into those but that has other drawbacks.
So the rigid body world isn't copied for now.
TODO find a better way of handling this.
|
|
|
|
Since rigid bodies need their world to be be updated correctly we now
pass it alongside the parent scene in scene_update_tagged_recursive().
Add BKE_object_handle_update_ex() as well as other object functions
that take a RigidBodyWorld for this.
Ideally this shouldn't be needed but we'd have to restructure scene
handling for that. It's not a small taks however and definitely not
something that can be done before release.
Thanks to Campbell for review.
|
|
Now we flag the world for update on frame change and only call
BKE_rigidbody_do_simulation() when needed.
|
|
sculpt.
|
|
This was caused by multiple instantiations of the same basic problem. The
rigidbody handling code often assumed that "scene" pointers referred to the
scene where an object participating in the sim resided (and where the rigidbody
world for that sim lived). However, when dealing with background sets, "scene"
often only refers to the active scene, and not the set that the object actually
came from. Hence, the rigidbody code would often (wrongly) conclude that there
was nothing to do.
For example, we may have the following backgound set/scene chaining scenario:
"active" <-- ... <-- set i (rigidbody objects live here) <-- ... <-- set n
The fix here is a multi-part fix:
1) Moved sim-world calculation from BKE_scene_update_newframe() to
scene_update_tagged_recursive()
+ This is currently the only way that rigidbody sims in background sets will
get calculated, as part of the recursion
- These checks will get run on each update. <--- FIXME!!!
2) Tweaked depsgraph code so that when checking if there are any time-dependent
features on objects to tag for updating, the checking is done relative to the
scene that the object actually resides in (and not the active scene). Otherwise,
even if we recalculate the sim, the affected objects won't get tagged for
updating. This tagging is needed to actually flush the transforms out of the
RigidBodyObject structs (written by the sim/cache) and into the Object
transforms (obmat's)
3) Removed the requirement for rigidbody world to actually exist before we can
flush rigidbody transforms. In many cases, it should be sufficient to assume
that because the object with rigidbody data attached has been tagged for
updates, it should have updates to perform. Of course, we still check on this
data if we've got it, but that's only if the sim is in the active scene.
- TODO: if we have further problems, we should investigate passing the
"actual" scene down alongside the "active" scene for BKE_object_handle_update().
|
|
|
|
Now we do simple triangulation and calculate signed area of triangles to
account for concave polygons.
This only works correct for planar polygons but gives better results
overall.
|
|
Fixes small precision problems.
|
|
The mask was initialized using texture values, while it needed to be
opaque.
|
|
Error since July 2005, when DerivedMesh was introduced.
Vertex and Face duplicators now work for all modifiers. (not only deformers).
For example mirror and array modifier didn't work.
|
|
clicking a pair chars would select 3 - one to the left).
|
|
float/byte render results were mixed.
|
|
|
|
|
|
produced way too high values. Now values are also clamped within correct range.
|
|
disappear from the simulation.
|
|
|
|
|
|
|
|
are not so common.
|
|
Applied patch by jehan after confirming the issue.
Thanks for the patch!
|
|
|
|
This will preserve constraint <-> rigid body realationships so
constraint setups aren't broken after duplication.
Based on a patch by Brandon Hechinger (jaggz), thanks.
|
|
The use alpha option moved from the texture datablock to the image, and now it
will duplicate the image datablock in case you have one texture using alpha and
the other not.
|
|
|
|
|
|
Linked Armature with local proxy, using feature "Custom shape at other bone" stopped working
on undo/redo.
It was actually a bug in the original commit (r26600, april 2010), storing a pointer from
the library bone into the local proxy bone.
That's strictly forbidden in Blender, but it never showed up because on every undo-redo a
complete proxy-sync was called again. To allow undo/redo I had to disable this syncing,
except for file load. Hence the feature got lost :)
The fix is simple; just store the pointer to its own local bone instead.
|
|
zero errors.
|
|
* Bump BLENDER_SUBVERSION to "10", to reflect changes in r54304. (Compositor Translate Node)
|
|
render thread,
and rename ToggleRender to set_resolution to follow RNA conventions.
|
|
|
|
Issue was caused by couple of circumstances:
- Normal Map node requires tesselated faces to compute tangent space
- All temporary meshes needed for Cycles export were adding to G.main
- Undo pushes would temporary set meshes tessfaces to NULL
- Moving node will cause undo push and tree re-evaluate fr preview
All this leads to threading conflict between preview render and undo
system.
Solved it in way that all temporary meshes are adding to that exact
Main which was passed to Cycles via BlendData. This required couple
of mechanic changes like adding extra parameter to *_add() functions
and adding some *_ex() functions to make it possible RNA adds objects
to Main passed to new() RNA function.
This was tricky to pass Main to RNA function and IMO that's not so
nice to pass main to function, so ended up with such decision:
- Object.to_mesh() will add temp mesh to G.main
- Added Main.meshes.new_from_object() which does the same as to_mesh,
but adds temporary mesh to specified Main.
So now all temporary meshes needed for preview render would be added
to preview_main which does not conflict with undo pushes.
Viewport render shall not be an issue because object sync happens from
main thread in this case.
It could be some issues with final render, but that's not so much
likely to happen, so shall be fine.
Thanks to Brecht for review!
|