Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-04-09View3D: disable LOD when game engine is disabled or ifdef'dCampbell Barton
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-31Code cleanup: use boolCampbell Barton
2014-03-30Code cleanup: de-duplicate cotangent weight function & add arg sizesCampbell Barton
2014-03-24Fix T39318: Blender 2.70 crash when I link an assetSergey Sharybin
Issue is a regression since threaded objetc update and caused by the fact that some objects might share the same proxy object. It's all fine but object_handle_update() will call update for a proxy object which screws up threaded update. The thing is, proxy object is marked as depending on a scene object and such a call makes it so the children objetc is being updated. This is really bad and depsgraph is to take all responsibility on updating the proxy objects. So for now used a simple solution (which is safe to backport to 'a') which is skipping proxy update if the scene update is threaded and based on the DAG traversal. There are some still areas which calls object update directly and for that cases proxy object is still being updated from object_handle_update().
2014-02-05Fix T35328: Disk caches of multiple particle systems on a single object ↵Sergey Sharybin
overwrite each other It was intended to work actually using particle cache's stack index but this index might have been calculated incorrect in special case: * With default cube scene, add particle system to the cube * Add disk cache to the particle system * Save file and reload it * Add another particle system and enable disk cache This would lead to two point caches with the same stack index of zero. This happened because point cache indices list wasn't stored in the .blend file so once you've reload your file blender doesn't know anything about number or point caches used. And what was even more confusing is that point cache indices list was trying to be load from the file, but this failed because it wasn't in the file. This commit solves the root of the issue which is ability of producing .blend file with two point caches using the same disk cache. This is done by making it sure that point cache indices list is stored in the .blend file. And also made it so disabling disk cache will tag it to recalculate stack index. Old broken files wouldn't magically start working, but fixing them is rather simple manually by toggling Disk Cache option. Reviewers: lukastoenne, brecht CC: sergof Differential Revision: https://developer.blender.org/D286
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-01-29Fix T38358: Face snapping fails on Orthographic viewBastien Montagne
Issue is caused by start point of ray used to detect faces under the mouse is set rather far away in ortho 3dviews. The loss of precision on the ray location induced by this can lead to face snapping failures. Solution is to do the raycasting with a temp start point, much closer to the object we check, and add back to the found distance the diff to the real start point once detection is done (as we need all hit distances from all tested objects to be relative to a common point!). Note this commit only addresses the "face snapping on mesh" case, other kind of snapping do not seem to suffer from this issue. Reviewers: brecht, campbellbarton Differential Revision: https://developer.blender.org/D268
2014-01-14Empties with Images draw type: add support for movies and image sequencesGeoffroy Krantz
This adds an ImageUser to such empties with all the typical settings. Reviewed By: brecht, campbellbarton Differential Revision: https://developer.blender.org/D108
2014-01-09Code cleanup: remove BKE_object_where_is_calc_simul function.Brecht Van Lommel
It doesn't make any sense anymore with the current depsgraph and probably was not useful for a long time, just a leftover from the pre 2.04 game engine.
2013-12-26Threaded object update and EvaluationContextSergey Sharybin
Summary: Made objects update happening from multiple threads. It is a task-based scheduling system which uses current dependency graph for spawning new tasks. This means threading happens on object level, but the system is flexible enough for higher granularity. Technical details: - Uses task scheduler which was recently committed to trunk (that one which Brecht ported from Cycles). - Added two utility functions to dependency graph: * DAG_threaded_update_begin, which is called to initialize threaded objects update. It will also schedule root DAG node to the queue, hence starting evaluation process. Initialization will calculate how much parents are to be evaluation before current DAG node can be scheduled. This value is used by task threads for faster detecting which nodes might be scheduled. * DAG_threaded_update_handle_node_updated which is called from task thread function when node was fully handled. This function decreases num_pending_parents of node children and schedules children with zero valency. As it might have become clear, task thread receives DAG nodes and decides which callback to call for it. Currently only BKE_object_handle_update is called for object nodes. In the future it'll call node->callback() from Ali's new DAG. - This required adding some workarounds to the render pipeline. Mainly to stop using get_object_dm() from modifiers' apply callback. Such a call was only a workaround for dependency graph glitch when rendering scene with, say, boolean modifiers before displaying this scene. Such change moves workaround from one place to another, so overall hackentropy remains the same. - Added paradigm of EvaluaitonContext. Currently it's more like just a more reliable replacement for G.is_rendering which fails in some circumstances. Future idea of this context is to also store all the local data needed for objects evaluation such as local time, Copy-on-Write data and so. There're two types of EvaluationContext: * Context used for viewport updated and owned by Main. In the future this context might be easily moved to Window or Screen to allo per-window/per-screen local time. * Context used by render engines to evaluate objects for render purposes. Render engine is an owner of this context. This context is passed to all object update routines. Reviewers: brecht, campbellbarton Reviewed By: brecht CC: lukastoenne Differential Revision: https://developer.blender.org/D94
2013-12-25Fix T37709: Memory corruption when freeing custom bone shape objectsSergey Sharybin
Summary: Issue was caused by access to pchan->custom object from channel free function when freeing all objects from main. Order of objects free is not defined and such an access might easily end up with access to freed memory. We don't need to do user counter stuff when freeing main, so added an _ex functions with do_id_user flag which is used when freeing main. We had the same issue with other datablocks, so now it should be easier to support relevant user counter. This issue was caused by the fix for T36391, so perhaps that's indeed high time to do real user counter. Reviewers: brecht, campbellbarton Reviewed By: campbellbarton Maniphest Tasks: T37709 Differential Revision: https://developer.blender.org/D137
2013-12-18Game Engine: Level of detail support and toolsDaniel Stokes
Levels of detail can be added and modified in the object panel. The object panel also contains new tools for generating levels of detail, setting up levels of detail based on object names (useful for importing), and clearing an object's level of detail settings. This is meant as a game engine feature, though the level of details settings can be previewed in the viewport. Reviewed By: moguri, nexyon, brecht Differential Revision: http://developer.blender.org/D109
2013-10-16edits to r60777 - move ED_object_hook_reset_do into BKE object (if RNA needs ↵Campbell Barton
to call ED_* functions its a hint they might be better in BKE).
2013-09-09Enable vertex snapping to bundle positionsSergey Sharybin
This means it's possible now to snap stuff to reconstructed tracks positions.
2013-09-02support for vertex parenting in object mode for object types which support ↵Campbell Barton
it (mesh, lattice, curve, surface) previously this had to be done one by one. both single and triagle vertex parents can be made, selected based on distance to the verts. Developer notes: - looks like this was old TODO, enums existed but weren't used. - only meshes currently support using. - added BKE_object_as_kdtree(), may come in handy for similar cases.
2013-08-19Move bevel list and path from Curve to Object datablockSergey Sharybin
I know this is not so much nice to have this guys hanging around in a general Object datablock and ideally they better be wrapped around into a structure like DerivedMesh or something like this. But this is pure runtime only stuff and we could re-wrap them around later. Main purpose of this is making curves more thread safe, so no separate threads will ever start freeing the same path or the same bevel list. It also makes sense because path and bevel shall include deformation coming from modifiers which are applying on pre-tesselation point and different objects could have different set of modifiers. This used to be really confusing in the past and now data which depends on object is stored in an object, making things clear for understanding even. This doesn't make curve code fully thread-safe due to pre-tesselation modifiers still modifies actual nurbs and lock is still needed in makeDispListsCurveTypes, but this change makes usage of paths safe for threading. Once modifiers will stop modifying actual nurbs, curves will be fully safe for threading. Actually, this commit also contains wrapping runtime curve members into own structure This allows easier assignment on file loading, keeps curve- specific runtime data grouped and saves couple of bytes in Object for non-curve types. -- svn merge -r57938:57939 ^/branches/soc-2013-depsgraph_mt svn merge -r57957:57958^/branches/soc-2013-depsgraph_mt
2013-07-12Moved code for calculating local_matrix to BKE funtion for reuseGaia Clary
2013-07-12Get rid of global originmat matrix from object.cSergey Sharybin
This matrix was used to store the space the object is in, which then was accessed by snapping code. No reason to keep it as a global variable (which isn't safe for threading, unlikely it'll give issues now, but it's easy to avoid issues early here). Now made it so BKE_object_where_is_calc_ex will get an optional parameter originmat and set this matrix in solve_parent. Original patch by self, minor changes by Campbell, thanks!
2013-07-02remove nan copyrights from code added since blender become opensource (copy ↵Campbell Barton
paste errors), also remove BKE_script.h
2013-07-02move api functions from r57909 into BKE.Campbell Barton
2013-06-10code cleanup: use boolean for intersection functions.Campbell Barton
2013-05-18Fix #35404: crash in file save with python code that accesses mesh from panel.Brecht Van Lommel
On file save the mesh gets loads from the editmesh but the derived mesh caches wer not cleared. This usually happens through the depsgraph but it needs to be done manually here. Most changes are some refactoring to deduplicate derived mesh freeing code.
2013-04-18Make freestyle use local Main for temporary objectsSergey Sharybin
This means main database is no longer pollutes with temporary scene and objects needed for freestyle render. Actually, there're few of separated temporary mains now. Ideally it's better to use single one, but it's not so much trivial to pass it to all classes. Not so big deal actually. Required some changes to blender kernel, to make it possible to add object to a given main, also to check on mesh materials for objects in given main. This is all straightforward changes. As an additional, solved issue with main database being infinitely polluted with text blocks created by create_lineset_handler function. This fixes: - #35003: Freestyle crashes if user expands objects in FRS1_Scene - #35012: ctrl+f12 rendering crashes when using Freestyle
2013-03-21code cleanup: use bool where values are true/false, for view3d and related ↵Campbell Barton
functions.
2013-03-09use 'bool' for BLI_/BKE_ functions.Campbell Barton
2013-03-09expose obrel_is_recursive_child in BKE_object.h and rename to ↵Campbell Barton
BKE_object_is_child_recursive()
2013-02-17code cleanup: missed r54603, arg reordering.Campbell Barton
2013-02-17code cleanup: change order of args in void ↵Campbell Barton
BKE_object_where_is_calc_time_ex() so extra arg is at the end (loose convention for *_ex() funcs). also some style cleanup.
2013-02-16rigidbody: Further fix for background scenesSergej Reich
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.
2013-02-05Fix #34040: Moving Normal Node with enabled Cycles Material Preview crashesSergey Sharybin
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!
2012-12-18Fix #33487: game engine did not convert objects with rotation modes other thanBrecht Van Lommel
Euler XYZ correctly, was never implemented;
2012-12-17Bug fix, IRC report.Ton Roosendaal
With 2 windows, 2 scenes, linked objects: - enter editmode in 1 window. - the other window allowed to enter editmode too. - and crash happened on exit editmode. Since editmode is in Context (scene->obedit) a bad conflict arises. New function BKE_object_is_in_editmode() returns this info outside of context. Note I didn't use BMEdit_FromObject() because of the assert(). NOTE: contextual storage of editmode could need rework... five places: - ob->mode / ob->restore_mode - scene->object - CTX_data_edit_object() - BKE_object_is_in_editmode() - view3d mode handling menu
2012-12-11define the size of matrix args for both rows/cols.Campbell Barton
2012-09-27Fix #32667: Curve softbodies doesn't render animation (cycles)Sergey Sharybin
Issue was caused by cycles being duplicated curve objects before converting them to mesh. This duplication will loose pointcache which resulted in object not being properly deformed.
2012-09-23fix for all pose-group editing functions crashing when the context didnt ↵Campbell Barton
have an area (in background mode), fix pose-group-sort and pose-group-moving being disabled for pinned poses. also fix for own missing NULL check for pose mask clear which would crash when run without an active object
2012-08-18fix [#32353] 'Focus'(center) applied on a rig should only take visible bones ↵Campbell Barton
into account
2012-07-18make links now allows groups - this means you can make objects have matching ↵Campbell Barton
groups to the active more easily.
2012-06-13style cleanupCampbell Barton
2012-06-13patch #31794 Added new function BKE_object_relational_superset()Gaia Clary
2012-05-22Add operator to extract armature and vertex groups from skin.Nicholas Bishop
* The operator creates bones for each input edge (does not subdivide them like the skin operator does), adds a fake root bone for skin roots with multiple children. * The operator adds vertex weight groups to the original mesh. * Make copy_object_transform() public, used to match the armature object to the mesh object. Skin modifier documentation: http://wiki.blender.org/index.php/User:Nicholasbishop/SkinModifier
2012-05-15Blender Internal Render: Split quads to predictable (vertices 0,1,3) ↵Daniel Genrich
triangles for animated meshes. This solves problems with collisions beeing rendered different than in viewport.
2012-05-13code cleanup: header cleanup and remove some duplicate defines.Campbell Barton
2012-05-05code cleanup: function naming, use BKE_*type* prefix.Campbell Barton
2012-05-04Fix #31258: collada now selects newly added objects after import.Brecht Van Lommel
2012-04-30Cycles: support for motion vector and UV passes.Brecht Van Lommel
Most of the changes are related to adding support for motion data throughout the code. There's some code for actual camera/object motion blur raytracing but it's unfinished (it badly slows down the raytracing kernel even when the option is turned off), so that code it disabled still. Motion vector export from Blender tries to avoid computing derived meshes when the mesh does not have a deforming modifier, and it also won't store motion vectors for every vertex if only the object or camera is moving.
2012-03-18spelling cleanupCampbell Barton
2012-03-12Fix #30496: Bugs and crashes about "make links modifers" function.Sergey Sharybin
Was missed check for if modifier is available for particular object type which ended up with unpredictable results when modifier which isn't supported yet for some object type as linked to that object type.
2012-02-29Code Cleanup: remove non existing function declarations.Campbell Barton
added some missing functions too - which are not used yep but should be there for api completeness. * CDDM_set_mloop * CDDM_set_mpoly * BLI_mempool_count
2012-02-28code cleanup: use float vector size in function definitions, and const's ↵Campbell Barton
where the values are unchanged.