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
2017-08-20Implement a new automatic handle algorithm to produce smooth F-Curves.Alexander Gavrilov
The legacy algorithm only considers two adjacent points when computing the bezier handles, which cannot produce satisfactory results. Animators are often forced to manually adjust all curves. The new approach instead solves a system of equations to trace a cubic spline with continuous second derivative through the whole segment of auto points, delimited at ends by keyframes with handles set by other requirements. This algorithm also adjusts Vector handles that face ordinary bezier keyframes to achieve zero acceleration at the Vector keyframe, instead of simply pointing it at the adjacent point. Original idea and implementation by Benoit Bolsee <benoit.bolsee@online.be>; code mostly rewritten to improve code clarity and extensibility.
2017-08-20Make auto handle placement aware of cyclic extrapolation.Alexander Gavrilov
Cyclic extrapolation is implemented as an f-curve modifier, so this technically violates abstraction separation and is something of a hack. However without such behavior achieving smooth looping with cyclic extrapolation is extremely cumbersome. The new behavior is applied when the first modifier is Cyclic extrapolation in Repeat or Repeat with Offset mode without using influence, repeat count or range restrictions. This change in behavior means that curve handles have to be updated when the modifier is added, removed or its options change. Due to the way code is structured, it seems it requires a helper link to the containing curve from the modifier object. Reviewers: aligorith Differential Revision: https://developer.blender.org/D2783
2017-08-15Cycles/BI: Add a pixel size option for speeding up viewport renderingLukas Stockner
This patch adds "Pixel Size" to the performance options, which allows to render in a smaller resolution, which is especially useful for displays with high DPI. Reviewers: Severin, dingto, sergey, brecht Reviewed By: brecht Subscribers: Severin, venomgfx, eyecandy, brecht Differential Revision: https://developer.blender.org/D1619
2017-08-11iFix T52050: Empty VSE preview for scene strips with OpenGL preview + ↵Bastien Montagne
Rendered settings. 'OpenGL Preview' checkbox was redundant now, just use seq_prev_type value only. Might be OK for 2.79, but should be double-checked first...
2017-08-11Fix T52327: Entering/Exiting NLA Tweakmode disables Scene -> Only Keyframes ↵Joshua Leung
from Selected Channels The tweakmode flag and the selected-channels flag accidentally used the same value, due to confusion over where these flags were supposed to be set. The selected-channels flag has now been moved to use a different value, so that there shouldn't be any further conflicts. To be ported to 2.79.
2017-08-10DPI: add back option to control line width, tweak default width.Brecht Van Lommel
Adds thin/default/thick modes to add -1/0/1 to the auto detected line width, while leaving the overall UI scale unchanged. Also tweaks the default line width threshold, so thicker lines start from slightly high UI scales. Differential Revision: https://developer.blender.org/D2778
2017-08-07Refactor ID copying (and to some extent, ID freeing).Bastien Montagne
This will allow much finer controll over how we copy data-blocks, from full copy in Main database, to "lighter" ones (out of Main, inside an already allocated datablock, etc.). This commit also transfers a llot of what was previously handled by per-ID-type custom code to generic ID handling code in BKE_library. Hopefully will avoid in future inconsistencies and missing bits we had all over the codebase in the past. It also adds missing copying handling for a few types, most notably Scene (which where using a fully customized handling previously). Note that the type of allocation used during copying (regular in Main, allocated but outside of Main, or not allocated by ID handling code at all) is stored in ID's, which allows to handle them correctly when freeing. This needs to be taken care of with caution when doing 'weird' unusual things with ID copying and/or allocation! As a final note, while rather noisy, this commit will hopefully not break too much existing branches, old 'API' has been kept for the main part, as a wrapper around new code. Cleaning it up will happen later. Design task : T51804 Phab Diff: D2714
2017-07-29Cleanup: quiet picky ubsan warningsCampbell Barton
2017-07-28Replace magic numbers with deprecated namesCampbell Barton
The names aren't meaningful but means it wont accidentally use valid names. Also remove textured-font setting
2017-07-28Cleanup: clear deprecated UI flagsCampbell Barton
Also adds cursor-lock flag, to be used in next commit.
2017-07-03Fix T51523: Lattice modifier affecting particles even when disabledLuca Rood
Particles were ignoring the lattice modifier visibility, and "influence" property.
2017-05-15Fix T51348: Node highlighting is brokenSergey Sharybin
This feature was disabled in the code but not in the interface. Removing the code, since it needs full re-implementation anyway.
2017-05-07Remove unused node socket flag that was added in the render pass commitLukas Stockner
2017-05-03Render API/Cycles: Identify Render Passes by their name instead of a type flagLukas Stockner
Previously, every RenderPass would have a bitfield that specified its type. That limits the number of passes to 32, which was reached a while ago. However, most of the code already supported arbitrary RenderPasses since they were also used to store Multilayer EXR images. Therefore, this commit completely removes the passflag from RenderPass and changes all code to use the unique pass name for identification. Since Blender Internal relies on hardcoded passes and to preserve compatibility, 32 pass names are reserved for the old hardcoded passes. To support these arbitrary passes, the Render Result compositor node now adds dynamic sockets. For compatibility, the old hardcoded sockets are always stored and just hidden when the corresponding pass isn't available. To use these changes, the Render Engine API now includes a function that allows render engines to add arbitrary passes to the render result. To be able to add options for these passes, addons can now add their own properties to SceneRenderLayers. To keep the compositor input node updated, render engine plugins have to implement a callback that registers all the passes that will be generated. From a user perspective, nothing should change with this commit. Differential Revision: https://developer.blender.org/D2443 Differential Revision: https://developer.blender.org/D2444
2017-04-26Avoid platform dependant PATH_MAXCampbell Barton
2017-04-26Alembic: shortened CacheFile.filepath to 1024 bytes againSybren A. Stüvel
As per discussion on 3128600a8ab2badd9ea39c80133f15f766794ec6
2017-04-25Fix T51262: Blender CRASH with alembic fileSybren A. Stüvel
Also added a unit test for exporting & importing very long names.
2017-04-17Fix T51176: Cache file location can be blank and prevent fluid simulation ↵Bastien Montagne
from reading baked data Sanitize a bit how cache path is handled by fluidsim (there is much more to be done here though :( ), and forbid empty path (we reset to default path relative to current .blend file in case it's empty). If people really, really want to use current OS-wise directory, they can at least use '.' as path. ;)
2017-04-14Object Info node support for GLSL mode and the internal renderAlexander Romanov
Object Info node can be useful to give some variation to a single material assigned to multiple instances. This patch adds support for Viewport and BI. {F499530} Example: {F499528} Reviewers: merwin, brecht, dfelinto Reviewed By: brecht Subscribers: duarteframos, fclem, homyachetser, Evgeny_Rodygin, AlexKowel, yurikovelenov Differential Revision: https://developer.blender.org/D2425
2017-04-13Datablock ID PropertiesAlexander Romanov
The absence of datablock properties "will certainly be resolved soon as the need for them is becoming obvious" said the [[http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.67/Python_Nodes|Python Nodes release notes]]. So this patch allows Python scripts to create ID Properties which reference datablocks. This functionality is implemented for `PointerProperty` and now such properties can be created with Python. In addition to the standard update callback, `PointerProperty` can have a `poll` callback (standard RNA) which is useful for search menus. For details see the test included in this patch. Original author: @artfunkel Alexander (Blend4Web Team) Reviewers: brecht, artfunkel, mont29, campbellbarton Reviewed By: mont29, campbellbarton Subscribers: jta, sergey, campbellbarton, wisaac, poseidon4o, mont29, homyachetser, Evgeny_Rodygin, AlexKowel, yurikovelenov, fjuhec, sharlybg, cardboard, duarteframos, blueprintrandom, a.romanov, BYOB, disnel, aditiapratama, bliblubli, dfelinto, lukastoenne Maniphest Tasks: T37754 Differential Revision: https://developer.blender.org/D113
2017-04-12Docs: minor improvement to code exampleCampbell Barton
2017-03-30Mirror Modifier: Add offsets for mirrored UVsCampbell Barton
The mirror modifier now has two fields that specify a -1 to 1 offset for the U and V axes when mirroring their coordinates. D1844 by @circuitfox
2017-03-25Automatic DPI for all platforms, per monitor DPI for Windows.Wouter
For Windows 8.1 and X11 (Linux, BSD) now use the DPI specified by the operating system, which previously only worked on macOS. For Windows this is handled per monitor, for X11 this is based on Xft.dpi or xrandr --dpi. This should result in appropriate font and button sizes by default in most cases. The UI has been simplified to a single UI Scale factor relative to the automatic DPI, instead of two DPI and Virtual Pixel Size settings. There is forward and backwards compatibility for existing user preferences. Reviewed By: brecht, LazyDodo Differential Revision: https://developer.blender.org/D2539
2017-03-25WM: Application TemplatesCampbell Barton
This adds the ability to switch between different application-configurations without interfering with Blender's normal operation. This commit doesn't include any templates, so its mostly to allow collaboration for the Blender 101 project and other custom configurations. Application templates can be installed & selected from the file menu. Other details: - The `bl_app_template_utils` module handles template activation (similar to `addon_utils`). - The `bl_app_override` module is a general module to assist scripts overriding parts of Blender in reversible way. See docs: https://docs.blender.org/manual/en/dev/advanced/app_templates.html See patch: D2565
2017-03-083D View: new nethod of opengl selectionCampbell Barton
Intended to replace legacy GL_SELECT, without the limitations of sample queries which can't access depth information. This commit adds VIEW3D_SELECT_PICK_NEAREST and VIEW3D_SELECT_PICK_ALL which access the depth buffers to detect whats under the pointer, so initial selection is always the closest item. The performance of this method depends a lot on the OpenGL implementations glReadPixels. Since reading depth can be slow, buffers are cached for object picking so selecting re-uses depth data, performing 1 draw instead of 3 (for 24, 18, 10 px regions, picking with many items under the pointer). Occlusion queries draw twice when picking nearest, so worst case 6x draw calls per selection. Even with these improvements occlusion queries is faster on AMD hardware. Depth selection is disabled by default, toggle option under select method. May enable by default if this works well on different hardware. Reviewed as D2543
2017-03-06Surface Deform Modifier: Respect object transforms at bind timeLuca Rood
This slightly changes SDef behavior, by now respecting object transforms at bind time, thus not requiring the objects to be aligned in their respective local spaces, but instead using world space.
2017-02-27Surface Deform Modifier (SDef)Luca Rood
Implementation of the SDef modifier, which allows meshes to be bound by surface, thus allowing things such as cloth simulation proxies. User documentation: https://wiki.blender.org/index.php/User:Lucarood/SurfaceDeform Reviewers: mont29, sergey Subscribers: Severin, dfelinto, plasmasolutions, kjym3 Differential Revision: https://developer.blender.org/D2462
2017-02-24Add "Gravitation" option to "Force" type force fieldsLuca Rood
This adds an option to force fields of type "Force", which enables the simulation of gravitational behavior (dist^-2 falloff). Patch by @AndreasE Reviewers: #physics, LucaRood, mont29 Reviewed By: #physics, LucaRood, mont29 Tags: #physics Differential Revision: https://developer.blender.org/D2389
2017-02-23Fix T50736: Zero streaks in Glare node.Bastien Montagne
Please never, ever use same DNA var for two different things. Even worse if they do not have same type and ranges! This is only ensuring issues (as described in report, but also if animating both RNA props using same DNA var... yuck). And we were not even saving any byte in DNA, could reuse some padding there to store the two new needed vars (yes, two, since we cannot re-use existing one if we want to keep backward *and* forward compatibility).
2017-02-15Motion blur investigation featureSergey Sharybin
This commit adds a way to debug Cycles motion blur issues which are usually happening due to something crazy happening in between of frames. Biggest trouble was that artists had no clue about what's happening in subframes before they render. This is at least inefficient workflow when dealing with motion blur shots with complex animation. Now there is an option in Time Line Editor which could be found in View -> Show Subframe. This option will expose current frame with it's subframe to the time line editor header and it'll allow scrubbing with a subframe precision in time line editor. Please note that none of the tools in Blender are aware of subframe, so they'll likely be using current integer frame still. This is something we don't consider a bug for now, the whole purpose for now is to give a tool for investigation. Eventually we'll likely tweak all tools to be aware of subframe. Hopefully now we can finish the movie here in the studio..
2017-01-26Compositor: Make HSV node inputs a real socketsSergey Sharybin
This is much more flexible solution which will allow doing some more procedural features. Reviewers: brecht, dfelinto, mont29 Reviewed By: mont29 Subscribers: Severin Differential Revision: https://developer.blender.org/D2403
2017-01-20D1873: Customize style for animation motion pathsAntonio Vazquez
New options to define the style of the animation paths in order to get better visibility in complex scenes. Now is possible define the color, thickness and several options relative to the style of the lines used to draw motion path.
2017-01-18GP Interpolate Sequence: Tool settings for controlling the shape of ↵Joshua Leung
interpolation This commit introduces the ability to use the Robert Penner easing equations or a Custom Curve to control the way that the "Interpolate Sequence" operator interpolates between keyframes. Previously, it was only possible to get linear interpolation between the gp frames. Workflow: 1) Place current frame between a pair of GP keyframes 2) Open the "Interpolate" panel in the Toolshelf 3) Choose the interpolation type (under "Sequence Options") 4) Adjust settings (e.g. if you're using "Custom Curve", use the curvemap widget to define the way that the interpolation proceeds) 5) Click "Sequence" to interpolate 6) Play back/scrub the animation to see if you've got the result you want 7) If you need to make some tweaks, undo, or delete the generated keyframes, then repeat the process again from step 4 until you've got the desired result.
2017-01-18GP Interpolate: Move settings from "gp_sculpt" to a new toolsettings struct ↵Joshua Leung
- "gp_interpolate" The "gp_sculpt" settings should be strictly for stroke sculpting, and not abused by other tools. (Similarly, if other general GP tools need one-off options, those should go into the normal toolsettings->gpencil_flag) Furthermore, this paves the way for introducing new settings for controlling the way that GP interpolation takes place (e.g. with easing equations, or a custom curvemap)
2017-01-04Fix T50369: Objects can't be deleted from scene when using "link group ↵Bastien Montagne
objects to scene" Main issue here was that in old usercount system 'user_real' did simply not allow that kind of thing to work. With new pait of 'USER_EXTRA' tags, it becomes possible to handle the case correctly, by merely refining checks about indirectly use objects whene removing them from a scene. Incidently, found another related bug, 'link group objects to scene' was not incrementing objects' usercount - bad, very very bad!
2017-01-02GPencil: Per-layer option to always show onion skinningJoshua Leung
Sometimes it can be useful to be able to keep onion skins visible in the OpenGL renders and/or when doing animation playback. In particular, there are two use cases where this is quite useful: 1) For creating a cheap motion-blur effect, especially when the before/after values are also animated. 2) If you've animated a shot with onion skinning enabled, the poses may end up looking odd if the ghosts are not shown (as you may have been accounting for the ghosts when making the compositions). This option can be found as the small "camera" toggle between the "Use Onion Skinning" and "Use Custom Colors" options.
2016-12-23Readfile: Resurrect do_versions_after_liblink.Bastien Montagne
Basic idea is to store fileversion in Library datablock, and split again Main by libraries after lib linking, do_versions_after_liblink on those separated Mains, and merge again. This allows to still have correct versions for each data-block in that second do_versions step. Note that this is not used currently in master (might be soon, though), but is needed for 2.8 work.
2016-12-19Fix (unreported) linked datablocks going through do_versions several times.Bastien Montagne
When linking data-blocks from same library in several steps, the already linked data-blocks of same lib would go again through versionning code... Note: only fixed for libraries, I can't imagine how this could happen with local data...
2016-12-13Fix strict warnings on WindowsSergey Sharybin
2016-11-30Cleanup id->newid usage, initial work.Bastien Montagne
This aims at always ensuring that ID.newid (and relevant LIB_TAG_NEW) stay in clean (i.e. cleared) state by default. To achieve this, instead of clearing after all id copy call (would be horribly noisy, and bad for performances), we try to completely remove the setting of id->newid by default when copying a new ID. This implies that areas actually needing that info (mainly, object editing area (make single user...) and make local area) have to ensure they set it themselves as needed. This is far from simple change, many complex code paths to consider, so will need some serious testing. :/
2016-11-29Fix T50094: Crash when viewport rendering point density textureSergey Sharybin
The idea is simple: cache PD resolution from cache_point_density() RNA function because that one is supposed to be called while database is locked for original synchronization. Ideally we would also pass array size to the sampling function, but it turned out to be quite problematic because API only accepts int type and passing size_t might cause some weird behavior.
2016-11-20Cycles: add basic backwards compatibility for device selection, move to ↵Brecht Van Lommel
System tab. For the multi-GPU case users still have to reconfigure the devices they want to use. Based on patch from Lukas Stockner. Differential Revision: https://developer.blender.org/D2347
2016-11-12Sculpt UI: Make DynTopo constant detail a resolution valueJulian Eisel
This should make it easier to sculpt in high resolutions, downside is that the new way to calculate maximum edge length is a bit less intuitive. Maximum edge length used to be calculated as blender_unit * percentage_value, now it's blender_unit / value. Reused old DNA struct member, but had to bump subversion to ensure correct compatibility conversion. Also changed default value slightly (would have had to set to 3.333... otherwise). Was Requested by @monio (see https://rightclickselect.com/p/sculpting/zpbbbc/dyntopo-better-scale-input-in-constant-detail-mode) and I think it's worth testing.
2016-11-07Expose Bullet rotational spring settings in the UI.Alexander Gavrilov
Bullet spring constraint already supports rotational springs, but they are not exposed in blender UI, likely due to a simple oversight. Supporting them is as simple as adding a few DNA/RNA properties with appropriate UI and passing them on to Bullet. Reviewers: sergof Reviewed By: sergof Differential Revision: https://developer.blender.org/D2331
2016-10-30Viewport smoke: add support to render the volume using a color ramp.Kévin Dietrich
This is yet another debug option that allows to render an arbitrary simulation field by using a color ramp to inspect its voxel values. Note that when using this, fire rendering is turned off. Reviewers: plasmasolutions, gottfried Differential Revision: https://developer.blender.org/D1733
2016-10-29Alembic: store a pointer to the object reader in the cache modifiers andKévin Dietrich
constraints. This avoids traversing the archive everytime object data is needed and gives an overall consistent ~2x speedup here with files containing between 136 and 500 Alembic objects. Also this somewhat nicely de- duplicates code between data creation (upon import) and data streaming (modifiers and constraints). The only worying part is what happens when a CacheFile is deleted and/or has its path changed. For now, we traverse the whole scene and for each object using the CacheFile we free the pointer and NULL-ify it (see BKE_cachefile_clean), but at some point this should be re-considered and make use of the dependency graph.
2016-10-27Fix T49829: Removal of custom icon previews during add-on unregister crashes ↵Bastien Montagne
Blender. Issue was happening when removal of custom icons was done while they were still being rendered by preview job. Now add a 'deffered deletion' system, to prevent main thread to delete preview image until loading thread is done with them. Note that ideally, calling `ED_preview_kill_jobs()` on custom icon removal would have been simpler, but we don't have easy access to context here...
2016-10-23Displace modifier: add global/local space option for X/Y/Z/XYZ directions.Quentin Wenger
Reviewed By: brecht Differential Revision: https://developer.blender.org/D2309
2016-10-22GPencil: New option to lock strokes to axisAntonioya
Now, the strokes can be locked to a plane set in the cursor location. This option allow the artist to rotate the view and draw keeping the strokes flat over the surface. This option is similar to surface option but doesn't need a object. The option is only valid for 3D view and strokes in CURSOR mode.
2016-10-17UV Editor: Add filter option to control what is visible when Draw Other ↵Sergey Sharybin
Objects is enabled Previously the editor will always try to only show UV faces with the same exact active image or image texture, which is quite difficult to control on a production shaders, where each material can have multiple objects assigned. The idea of this commit is to bring option which allows to easily control what to display when "Draw Other Objects" is enabled, so currently we can have old behavior ("Same Image") or tell editor to show everything ("All"). In the future we can extend it with such filters as "Same Material" and things like that. Hopefully this will help @eyecandy's workflow of texturing.