Commit Graph

6142 Commits

Author SHA1 Message Date
Campbell Barton
b96172cb05 UI: Add back ability to select a custom interface font 2014-06-14 02:32:38 +10:00
Dalai Felinto
aed67dc8a4 Bake-API: Set Custom Cage to be Cage Object
Suggestion by Andy Davies (metalliandy) to conform with industry standard (custom cage is something else apparently)

Note: this is the last bake related commit I plan for 2.71/rc (unless
everyone agrees that we could squeeze in D546 - custom UVs, which would
be really nice to add for 2.71 scripters)

Note 2: I'll update the wiki docs shortly
2014-06-11 22:49:30 -03:00
Antony Riakiotakis
7b5fe4f316 Fix flickering when transform snapping in edit mode and cursor is
slightly outside the mesh.

Reported by Thomas Beck on irc. Issue here is that the mesh bounding box
changes as we are transforming the vertices. Solution is to collide
against the initial bounding box. Unfortunately the snapping functions
are made in a way that a lot of code needed to be tweaked here, but the
change should be straightforward and harmless (famous last words, I
know).

Ideally we might want to even increase the size of the bounding box a
little (as seen in screen space) to allow snapping even in cases where,
cursor is slightly outside the bounding box, but since this is not so
straightforward to do for all cases, at least for me, leaving this as
a TODO.
2014-06-12 01:43:38 +03:00
Dalai Felinto
a8a536d23d Bake-API: new approach for cage
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-11 02:39:35 -03:00
Bastien Montagne
131d388d81 Usual UI message handling... 2014-06-09 21:52:10 +02:00
Tamito Kajiyama
269b14f184 Freestyle: Fix for viewport render not updating with changes of Freestyle settings. 2014-06-06 09:58:43 +09:00
Campbell Barton
02808f2774 UI: higher precision for IK poll angle 2014-06-06 09:51:08 +10:00
Antony Riakiotakis
d4c078b887 Fix T40342 smooth shading flag in dyntopo does not work under MSVC.
Classic case of integer flag AND-ing result passed to boolean and
failing.
2014-06-01 20:44:12 +03:00
Campbell Barton
47bf77951a Fix T40411: UI incorrectly permits changing materal_slots on linked obdata 2014-05-29 16:21:15 +10:00
Antony Riakiotakis
1c5ffdd55e Fix T40387, image api save and pack did not fire notifiers. 2014-05-27 23:01:09 +03:00
Sergey Sharybin
1539785963 Fix T40359: Scene / Color Management: White Point Mapping Has Limit 2014-05-26 16:28:07 +06:00
Campbell Barton
eaf815f14a Fix for curve having invalid active vertex after setting type
also allow passing NULL vertex to BKE_curve_nurb_vert_active_set
2014-05-26 09:35:32 +10:00
Sergey Sharybin
f5055d8688 Some operation allowed to set invalid active scene render layer
Forbid this now and do tricks in the versioning code to repair
corrupted files.

Thanks to Pablo, Caminandes and Koro for discovering this bug!
2014-05-23 18:30:36 +02:00
Bastien Montagne
7ab602b730 Correction to previous commit, sorry about that. :/ 2014-05-22 14:03:32 +02:00
Bastien Montagne
1dd977272b PackedFiles: add (readonly for now) access to packed raw data (most useful for exporters). 2014-05-22 13:57:35 +02:00
Campbell Barton
c6de033bf1 Fix T38493: ray_cast causes runtime error with no faces 2014-05-22 17:11:44 +10:00
Brecht Van Lommel
27cebb2651 Fix T39711: cycles particle motion blur affected by viewport draw method. 2014-05-21 15:51:37 +02:00
Campbell Barton
9296f0c2fe This reverts commit c998d6d4b5. 2014-05-20 21:35:34 +10:00
Campbell Barton
c998d6d4b5 Fix T40224: Crash moving objects to another layer
passing NULL to BLI_sprintfN crashed in some cases.
2014-05-20 21:01:02 +10:00
Campbell Barton
d9dd29054f Style cleanup 2014-05-20 00:11:16 +10:00
Bastien Montagne
875aff2a9a Fix T39897: shape keys created while the Relative checkbox is unchecked start out with frame=0
So! First, frame for absolute shape keys: never allow a new key to have the same pos as an
existing one (this does not make sense). This way, the two workflows are possible (create
all keys and then animate ctime, or animate ctime and then create keys where you need them).

Also, fixed UIList for shapekeys, the "absolute" test was wrong, and better to show frame
value, even though not editable, than nothing in case of absolute keys.

