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-06-28Add render result caching.Bastien Montagne
Simply add an option to render settings to save an EXR cache, just when the render is finished. Also changed RE_ReadRenderResult() to read cache instead of temp sample files (those are fully volatile now anyway). Path to save cached render results is an UserPreferences setting. Also added 'Reload render' feature to the Image Editor (so one can now re-open a blend, and in an Image Editor hit ctrl-R to (try to) reload last render from cache). Reviewers: campbellbarton, sergey Differential Revision: https://developer.blender.org/D553
2014-06-26BGE: New Mouse ActuatorJorge Bernal
Disclaimer: The author of this patch is Geoffrey Gollmer (gomer). I only updated the patch to the current git master status, reworked several parts to fit well with current coding style and applied several fixes. This actuator allows users to show/hide the mouse cursor using logic bricks, as well as control object rotation with a mouse in the BGE. The mouse rotation is flexible enough to allow any type of mouse look, as well as banking for flight controls. {F94520} {F91859} Blend file for testing Mouse actuator (with default parameters and crosshair): {F94920} Reviewers: moguri Reviewed By: moguri CC: gomer, lordodin Differential Revision: https://developer.blender.org/D559
2014-06-17BGE: New Property sensor evaluation typesJorge Bernal
This patch adds "Less Than" and "Greater Than" evaluation types to the property sensor. The Wiki Docs modifications http://wiki.blender.org/index.php/User:Lordloki/Doc:2.6/Manual/Game_Engine/Logic/Sensors/Property Also, I have attached a screenshot and a blend to check. Reviewers: dfelinto, moguri Reviewed By: moguri Differential Revision: https://developer.blender.org/D476
2014-06-15Curve: use zero length array for BevList for less confusing syntaxCampbell Barton
2014-06-14UI: Add support for popups to refresh their layput (D578)Campbell Barton
This is needed for popups to chance state once activated, currently it makes use of operators `check` callback, after values are modified, as the file selector does already.
2014-06-14Cycles: glossy and anisotropic BSDF changesBrecht Van Lommel
* Anisotropic BSDF now supports GGX and Beckmann distributions, Ward has been removed because other distributions are superior. * GGX is now the default distribution for all glossy and anisotropic nodes, since it looks good, has low noise and is fast to evaluate. * Ashikhmin-Shirley is now available in the Glossy BSDF.
2014-06-14Cycles: Ashikhmin-Shirley anisotropic BSDFKarsten Schwenk
* Ashikhmin-Shirley anisotropic BSDF was added as closure * Anisotropic BSDF node now has two distributions Reviewers: brecht, dingto Differential Revision: https://developer.blender.org/D549
2014-06-13UI: Add back ability to select a custom interface fontCampbell Barton
2014-06-11Bake-API: new approach for cageDalai Felinto
There is a new option to select whether you want to use cage or not. When not using cage the results will be more similar with Blender Internal, where the inwards rays (trying to hit the highpoly objects) don't always come from smooth normals. So if the active object has sharp edges and an EdgeSplit modifier you get bad corners. This is useful, however, to bake to planes without the need of adding extra loops around the edges. When cage is "on" the user can decide on setting a cage extrusion or to pick a Custom Cage object. The cage extrusion option works in a duplicated copy of the active object with EdgeSplit modifiers removed to inforce smooth normals. The custom cage option takes an object with the same number of faces as the active object (and the same face ordering). The custom cage now controls the direction and the origin of the rays casted to the highpoly objects. The direction is a ray from the point in the cage mesh to the equivalent point to the base mesh. That means the face normals are entirely ignored when using a cage object. For developers: When using an object cage the ray is calculated from the cage mesh to the base mesh. It uses the barycentric coordinate from the base mesh UV, so we expect both meshes to have the same primitive ids (which won't be the case if the cage gets edited in a destructive way). That fixes T40023 (giving the expected result when 'use_cage' is false). Thanks for Andy Davies (metalliandy) for the consulting with normal baking workflow and extensive testing. His 'stress-test' file will be added later to our svn tests folder. (The file itself is not public yet since he still has to add testing notes to it). Many thanks for the reviewers. More on cages: http://wiki.polycount.com/NormalMap/#Working_with_Cages Reviewers: campbellbarton, sergey CC: adriano, metalliandy, brecht, malkavian Differential Revision: https://developer.blender.org/D547
2014-06-06Code cleanup: remove redundant void*->int->bool cast on NULL pointerCampbell Barton
2014-05-22Freestyle: added missing forward declarations of referenced struct's.Tamito Kajiyama
2014-05-15Fix 3D font selection and material lagging behind with vertical cursor motionCampbell Barton
2014-05-08Code Cleanup: remove unused m_contactProcessingThresholdCampbell Barton
2014-05-03Patch D246: Texture Marks for freestyle strokes, written and contributed by ↵Tamito Kajiyama
Paolo Acampora. Reviewers: brecht, kjym3, #freestyle Reviewed By: brecht, kjym3 Differential Revision: https://developer.blender.org/D246
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-05-01Code cleanup: replace long long with int64_t & doxy formatting.Campbell Barton
2014-04-29Code cleanup: remove unused grease pencil pointerCampbell Barton
2014-04-29Code cleanup: don't use unnecessary .exe extension in scons, simplify code.Lawrence D'Oliveiro
Reviewed By: brecht Differential Revision: https://developer.blender.org/D236
2014-04-29Ignore user-preferences when inserting keys from PythonCampbell Barton
2014-04-28"Auto" option for Keyframe.easingJoshua Leung
This option (alongside the Ease In/Out/InOut options already available) aims to make it easier to get an initial curve that looks closer to the one you were expecting, by automatically picking whether Ease In or Ease Out should be used based on the type of interpolation being used for the curve segment in question. Notes: * The types chosen may need some adjustments (e.g. using ease in-out instead of just ease in) * This does break compatability with files saved in previous dev builds, but only if you were using Bounce/Elastic/Back with "Ease In"
2014-04-28Followup to rB8714ae09f894: better not have several RNA properties affect a ↵Bastien Montagne
single DNA one.
2014-04-27Revert the testing sculpt openmp thread control and limit for OSX to ↵Jens Verwiebe
physical threads as in 2.70a tag
2014-04-27Fix T34993: "Jump to Next Keyframe" shortcut not related to the timeline ↵Joshua Leung
viewable keyframes Made the timeline option to only show keyframes from selected channels/data be a per-scene setting instead of the per-timeline option it was previously. This makes it easier for animators working on rigs with multiple bones (especially during the polishing phase), since now the timeline and jump to keyframe operators use the same setting to decide which subset of keyframes they need to consider. By default, this option is enabled by default. TODO: Extend this to the keyframe status shading on the active object name in the 3D view?
2014-04-26Code cleanup: use 'const' for arrays (blenloader, gpu, imbuf, makesdna, ↵Campbell Barton
modifiers, nodes)
2014-04-24Fix T39819: Decouple autosnap behaviour from time displayJoshua Leung
This commit cleans up and fixes some problems related to how the auto-snapping behaviour in the animation editors works, resolving the issues mentioned in T39819. 1) "Nearest Frame" no longer snaps to the nearest second when time is displayed in seconds. Instead, there is now also a "Nearest Second" option, so that either can be used as needed instead of only when a certain time display is used. 2) A similar change has been made for "Time Step" - This is now "Frame Step" and "Second Step" respectively. Notes: * Removed the unneeded getAnimEdit_DrawTime() * Time Step/Frame Step don't work for Graph Editor yet (and seem to not have worked at all) * NLA Editor also seems to be showing some weirdness now. Will be checked on. * Cancelling nearest-second snapping doesn't work nicely, due to another bug with GraphEdit transforms.
2014-04-23Blender Internal: Add material property "Cast" which can disable both ray ↵IRIE Shinsuke
and buffer shadows. Also refactor: - Material property UI related to shadows - Preparation of OR-ed mode flags (ma->mode_l) of render materials Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D313
2014-04-22View3d: api naming, for setting the view matrix.Campbell Barton
2014-04-18Freestyle: New options for sorting to arrange the stacking order of lines.Tamito Kajiyama
Line styles now have a set of new options for rearranging the stacking order of lines. This gives artists more control to determine which lines should be drawn on top of others. Two available sort keys are the distance from camera and curvilinear 2D length. Since the distance of a line from camera may vary over vertices, another option called integration type is used to compute the sort key for a line from the values computed at individual vertices. Available integration types are MEAN, MIN, MAX, FIRST and LAST (see the tool tips for more detail).
2014-04-17Refactor to Dyntopo node customdata commit.Antony Riakiotakis
Don't use a dedicated node layer but use temporary int layer instead. Works like a charm as long as we are careful resetting the layer when needed (after pbvh clearing and always after bmesh has been filled in undo) Tip by Campbell, thanks!
2014-04-17Support multiple distortion models, including a new division modelSergey Sharybin
This commit makes it so CameraIntrinsics is no longer hardcoded to use the traditional polynomial radial distortion model. Currently the distortion code has generic logic which is shared between different distortion models, but had no other models until now. This moves everything specific to the polynomial radial distortion to a subclass PolynomialDistortionCameraIntrinsics(), and adds a new division distortion model suitable for cameras such as the GoPro which have much stronger distortion due to their fisheye lens. This also cleans up the internal API of CameraIntrinsics to make it easier to understand and reduces old C-style code. New distortion model is available in the Lens panel of MCE. - Polynomial is the old well-known model - Division is the new one which s intended to deal better with huge distortion. Coefficients of this model works independent from each other and for division model one probably want to have positive values to have a barrel distortion.
2014-04-17BGE - button for deactivate sensors, controllers and actuatorsJorge Bernal
This change introduces a new checkbox to deactivate the sensors, controllers and/or actuators. It is useful during the development phase to avoid delete sensors, controllers or actuators if you want to test something new. NOC: The wiki page is being updated (the images mostly), but the feature is already in the 2.71 release log. {F61628} Reviewers: moguri, dfelinto, campbellbarton, dingto, #user_interface, billrey Reviewed By: moguri CC: billrey Differential Revision: https://developer.blender.org/D16
2014-04-16Dyntopo:Antony Riakiotakis
Store PBVH node ID in CustomData. This avoids a number of hash deletions and checks/insertions on big hashes.
2014-04-15Structural cleanup and improvements for the compositor.Lukas Tönne
Many parts of the compositor are unnecessarily complicated. This patch aims at reducing the complexity of writing nodes and making the code more transparent. == Separating Nodes and Operations == Currently these are both mixed in the same graph, even though they have very different purposes and are used at distinct stages in the compositing process. The patch introduces dedicated graph classes for nodes and for operations. This removes the need for a lot of special case checks (isOperation etc.) and explicit type casts. It simplifies the code since it becomes clear at every stage what type of node we are dealing with. The compiler can use static typing to avoid common bugs from mixing up these types and fewer runtime sanity checks are needed. == Simplified Node Conversion == Converting nodes to operations was previously based on "relinking", i.e. nodes would start with by mirroring links in the Blender DNA node trees, then add operations and redirect these links to them. This was very hard to follow in many cases and required a lot of attention to avoid invalid states. Now there is a helper class called the NodeConverter, which is passed to nodes and implements a much simpler API for this process. Nodes can add operations and explicit connections as before, but defining "external" links to the inputs/outputs of the original node now uses mapping instead of directly modifying link data. Input data (node graph) and result (operations graph) are cleanly separated. == Removed Redundant Data Structures == A few redundant data structures have been removed, notably the SocketConnection. These are only needed temporarily during graph construction. For executing the compositor operations it is perfectly sufficient to store only the direct input link pointers. A common pointer indirection is avoided this way (which might also give a little performance improvement). == Avoid virtual recursive functions == Recursive virtual functions are evil. They are very hard to follow during debugging. At least in the parts this patch is concerned with these functions have been replaced by a non-virtual recursive core function (which might then call virtual non-recursive functions if needed). See for example NodeOperationBuilder::group_operations.
2014-04-13Reduce overhead when sampling texture images for brushes. The tests canAntony Riakiotakis
be cached and reused.
2014-04-13Cleanup:Antony Riakiotakis
Naming: Change pressure to size_pressure, it notes correctly that this value is updated and expected to be used for size updating only. Change name of cursor function and since it is used for uv sculpting only now move to the relevant file. Also cleanup unneeded functionality from function. Stroke: Separate updating of stroke variables to invariants (updated when stroke->init = false) and variants.
2014-04-13Split Normals I (1/5): basis for split normals (nearly nothing user-visible ↵Bastien Montagne
here): * Add a new calcLoopNormals function to DerivedMesh struct, and implement it for CDDM and CCGDM (subsurf). EditDerivedBMesh (edit mode DM) only gets a dummy one in this commit. * Add a tessellated version of CD_LOOPNORMAL layer (CD_TESSLOOPNORMAL), with relevant code to handle it (tessellation, rna access, etc.). * Change auto_smooth options of Mesh (angle now in radian internaly, and toggle is now used to enable/disable split normals in DM creation process). Note BI render code is not touched here, hence its behavior regarding this option is now incoherent, will be addressed in a separate commit. Reviewers: campbellbarton CC: brecht Differential Revision: https://developer.blender.org/D365
2014-04-11Blender Internal: remove BLI BVH for raytracing.Brecht Van Lommel
It has no benefits over other BVH types, as far as I know it was only added because it was possible. This also fixes T39344.
2014-04-10Code cleanup: use struct type for mempool & style editsCampbell Barton
2014-04-09View3D: disable LOD when game engine is disabled or ifdef'dCampbell Barton
2014-04-09Code cleanup: remove Object.bbsize, sizefac and padCampbell Barton
2014-04-07Fix T39563: Tiny unit-display problem in constraint panels.Bastien Montagne
There is no good solution here, since RNA props can only have one type/unit. Tried to find the less worse one - have different RNA props for same DNA value (a bit like the angle/length for camera lens). Also fixed two other issues with Transform conctraint: * Angle were still in degrees (yes, another backward-compatibility breacking). * Scale was absolute, unlike loc/rot. Also cleaned up a bit the code, replaced some magic numbers by proper enums, ...
2014-04-03Fix T39517,Antony Riakiotakis
Issue here is that "show diffuse" option does not respect its intended purpose which is to be used only for masking. There are a couple of caveats here: Dyntopo and multires -always- have mask data enabled, and thus as soon as one goes to dyntopo mode or adds a multires modifier he would get the default grey color instead. Matcaps would break when nodes asked for a diffuse material color (this was broken before too). Solved by adding global material state for when matcaps are enabled. Also matcaps don't always played well with VBOs off. Added a few more missing updates for mask operators to notify show_diffuse property as changed. This was also needed on rebuilding dyntopo pbvh. Also make zero mask color duller again after artist feedback.
2014-04-02Replace resize code of image scopes by use of new GRIP button.Bastien Montagne
This deduplicates/simplifies some code. Also cleanup up a bit scopes UI code! Use new GRIP button for uiList grab-resize. This allows us to greatly simplifies the code, and get rid of a few hacks in uiList event handling! Note autosize mode of uiList is now trigered by any value of list_grip below a given threshold, rather than the fixed zero value... Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D343
2014-04-02Add drag-resize to uiTemplatePreview (mat/tex/etc. preview widget).Bastien Montagne
This is done by adding a new button type, GRIP, similar to other numbuttons (scroll, slider, ...), which here controls the preview height. Then, we add a new DNA struct to be able to save that height in Blend files (note I choose not to use Panel struct for this, because we would then have the same limitation we used to have with uiLists, only one preview per panel and no preview outside panel). This implies a change to template_preview UI RNA/py API (each preview needs an ID), but this is backward compatible, as by default datablock type will be used if no ID is given (which means e.g. all material previews with no ID will have same height). Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D342
2014-04-02Cycles: add dedicated UV Map node, easier to find and has convenient auto ↵Kevin Dietrich
complete. Fixes T37954. Reviewed By: brecht, dingto Differential Revision: https://developer.blender.org/D230
2014-04-01Changes to openmp threads commit (UI and RNA)Campbell Barton
- use same names as render threads - remove OpenMP from UI - remove details from tips
2014-03-31Make dyntopo detail size maximum smaller (more than 40 pixels should notAntony Riakiotakis
be needed according to mapping in code) and change the property to float.
2014-03-31Code cleanup: pack BezTriple a little (though size remains same)Campbell Barton
2014-03-31Sculpt/dyntopo: Make the omp threads configurable to overcome performance issuesJens Verwiebe
- autodetect optimal default, which typically avoids HT threads - can store setting in .blend per scene - this does not touch general omp max threads, due i found other areas where the calculations are fitting for huge corecount - Intel notes, some of the older generation processors with HyperThreading would not provide significant performance boost for FPU intensive applications. On those systems you might want to set OMP_NUM_THREADS = total number of cores (not total number of hardware theads).
2014-03-28Implement asymmetric and free handles type for masksSergey Sharybin
Summary: The title actually says it all, it's just possible to have independent free handles for mask splines. Also it's now possible to have aligned handles displayed as independent handles. Required changes in quite a few places, but they're rather straightforward. From user perspective there's one really visible change which is removed Handle Type menu from the panel. With asymmetric handles it's not clear which handle type to display there. So now the only way to change handle type is via V-key menu. Rewrote normal evaluation function to make it deal with new type of handles we support. Now it works in the following way: - Offset the original spline by maximal weight - Calculate vector between corresponding U positions on offset and original spline - Normalize this vector. Seems to be giving more adequate results and doesn't tend to self-intersect as much as old behavior used to, There're still some changes which needed to be done, but which are planned for further patch: - Support colors and handle size via themes. - Make handles color-coded, just the same as done for regular bezier splines in 3D viewport. Additional changes to make roto workflow even better: - Use circles to draw handles - Support AA for handles - Change click-create-drag to change curvature of the spline instead of adjusting point position. Reviewers: campbellbarton CC: sebastian_k, hype, cronk Differential Revision: http://developer.blender.org/D121