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
2018-06-29Cleanup: remove another bunch of DM usages, includes etc.Bastien Montagne
2018-06-29Fix T55645: broken particle Use Count option for instancing objects.Brecht Van Lommel
There is now a manual refresh button on the panel to update the list of objects in case it changes, and it also gets refreshed when changing the collection or toggling the use count option. This is a bit more manual but the previous code of refreshing the list while evaluating the depsgraph was unreliable. This also fixes it to take properly take into account visibility, and to work with linked collections for which index writing was missing.
2018-06-22Depsgraph: cache effector relations, for performance and stability.Brecht Van Lommel
To find all effectors in the scene, we need to loop over all objects. Doing this during depsgraph evaluation caused crashes because not all objects are guaranteed to be evaluated yet. To fix this, we now cache the relations as part of the dependency graph build. As a bonus this also makes evaluation faster for big scenes, since looping over all objects for each particle system is slow. Fixes T55156.
2018-06-21Fix incorrect use of G.is_rendering for particles in some places.Brecht Van Lommel
2018-06-19Particles: Support changing modifiers during particle edit modeSergey Sharybin
The idea is to only use pointers to particles in original object when creating an edit structure. The derived mesh we get from evaluated object. The rest of the commit is just keeping pointers in sync.
2018-06-19Particles: Add utility function to copy particles from one system to anotherSergey Sharybin
2018-06-17Merge branch 'master' into blender2.8Campbell Barton
2018-06-17Cleanup: trailing space for blenkernelCampbell Barton
2018-06-15Hair editing: Multi-thread various partsSergey Sharybin
Currently focused on making parts which are a bottleneck for Spring, to make things fast as possible. There are surely lots of places where threading is not currently done, but we can keep doing this, maybe even with help from the community :)
2018-06-13Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/blenkernel/intern/blendfile.c source/blender/blenkernel/intern/node.c source/blender/blenkernel/intern/particle.c
2018-06-13Cleanup: remove more G.main from BKE area.Bastien Montagne
2018-06-12Particle: Use local RNG during initializationSergey Sharybin
2018-06-12Cleanup: IndentationSergey Sharybin
2018-06-07Particle edit: Simplify code by benefiting from single edit contextSergey Sharybin
Makes ADD brush to work. At some point children particles draw got broken, children are not visible for until first stroke is done. Still looking into it.
2018-06-05Object Modes: Flush COW on mode switchingCampbell Barton
Caused glitch w/ sculpt mode not updating.
2018-05-30Hair Particles: DNA: Add properties for new GPU hairs.Clément Foucault
Hair Particles shape properties are ported from cycles. Thoses properties have the same defaults and have a do_version of their own. Cycles will use theses properties instead of its custom ones. Some realtime engine specific settings are also added to scene->r because it's much easier to control as global values. Bumping Version number so cycles can do its own do_version on top of the default settings.
2018-05-26Fix T55207, fix T55208: hair not positioned correctly after subsurf.Brecht Van Lommel
The problem was that the particle system modifier was reading ob->derivedDeform during modifier stack evaluation. Due to the mesh -> DM conversion this was no longer set leading to wrong results. In fact we don't really need the deformed mesh, just the original mesh topology for face/poly index remapping. So the solution is to use that instead.
2018-05-18Collections and groups unificationBrecht Van Lommel
OVERVIEW * In 2.7 terminology, all layers and groups are now collection datablocks. * These collections are nestable, linkable, instanceable, overrideable, .. which opens up new ways to set up scenes and link + override data. * Viewport/render visibility and selectability are now a part of the collection and shared across all view layers and linkable. * View layers define which subset of the scene collection hierarchy is excluded for each. For many workflows one view layer can be used, these are more of an advanced feature now. OUTLINER * The outliner now has a "View Layer" display mode instead of "Collections", which can display the collections and/or objects in the view layer. * In this display mode, collections can be excluded with the right click menu. These will then be greyed out and their objects will be excluded. * To view collections not linked to any scene, the "Blender File" display mode can be used, with the new filtering option to just see Colleciton datablocks. * The outliner right click menus for collections and objects were reorganized. * Drag and drop still needs to be improved. Like before, dragging the icon or text gives different results, we'll unify this later. LINKING AND OVERRIDES * Collections can now be linked into the scene without creating an instance, with the link/append operator or from the collections view in the outliner. * Collections can get static overrides with the right click menu in the outliner, but this is rather unreliable and not clearly communicated at the moment. * We still need to improve the make override operator to turn collection instances into collections with overrides directly in the scene. PERFORMANCE * We tried to make performance not worse than before and improve it in some cases. The main thing that's still a bit slower is multiple scenes, we have to change the layer syncing to only updated affected scenes. * Collections keep a list of their parent collections for faster incremental updates in syncing and caching. * View layer bases are now in a object -> base hash to avoid quadratic time lookups internally and in API functions like visible_get(). VERSIONING * Compatibility with 2.7 files should be improved due to the new visibility controls. Of course users may not want to set up their scenes differently now to avoid having separate layers and groups. * Compatibility with 2.8 is mostly there, and was tested on Eevee demo and Hero files. There's a few things which are know to be not quite compatible, like nested layer collections inside groups. * The versioning code for 2.8 files is quite complicated, and isolated behind #ifdef so it can be removed at the end of the release cycle. KNOWN ISSUES * The G-key group operators in the 3D viewport were left mostly as is, they need to be modified still to fit better. * Same for the groups panel in the object properties. This needs to be updated still, or perhaps replaced by something better. * Collections must all have a unique name. Less restrictive namespacing is to be done later, we'll have to see how important this is as all objects within the collections must also have a unique name anyway. * Full scene copy and delete scene are exactly doing the right thing yet. Differential Revision: https://developer.blender.org/D3383 https://code.blender.org/2018/05/collections-and-groups/
2018-05-16Particle edit: Fix disappearing child particles when toggling edit modeSergey Sharybin
Going to object edit mode and back to particle edit mode used to loose all children from being displayed.
2018-05-16Particle System: ported most DerivedMesh → MeshSybren A. Stüvel
There are a few places where DerivedMesh is still used, most notably when calling the (not yet ported) cloth simulation. There is also still the use of Object.derivedDeform and Object.derivedFinal. Those places are marked with a TODO. Some functions in the editors module were copied to accept Mesh. Those already had 'mesh' in the name; the copies are suffixed with '__real_mesh' for easy renaming later when the DM-based functionality is removed.
2018-05-16Particle System: use DEG to get current time in psys_get_particle_state()Sybren A. Stüvel
2018-05-15particle edit: Fix crash when using without copy-on-writeSergey Sharybin
2018-05-15Particles: Fix uninitialized child orco passed to modifiersSergey Sharybin
Wrong cleanup done in 51b796ff152.
2018-05-15Particle edit: Need to check DONE flag from evaluated psysSergey Sharybin
2018-05-15Particle edit: Support children particles display with copy on writeSergey Sharybin
2018-05-15Depsgraph: Keep track of original particle systemSergey Sharybin
Allows to have quicker lookup in particle edit mode.
2018-05-15Particle edit: Make check to work within copy-on-write conceptSergey Sharybin
Not fully optimal, we can probably store pointer to original psys similar to ID's orig_id.
2018-05-15Particle edit: Edit path invalidate should trigger particle system path re-cacheSergey Sharybin
Don't try to bend existing design, just follow it. It's not nice, but is working. Just bring it back, then repeal and replace system as a whole, making sure every bit is working according to a design. Such quick patches only trying to make local sense of a system, defeating it's design.
2018-05-15Particle edit: Restore weird-looking conditions in evaluationSergey Sharybin
They might be looking weird, but they match conditions when children particles are to be re-calculated for particle edit.
2018-05-11Remove debug only codeSergey Sharybin
2018-05-11Particle edit: Initial support of edit with copy-on-writeSergey Sharybin
The idea is that edit mode structure is owned by original object, and used for drawing. This is a bit confusing, especially since path cache is also in that structure and needs evaluated object to calculate cache. In the future we should split edit data from visualization data, but that's bigger refactor.
2018-04-19Remove Blender Internal and legacy viewport from Blender 2.8.Ton Roosendaal
Brecht authored this commit, but he gave me the honours to actually do it. Here it goes; Blender Internal. Bye bye, you did great! * Point density, voxel data, ocean, environment map textures were removed, as these only worked within BI rendering. Note that the ocean modifier and the Cycles point density shader node continue to work. * Dynamic paint using material shading was removed, as this only worked with BI. If we ever wanted to support this again probably it should go through the baking API. * GPU shader export through the Python API was removed. This only worked for the old BI GLSL shaders, which no longer exists. Doing something similar for Eevee would be significantly more complicated because it uses a lot of multiplass rendering and logic outside the shader, it's probably impractical. * Collada material import / export code is mostly gone, as it only worked for BI materials. We need to add Cycles / Eevee material support at some point. * The mesh noise operator was removed since it only worked with BI material texture slots. A displacement modifier can be used instead. * The delete texture paint slot operator was removed since it only worked for BI material texture slots. Could be added back with node support. * Not all legacy viewport features are supported in the new viewport, but their code was removed. If we need to bring anything back we can look at older git revisions. * There is some legacy viewport code that I could not remove yet, and some that I probably missed. * Shader node execution code was left mostly intact, even though it is not used anywhere now. We may eventually use this to replace the texture nodes with Cycles / Eevee shader nodes. * The Cycles Bake panel now includes settings for baking multires normal and displacement maps. The underlying code needs to be merged properly, and we plan to add back support for multires AO baking and add support to Cycles baking for features like vertex color, displacement, and other missing baking features. * This commit removes DNA and the Python API for BI material, lamp, world and scene settings. This breaks a lot of addons. * There is more DNA that can be removed or renamed, where Cycles or Eevee are reusing some old BI properties but the names are not really correct anymore. * Texture slots for materials, lamps and world were removed. They remain for brushes, particles and freestyle linestyles. * 'BLENDER_RENDER' remains in the COMPAT_ENGINES of UI panels. Cycles and other renderers use this to find all panels to show, minus a few panels that they have their own replacement for.
2018-04-18Merge remote-tracking branch 'origin/master' into blender2.8Sybren A. Stüvel
Explicitly undoing 287d1924fa149f0 here, as that was a master-only change.
2018-04-18Particles: Interpolate size for interpolated childrenSergey Sharybin
This finally allows us to use Random factor to add variations to the interpolated children. This feature never worked since 2007L there was random factor slider in the interface, but it was only used by simple children. Now it has affect on interpolated children as well. Technically, this will break compatibility if older file had random factor set to something else than 0 (default value is 0 though). But we are leaving 2.7 series, so can accept such breackage in the name of supported features.
2018-04-17Make particle edit mode work againMai Lavelle
This is just to have hair rendering and editing mostly working as in master. A better fix is probably needed, there seems to be some missing depsgraph relations for particle edit settings, and particle edit code doesn't rebuild caches after applying edits. But at least you can see and interact with hair now until those things can be sorted out.
2018-04-16Depsgraph: remove EvaluationContext, pass Depsgraph instead.Brecht Van Lommel
The depsgraph was always created within a fixed evaluation context. Passing both risks the depsgraph and evaluation context not matching, and it complicates the Python API where we'd have to expose both which is not so easy to understand. This also removes the global evaluation context in main, which assumed there to be a single active scene and view layer. Differential Revision: https://developer.blender.org/D3152
2018-04-13Python API: remove preview/render resolution settings from API functions.Brecht Van Lommel
For correct results these must have been set already when the depsgraph was created and evaluated, so all dependencies have appropriate resolutions too. For particle we no longer backup and restore the viewport particles to avoid overwriting them during render, as copy-on-write solves this for us. Even without COW particles seem to work ok. This also removes the particle simplification options based on camera. This was never used much and only available in Blender Internal. Differential Revision: https://developer.blender.org/D3148
2018-04-05Remove workspace object mode, reverts changes w/ 2.8Campbell Barton
This caused too many problems syncing object modes with multiple objects/windows/workspaces, see: D3130 for details.
2018-04-03Merge branch 'master' into blender2.8Campbell Barton
2018-04-03Cleanup: rename list count_ex -> count_at_mostCampbell Barton
2018-03-09Cleanup: iterator macrosCampbell Barton
- put render iterator in own scope (would shadow it's own variable if used multiple times). - enforce semicolon at end of iterator macros. - no need to typedef one-off macro structs.
2018-03-07Cleanup: use _BEGIN suffix for group iteratorsCampbell Barton
2018-02-16Cleanup: quiet warningCampbell Barton
2018-02-15Merge branch 'master' into blender2.8Sergey Sharybin
2018-02-15Simple hair children: Make twist affected by textureSergey Sharybin
This completes twist feature, which is now possible to also control by texture. Since textures can not easily contain negative values as well, same trick with 0.5 neutral as vertex groups is used. All in all, this twist features allows to do following things. Original hair: {F2287535} Hair with scientifically calculated twist value of 0.5: {F2287540} And we can also twist braids in opposite directions dependent on left/right side: {F2287548}
2018-02-15Fix T54078: Adding subsurf prior to particle system breaks simple children ↵Sergey Sharybin
vgroups and textures cpa->num points to a face index on BASE mesh, but get_child_modifier_parameters() expects index on a FINAL dm. So wrong index was used here.
2018-02-15Simple hair children: Make twist affected by vertex groupSergey Sharybin
The idea is to give a control over direction of twist, and maybe amount of twist as well. More concrete example: make braids on left and right side of character head to be twisting opposite directions. Now, tricky part: we need some negative values to flip direction, but weights can not be negative. So we use same trick as displacement map and tangent normal maps, where 0.5 is neutral, values below 0.5 are considered negative and values above 0.5 are considered positive.
2018-02-15Simple hair children: Initial implementation of twist controlSergey Sharybin
It allows to have children hair to be twisted around parent curve, which is quite an essential feature when creating hair braids. There are currently two controls: - Number of turns around parent children. - Influence curve, which allows to modify "twistness" along the strand.
2018-02-15Particles: Wrap insane amount of arguments to child modifier evaluationSergey Sharybin
Use single structure. It seems we will need to pass more information soon, so better to do it via the structure.
2018-02-15Fix crash when rendering particles with cyclesMai Lavelle
view_layer is NULL when the render engine is created, this gets passed around and ends up in this code causing a crash. This should be reverted after the render engine api is updated to set view_layer.