And finally, add getter to RNA 'frame' readonly value, so that we output real frame values,
and not dummy internal ones (which are /100) in our API.
2014-05-18 22:05:21 +02:00
Bastien Montagne
d1dde3c981 Fix T40251: Rename of Shape key is not redrawed in Dopesheep. 2014-05-18 20:30:48 +02:00
Campbell Barton
e8630bdccf Comment unused BLI_rebase_path 2014-05-19 00:00:59 +10:00
Antony Riakiotakis
57e1ec2308 Fix part of T39708, don't overupdate particles when changine active
particle texture slot
2014-05-16 01:23:25 +03:00
Campbell Barton
c7ab68f1c4 Fixes for font underline
- underline faces had flipped winding by default.
- BKE_vfont_to_curve_ex disallowed 0 underline height (annoying when sliding value)
- disallow negative underline height since it flips underline direction (just change position + height)
2014-05-15 16:04:08 +10:00
Campbell Barton
d8c39b8789 FCurve: move add modifiers logic from menu into dynamic enum 2014-05-14 14:41:43 +10:00
Campbell Barton
254c724aa1 FCurve: stop generic rna update from changing curve handle type 2014-05-14 13:31:34 +10:00
Campbell Barton
5cc1e03540 Code cleanup: indentation 2014-05-14 06:37:56 +10:00
Tamito Kajiyama
19b82be61e Freestyle: Added .new() and .remove() to the collection type of Python style modules. 2014-05-13 16:18:32 +09:00
Tamito Kajiyama
c0d96e1d1e Freestyle: minor UI text fix. 2014-05-13 16:18:31 +09:00
Tamito Kajiyama
db338a6585 Freestyle: naming fixes.
FreestyleSettings and FreestyleModuleSettings are now defined as RNA aliases of
FreestyleConfig and FreestyleModuleConfig, respectively.
2014-05-13 16:18:30 +09:00
Tamito Kajiyama
2c72bb1c19 Freestyle: code clean-up. 2014-05-13 16:18:29 +09:00
Tamito Kajiyama
a31962287a Freestyle: Added .new() and .remove() methods to collection types of line style modifiers. 2014-05-13 16:18:28 +09:00
Bastien Montagne
1c2e6de969 Usual typo and style fixes in UI messages... 2014-05-12 23:08:31 +02:00
Lukas Tönne
204ba76ee0 A bit more helpful doc strings on the curve render resolution properties. 2014-05-12 08:07:33 +02:00
Tamito Kajiyama
3844e30e45 Freestyle: Added handling of a user-specified name for creating a new line set. 2014-05-11 17:57:43 +09:00
Tamito Kajiyama
bbd611362c Freestyle: Added .new() and .remove() methods to the Linesets collection type. 2014-05-11 17:57:40 +09:00
Joshua Leung
49cde5d8c1 Drivers: When editing expressions from UI buttons, "invalid" flags now get cleared from the drivers
With this change, there should hopefully be less need to hit "Update Dependencies"
on drivers so often.
2014-05-08 17:57:11 +12:00
Mitchell Stokes
ee5284faf6 BGE: Dynamically-allocated action layers
This patch removes the limitations on the number of action layers in the BGE.

BL_ActionManager currently uses a fixed array to keep track of the action layers. This patch replaces the fixed array with a map which allows for dynamic allocation of action layers. Layers (map items) are automatically removed on BL_ActionManager's update function. The maximum number of layers is roughly the value of a short. Backwards functionality is maintained and there are no changes to the Python API.

Task Discussion:
https://developer.blender.org/T39572

Author: Kevin Ednalino

Reviewers: moguri

Differential Revision: https://developer.blender.org/D491
2014-05-07 20:32:50 -07:00
Matt Heimlich
3fbc984b06 Nodes: add absolute value operation to all math nodes
Reviewed By: dingto, brecht

Differential Revision: https://developer.blender.org/D507
2014-05-07 16:43:59 +02:00
Joshua Leung
2679eaa712 Bugfix: Bend modifier's angle property has crazy limits
As reported by ZanQdo on IRC, the bend modifier's "angle" property had a range
of +/- 572.95 degrees (equivalent to 10 radians). From the looks of things, this
was simply something overlooked when doing degrees to radians conversions. Now
it has a range of +/- 180 degrees.
2014-05-07 14:20:03 +12:00
Bastien Montagne
036de9bfa5 Make bpy.types.EditBone.matrix writeable.
Makes importing armatures from matrices (FBX...) *much* easier.
2014-05-05 20:57:52 +02:00
Tamito Kajiyama
f5d9f45a6f Freestyle: Revised a UI text for better understandability in the Outliner. 2014-05-05 19:54:55 +09:00
Tamito Kajiyama
3c3759ac9e Added notifier of updates in Freestyle texture slots. 2014-05-03 20:38:42 +09:00
Tamito Kajiyama
b7f085d9c1 Patch D246: Texture Marks for freestyle strokes, written and contributed by Paolo Acampora.
Reviewers: brecht, kjym3, #freestyle

Reviewed By: brecht, kjym3

Differential Revision: https://developer.blender.org/D246
2014-05-03 18:54:59 +09:00
Dalai Felinto
97641a0ec9 Bake API - bpy.ops.object.bake()
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-02 21:19:08 -03:00
Campbell Barton
b245d3577a View2d: bring back 2.4x option to lock time for 2d views 2014-05-01 14:49:47 +10:00
Sergey Sharybin
1760763bec Frame cursor color was missing for the image editor 2014-04-30 17:40:02 +06:00
Joshua Leung
3150925ae8 Partially revert ef3eb7adc6
The .exe extension *is* needed on Windows for makesrna, contray to the
patch author's protestations otherwise. Omitting it breaks compilation
on mingw at least (i.e. "rename()" fails). Thanks to "PerfectionCat"
for narrowing down this bug.

makesdna on the other hand still seems to work ok from a quick test I did.
Unless more issues crop up, just reverting this part of the patch should
be ok, though IMO these changes were unnecessary in the first place.
2014-04-30 14:58:06 +12:00
gaiaclary
2322f37678 reduced minimum value for NDOF sensitivity to better fit the space navigator 2014-04-29 16:30:38 +02:00