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
2015-05-12Depsgraph: New dependency graph integration commitSergey Sharybin
This commit integrates the work done so far on the new dependency graph system, where goal was to replace legacy depsgraph with the new one, supporting loads of neat features like: - More granular dependency relation nature, which solves issues with fake cycles in the dependencies. - Move towards all-animatable, by better integration of drivers into the system. - Lay down some basis for upcoming copy-on-write, overrides and so on. The new system is living side-by-side with the previous one and disabled by default, so nothing will become suddenly broken. The way to enable new depsgraph is to pass `--new-depsgraph` command line argument. It's a bit early to consider the system production-ready, there are some TODOs and issues were discovered during the merge period, they'll be addressed ASAP. But it's important to merge, because it's the only way to attract artists to really start testing this system. There are number of assorted documents related on the design of the new system: * http://wiki.blender.org/index.php/User:Aligorith/GSoC2013_Depsgraph#Design_Documents * http://wiki.blender.org/index.php/User:Nazg-gul/DependencyGraph There are also some user-related information online: * http://code.blender.org/2015/02/blender-dependency-graph-branch-for-users/ * http://code.blender.org/2015/03/more-dependency-graph-tricks/ Kudos to everyone who was involved into the project: - Joshua "Aligorith" Leung -- design specification, initial code - Lukas "lukas_t" Toenne -- integrating code into blender, with further fixes - Sergey "Sergey" "Sharybin" -- some mocking around, trying to wrap up the project and so - Bassam "slikdigit" Kurdali -- stressing the new system, reporting all the issues and recording/writing documentation. - Everyone else who i forgot to mention here :)
2015-05-12Depsgraph: Add evaluation callbacks for granular nodes updateSergey Sharybin
This commit only adds callbacks which then later be used with major dependency graph commit, keeping the upcoming commit more clean to follow. Should be no functional changes so far still.
2015-05-03We do need to transform lnors in BKE_mesh_transform(), much handy for scripts.Bastien Montagne
2015-04-28Add material slot reorder buttonsGaia Clary
2015-04-20Cleanup: use bool /w flag checksCampbell Barton
2015-04-19Sculpt: smooth brush, exclude self from averageCampbell Barton
Was including the vertices own location when accumulating.
2015-04-04Cleanup: use BKE_animdata_* prefixCampbell Barton
2015-03-31Corrective Smooth Modifier (aka delta-mush)Campbell Barton
This modifier can be used to correct bad deformations, Original patch D1183 by @sazerac, with own modifications
2015-03-20Fix T43786: Cycles bake disregards Auto Smooth (vertex per-face normals)Sergey Sharybin
Added an utility function which performs vertex split based on the loop normal so now backing API matches to what's happening in Cycles and BI in terms of autosplit. Reviewers: dfelinto, campbellbarton Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D1174
2015-03-13Add argument to DM_to_mesh() function to take ownership over the DMSergey Sharybin
The idea is pretty simple: instead of making temporary copy of all the related custom data layers just pass the ownership from the DM to the mesh. This is really handy in cases when you've got DM which you need to convert to Mesh datablock and wouldn't need that DM after conversion anyway. Foe example, render database conversion, exporters and even Modifier Apply will benefit from this option. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D1127
2015-02-05Add Custom Loop Normals.Bastien Montagne
This is the core code for it, tools (datatransfer and modifier) will come in next commits). RNA api is already there, though. See the code for details, but basically, we define, for each 'smooth fan' (which is a set of adjacent loops around a same vertex that are smooth, i.e. have a single same normal), a 'loop normal space' (or lnor space), using auto-computed normal and relevant edges, and store custom normal as two angular factors inside that space. This allows to have custom normals 'following' deformations of the geometry, and to only save two shorts per loop in new clnor CDLayer. Normal manipulation (editing, mixing, interpolating, etc.) shall always happen with plain 3D vectors normals, and be converted back into storage format at the end. Clnor computation has also been threaded (at least for Mesh case, not for BMesh), since the process can be rather heavy with high poly meshes. Also, bumping subversion, and fix mess in 2.70 versioning code.
2015-01-26Cleanup: strcmp/strncmp -> STREQ/STREQLEN (in boolean usage).Bastien Montagne
Makes usage of those funcs much more clear, we even had mixed '!strcmp(foo, bar)' and 'strcmp(foo, bar) == 0' in several places...
2015-01-09Fix T43159: Copying of linked datablocks using relpath leads to invalid ↵Bastien Montagne
paths in new copies. Propper fix reverting most of rB60e70c0c6014e5, which was only partial specific fix. This code uses generic `BKE_id_lib_local_paths()` func to handle all possible paths. Reviewers: sergey, campbellbarton Differential Revision: https://developer.blender.org/D977
2014-09-01Support more object types scene-scale (on creation)Campbell Barton
- lamp - camera - font - empty & effector Also fix inconsistency with apply transform (modified shape-keys for meshes but not curve/lattice)
2014-07-19Defines: replace ELEM3-16 with ELEM(...), that can take varargsCampbell Barton
2014-07-07Fix T40712: Duplicators don't generate orco and UV coordinates in Cycles ↵Lukas Tönne
viewport preview. Fix T39286: Display percentage ignored in Cycles viewport. The threaded depsgraph update changes included a cleanup of the global is_rendering flag, which was replaced by a general EvalContext being passed to dupli functions. Problem is that the global flag was true for viewport duplis before (ugly hack), which was used as a check for generating dupli orco/UV from mesh data layers. The new flag is stricter and only true for actual renders, which disables these attributes and breaks the Cycles Texture Coordinates and UVMap nodes. The solution is to extend the simple for_render boolean to an enum: * VIEWPORT: OpenGL viewport drawing (dupli tex coords omitted) * PREVIEW: Viewport preview render (simplified modifiers) * RENDER: Full render with all details and attributes There are still some areas that need to be examined, in particular modifiers seem to totally ignore the EvaluationContext! Instead they generally execute without render params from the depsgraph (BKE_object_handle_update_ex) and are built with render settings explicitly. Differential Revision: https://developer.blender.org/D613
2014-06-24Make main library safe(er) for the threaded usageSergey Sharybin
Added a lock to the Main which is getting acquired and released when modifying it's lists. Should not be any functional changes now, it just means Main is now considered safe without worrying about locks in the callee.
2014-06-09Fix for slowdown converting mesh to curve with large polygonsCampbell Barton
Walk the linked list rather then doing index lookups.
2014-05-09Indentation fix.Tamito Kajiyama
2014-05-03Bake API - bpy.ops.object.bake()Dalai Felinto
New operator that can calls a bake function to the current render engine when available. This commit provides no feature for the users, but allows external engines to be accessed by the operator and be integrated with the baking api. The API itself is simple. Blender sends a populated array of BakePixels to the renderer, and gets back an array of floats with the result. The Blender Internal (and multires) system is still running independent, but we eventually will pipe it through the API as well. Cycles baking will come next as a separated commit Python Operator: ---------------- The operator can be called with some arguments, or a user interface can be created for it. In that case the arguments can be ommited and the interface can expose the settings from bpy.context.scene.render.bake bpy.ops.object.bake(type='COMBINED', filepath="", width=512, height=512, margin=16, use_selected_to_active=False, cage_extrusion=0, cage="", normal_space='TANGENT', normal_r='POS_X', normal_g='POS_Y', normal_b='POS_Z', save_mode='INTERNAL', use_clear=False, use_split_materials=False, use_automatic_name=False) Note: external save mode is currently disabled. Supported Features: ------------------ * Margin - Baked result is extended this many pixels beyond the border of each UV "island," to soften seams in the texture. * Selected to Active - bake shading on the surface of selected object to the active object. The rays are cast from the lowpoly object inwards towards the highpoly object. If the highpoly object is not entirely involved by the lowpoly object, you can tweak the rays start point with Cage Extrusion. For even more control of the cage you can use a Cage object. * Cage Extrusion - distance to use for the inward ray cast when using selected to active * Custom Cage - object to use as cage (instead of the lowpoly object). * Normal swizzle - change the axis that gets mapped to RGB * Normal space - save as tangent or object normal spaces Supported Passes: ----------------- Any pass that is supported by Blender renderlayer system. Though it's up to the external engine to provide a valid enum with its supported passes. Normal passes get a special treatment since we post-process them to converted and "swizzled" Development Notes for External Engines: --------------------------------------- (read them in bake_api.c) * For a complete implementation example look at the Cycles Bake commit (next). Review: D421 Reviewed by: Campbell Barton, Brecht van Lommel, Sergey Sharybin, Thomas Dinge Normal map pipeline "consulting" by Andy Davies (metalliandy) Original design by Brecht van Lommel. The entire commit history can be found on the branch: bake-cycles
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-26Code cleanup: use 'const' for arrays (blenkernel)Campbell Barton
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-16Code cleanup: modifier_skin_customdata_ensure was a bad level callCampbell Barton
2014-03-15Code cleanup: use r_ prefix for return argsCampbell Barton
2014-02-11Mesh Data: disable two-sided for new meshes (see: T37518)Campbell Barton
2014-02-01Code cleanup: use length squared where possibleCampbell Barton
2014-01-15Python/Depsgraph: bpy.data.*.is_updated now detects add/remove of any datablock.Tom Edwards
Previously this only worked for some datablocks relevant to rendering, now it can be used to detect if any type of datablock was added or removed (but not yet to detect if it was modified, we need many more depsgraph tags for that). Most of the changes are some function parameter changes, the important parts are the DAG_id_type_tag calls. Reviewed By: sergey, brecht Differential Revision: https://developer.blender.org/D195
2014-01-13Compilation error fix and strict warning silence for previous commitsSergey Sharybin
2014-01-13Avoid memcpy to self when validating UV layer nameSergey Sharybin
2014-01-12Style Cleanup: whitespaceCampbell Barton
2013-12-23Fix for converting unfilled 3d text into a meshCampbell Barton
2013-12-01Code Cleanup: replace ABS() with fabsf() when used with float expressions.Campbell Barton
2013-11-26Fix T37225: UV map for closed curves incorrectly generatedSergey Sharybin
Summary: Curve ORCO was not calculating properly for cyclic 2D curves. - Needed to split vertices for blender internal renderer. Otherwise it's not possible to map last face to a proper texture location. - Needed to tweak curve->mesh conversion to respect cyclic flag along U direction. - Removed check for orcodm in curve.c:add_orco_dm since this code is only called if there're enabled constructive modifiers on the curve. Reviewers: brecht Maniphest Tasks: T37225 Differential Revision: http://developer.blender.org/D45
2013-11-22Fix T37465: UV Coords we're incorrect when converting from a curveCampbell Barton
2013-11-11Fix [#37394] UV Map cannot be renamed.Bastien Montagne
Own epic failure! CustomData_get_named_layer() returns a relative index, not an absolute one. :(
2013-10-01Fix issues reported by coverity scan in recent changes to customdata code.Brecht Van Lommel
2013-09-29Followup to r60416, we need to get cdlayers from bmesh everywhere! sorry...Bastien Montagne
2013-09-29Fix [#36841] UV-Maps cannot be renamed in EditModeBastien Montagne
Own error in r60260, in edit mode we need to use bmesh's cdata!
2013-09-24allocate bmesh data from known sizes where possible (was still using ↵Campbell Barton
defaults in places), add macros for initializing BMAllocTemplate's, also add assert on invalid use of bmesh_sfme()
2013-09-20Fix [#36759] UV Project - Specified UV Map doesnt work properlyBastien Montagne
In fact, the issue was that names of mloopuv/mtespoly layers could very easily get out of sync (a simple rename was enough), while most tools (such as the UVProject modifier) expect matching layers to have the same name! Now matching names are check on load, and renaming of a layer through RNA is guaranted to be synchronized with its counterparts. Thanks to Brecht & Campbell for reviews.
2013-09-09move mesh evaluation functions (normal, mapping, smooth group... etc, ↵Campbell Barton
calculations) into mesh_evaluate.c. mesh.c was over 4k lines and complex functions mixed in with general library management.
2013-09-02Ack... Followup to r59743: in fact, bitflags groups are not always ↵Bastien Montagne
wanted/needed, thanks to Campell for notifying me about this! So now, their generation is controlled by a flag, else previous "simple values" group ids are generated (one per poly region, no need here to reduce the number of used IDs!). Will update obj exporter too.
2013-09-02Fix [#36636] Incorrect assignment of Smoothing Groups on exportBastien Montagne
In fact, smooth groups are supposed to be bitflags, not simply integer values (would be far too much simple!). This adds quite a bit of work, as with only 32 values, we can't just assign one to each group. Somewhat related to the "Four colors theorem"! ;) Here we simply use the first available bit for current smooth group (i.e. first bit not used by any of the already defined contiguous groups).
2013-08-28scanfill curves, ngons, masks had their own memarena code and would allocate ↵Campbell Barton
a new one for every fill. now use BLI_memarena and support passing the arena into the fill function, so the arena is re-used, when scanfill is called in a loop.
2013-08-27fix [#36301] Mirror modifier does not mirror vertex normals when there are ↵Campbell Barton
no faces.
2013-08-26replace hashes with sets where possible.Campbell Barton
2013-08-24use reserve argument for more edgehashsCampbell Barton
2013-08-24when the size of an edgehash is known or can be guessed,Campbell Barton
pass in the argument to reserve the size.
2013-08-24fix for leak in make_edges_mdata() if there were no edges to create,Campbell Barton
also reserve the total number of edges in the hash when its created.