Commit Graph

6138 Commits

Author SHA1 Message Date
Campbell Barton
ab913fe15d add length average option to 'Follow Active Quads' unwrap, gives nicer results. 2013-01-04 07:57:33 +00:00
Campbell Barton
1e762a29ee change bpy.app.build_options from frozen set to PyStructSequence_Field, mathes similar members of bpy.app and less error prone (typos won't fail silently). 2013-01-04 04:43:49 +00:00
Campbell Barton
9dbe85c17e expose common extensions for image/movie/audio types, since python scripts had to do this internally.
- bpy.path.extensions_image
- bpy.path.extensions_movie
- bpy.path.extensions_audio

eg:

  if os.path.splitext(filename)[1].lower() in bpy.path.extensions_image:
      ... we have an image ...
2013-01-04 03:47:37 +00:00
Campbell Barton
84f229536a fix [#33715] Dirty Vertex Colors display problem since 2.65a 2013-01-03 07:01:41 +00:00
Antony Riakiotakis
ab9915ba8d revert 53478, it looks this is still useful for a couple of use cases in non-projective texture painting such as stamping a static texture and using image space size in pixels. 2013-01-02 20:51:47 +00:00
Campbell Barton
ea2224e28d changes needed for EDL import to work again.
- add sequence.update(data=False) function.
- made some sequence vars editable.
- correct some comments.

also rename rna function sequence.getStripElem() --> strip_elem_from_frame()
2013-01-02 16:15:45 +00:00
Bastien Montagne
dadb1ccd92 Fix [#33189] AFTER 2.65 - Units in doc strings in ocean modifier.
Also:
* Fixes a (op prop) bug which prevented, once you had baked and freed ocean once, to bake again.
* Fixed infinite values of acumulated foam when baking with foam_fade values above 1.0, now simply clipping accumulated foam value to 1.0, as already done for the "instantaneaous" foam value returned by BKE_ocean_jminus_to_foam().
* Added missing RNA descriptions.
* Made foam_fade unanimatable!
* Added in UI some missing properties that are imho useful: random seed, size (kindof 'surface scaling'), and foam_fade (baking only).
* Removed custom lerp() func from bke's ocean.c, BLI's interpf does exactly the same thing (the first two args are just in reversed order). Note: this could most certainly be done in other parts of the code, bpy's mathutils for e.g. has its own linear interpolation code for vectors and matrices :/).
* Did some general code cleanup (mostly line length and no C++ -> C comments)...
2013-01-02 16:03:58 +00:00
Alex Fraser
5e0e62f040 Patch [#29035] Vertex colour baking
There is a new option in the Bake panel to enable baking to vertex colors. Unlike regular baking, this mode does not require a UV map or image to bake to, however the object must have a vertex color layer.

Thanks to:
 - AutoCRC for funding
 - Brech van Lommel and Dalai Felinto for their initial advice on how to implement it
 - Campbell Barton for helping to make this feature work with modifiers and bmesh
2013-01-02 00:05:30 +00:00
Campbell Barton
e4f65749f9 remove vertex selection check for weight paint mode so you can paint through the mesh.
also made the wire draw without depth masking when the depth check is off, similar to mesh editmode drawing, nice hint about whats going on.
2013-01-01 11:47:47 +00:00
Antony Riakiotakis
b79ec3ac2e UI cleanup: fixed texture is a 2d image painting option, hide in 3D viewport toolbar 2013-01-01 11:46:12 +00:00
Campbell Barton
4e1da54b5e add back initial autocomplete support.
- This doesnt use python as 2.4x did, instead it just autocompletes based on the text files unique identifiers so its useful for any language.
- key is same as console (Ctrl+Space)
2012-12-31 15:11:36 +00:00
Bastien Montagne
44632295b3 Some minor cleanup in camera's FOV angle props (mostly use DEG2RAD macro, and remove reference to degrees in tips - user is free to use radians if he prefers!). 2012-12-31 14:52:55 +00:00
Sergey Sharybin
08cea96ab0 Alpha premul pipeline cleanup
This assumptions are now made:
- Internally float buffers are always linear alpha-premul colors
- Readers should worry about delivering float buffers with that
  assumptions.
- There's an input image setting to say whether it's stored with
  straight/premul alpha on the disk.
- Byte buffers are now assumed have straight alpha, readers should
  deliver straight alpha.

Some implementation details:

- Removed scene's color unpremultiply setting, which was very
  much confusing and was wrong for default settings.
  Now all renderers assumes to deliver premultiplied alpha.

- IMB_buffer_byte_from_float will now linearize alpha when
  converting from buffer.

- Sequencer's effects were changed to assume bytes have got
  straight alpha. Most of effects will work with bytes still,
  however for glow it was more tricky to avoid data loss, so
  there's a commented out glow implementation which converts
  byte buffer to floats first, operates on floats and returns
  bytes back. It's slower and not sure if it should actually
  be used -- who're using glow on alpha anyway?

- Sequencer modifiers should also be working nice with straight
  bytes now.

- GLSL preview will predivide float textures to make nice shading,
  shading with byte textures worked nice (GLSL was assuming straight
  alpha).

- Blender Internal will set alpha=1 to the whole sky. The same
  happens in Cycles and there's no way to avoid this -- sky is
  neither straight nor premul and doesn't fit color pipeline well.

- Straight alpha mode for render result was also eliminated.

- Conversion to correct alpha need to be done before linearizing
  float buffer.

- TIFF will now load and save files with proper alpha mode setting
  in file meta data header.

- Remove Use Alpha from texture mapping and replaced with image
  datablock setting.

  Behaves much more predictable and clear from code point of view
  and solves possible regressions when non-premultiplied images were
  used as textures with ignoring alpha channel.
2012-12-31 13:52:13 +00:00
Bastien Montagne
b3aa368c8f Usual UI messages-related fixes... 2012-12-30 23:21:33 +00:00
Nicholas Bishop
21d79cf769 Add UI and keybindings for dynamic-topology sculpt mode
* New topology panel in 3D view toolbar with the enable/disable button
  for dynamic topology and other controls

* Ctrl+DKEY to toggle dynamic topology

* Shift+DKEY to show a radial control for detail size
2012-12-30 18:31:17 +00:00
Nicholas Bishop
fc442dbd51 Add DNA/RNA/BKE infrastructure for dynamic-topology sculpt mode
* Add a detail_size field to the Sculpt struct, two new sculpt flags,
  and a Mesh flag for dynamic-topology mode; that's it for file-level
  changes needed by dynamic topology

* Add RNA for the new DNA field and flags

* Add a new icon for dynamic-topology created by Julio Iglesias. TODO:
  update the icon for the new SVG icon format

* Add a SculptSession function for converting from BMesh to Mesh,
  handles reordering mesh elements and setting face shading
2012-12-30 18:27:33 +00:00
Brecht Van Lommel
b3d365289f OSL Templates: remove unnecessary stdosl.h include. 2012-12-30 10:37:32 +00:00
Thomas Dinges
f7e8ffdb85 OSL Templates:
* Add 3 simple templates:
** empty_shader.osl: A basic shader declaration to start with
** wireframe.osl: Simple wireframe shader
** noise.osl: Simple noise shader, with 3 noise types.
2012-12-30 03:11:52 +00:00
Campbell Barton
33955940e4 add templates menu for OSL, use preprocessor directive color for decorators in python. 2012-12-30 01:39:55 +00:00
Campbell Barton
79c2571e56 user-preferences for addons. currently unused, example & docs still to come. 2012-12-29 10:24:42 +00:00
Lukas Toenne
ed713803f5 Fix for the NODE_OT_add_node operator. The way python classes were subclassed does not work with the registration mechanism. Combined both node_add and node_add_move operators into a single general operator with a flag. When use_transform is set, the operator will start transform on the new nodes after inserting. 2012-12-29 08:46:27 +00:00
Campbell Barton
bc9ad1270b set line endings to native & mime type to text/plain for .app/Contents/MacOS/xxx files. 2012-12-29 03:19:30 +00:00
Thomas Dinges
f098407f02 i18 Spell check:
* Wrong comma sequence in spell_check_utils.py
2012-12-28 20:32:29 +00:00
Bastien Montagne
c587c985e8 Fix [#33424] Inadequate bake action.
bake_action tries to make kind of a 'visual keying'... On one side, this is rather stupid when you keep constraints (in this case, keying actual loc/rot/scale transforms, i.e. matrix_basis, is enough, doing more would lead to unexpected behavior with some constraints). On the other one, making a good visual keying of bones is *really* tricky, so now using the new object's convert_space() func to compute that (when the user chooses to remove the constraints).

Incidentally, this greatly simplifies the code of bake_action!
2012-12-28 13:34:19 +00:00
Campbell Barton
d984c46701 remove type checks on drawing uiList's,
if the list is given the wrong item then the script needs to be fixed, better not fail silently.

left in checks as commented out asserts.
2012-12-28 10:45:59 +00:00
Bastien Montagne
7504cf34b4 This commit frees list ui items from their dependencies to Panel, and hence from all the limitations this implied (mostly, the "only one list per panel" one).
It introduces a new (py-extendable and registrable) RNA type, UIList (roughly similar to Panel one), which currently contains only "standard" list's scroll pos and size (but may be expended to include e.g. some filtering data, etc.). This now makes lists completely independent from Panels!

This UIList has a draw_item callback which allows to customize items' drawing from python, that all addons can now use. Incidentally, this also greatly simplifies the C code of this widget, as we do not code any "special case" here anymore!

To make all this work, other changes were also necessary:

* Now all buttons (uiBut struct) have a 'custom_data' void pointer, used currently to store the uiList struct associated with a given uiLayoutListBox.

* DynamicPaintSurface now exposes a new bool, use_color_preview (readonly), saying whether that surface has some 3D view preview data or not.

* UILayout class has now four new (static) functions, to get the actual icon of any RNA object (important e.g. with materials or textures), and to get an enum item's UI name, description and icon.

* UILayout's label() func now takes an optional 'icon_value' integer parameter, which if not zero will override the 'icon' one (mandatory to use "custom" icons as generated for material/texture/... previews).
  Note: not sure whether we should add that one to all UILayout's prop funcs?

Note: will update addons using template list asap.
2012-12-28 09:20:16 +00:00
Bastien Montagne
f339c63584 We now have some Catalan, but no Amharic nor Estonian yet! 2012-12-24 17:55:00 +00:00
Bastien Montagne
ec4fc2e132 Usual minor UI messages tweaks... 2012-12-24 17:40:47 +00:00
Mitchell Stokes
a1c9241797 BGE: "Fix" for issue [#33663] "Objects Share Materials / Textures When Grouped In SingleTexture / MultiTexture Mode" reported by Josiah Lane (solarlune).
This commit adds a UI option in the Render properties to enable the new material caching in the converter. This caching can cause problems with Singletexture and Multitexture materials when texface is being used to handle materials. By default this option is enabled and users with broken games have two options:

  1) Fix up their materials so they are properly using textures
  2) Disable the material caching and take a speed hit during conversion time

Regardless of the setting, caching is always enabled for GLSL materials.
2012-12-24 03:13:53 +00:00
Thomas Dinges
388c08c88b User Interface / Preferences:
* Added a new "Text Style" area into the theme section, with settings to control font kerning, shadow size, color and offset.
2012-12-24 00:29:24 +00:00
Bastien Montagne
c4a165f168 Adding Scale Visual keying (and de-duplicated part of the code returning visual values to key). 2012-12-23 10:51:48 +00:00
Campbell Barton
0ac66ada2d initial support for 'occlude background geometry' in weight paint mode.
Only support mouse vertex select at the moment.
2012-12-23 01:54:11 +00:00
Campbell Barton
a735a2370b Weight gradient tool for weight paint mode
- blends from current weight into alpha zero.
- uses brush alpha & curve.
- respects weight paint vertex/face select modes.
- updates realtime.


Access With
- Alt+LMB (linear gradient)
- Ctrl+Alt+LMB (radial gradient)


note:
- WM_gesture_straightline_* are used but not well suited to this task, may end up replacing with own modal operator.
- Key handling works but needs to be done better.
2012-12-22 08:19:27 +00:00
Pablo Vazquez
8062bcd16f Text Editor: Gray out the Register check unless the file has .py extension. (feature lost since July) 2012-12-22 05:04:30 +00:00
Campbell Barton
0ae16da000 rename rna prop _parenting -> _parent 2012-12-21 12:17:30 +00:00
Campbell Barton
f25618f29a make Node.links return a tuple, this may you can't do socket.links.append() by mistake.
removed RNAMeta mixin class since you cant register subclasses.

also some minor code cleanup
2012-12-21 12:16:13 +00:00
Ton Roosendaal
915f78af92 Armature bone feature:
New Bone option: "Relative Parenting". 

This makes Child-Objects of Bones transform similar to how deformations 
of bones are calculated. Allows to move bones in editmode to set pivot.

The option is in Bone Panel, with clear label. 
It is ON now by default when you add new bones

Requested by Kjartan, our famous robot designer :) For "hard body rigs" it's
very useful.
2012-12-21 12:07:28 +00:00
Lukas Toenne
74ea6d93da Explicit python class for NodeSocket RNA type in bpy_types. This defines a utility property for getting links to or from a node socket, as discussed on bf-committers:
http://lists.blender.org/pipermail/bf-committers/2012-December/038555.html

Note: NodeTree and Node currently use standard python classes generated by bpy for now. The customnodes branch defines such classes as well, with specialized metaclasses for use with ID properties. Not needed in trunk yet.
2012-12-21 11:31:59 +00:00
Ton Roosendaal
566d350369 UI todo:
- Recoded soft shadow drawing for menus, giving better predictable results
  (and round off nicer on top side, was looking bad still)
- Brought it under DPI control
- Added Theme setting to control size and strength for it.

Max size 24 pix:
http://wiki.blender.org/index.php/File:MenuShadow.png
2012-12-20 16:50:39 +00:00
Campbell Barton
0e3d637ad0 Change region drawing callbacks to work much closer to how blender manages them internally.
- yes, this does break scripts, but the api is marked experimental.


ED_region_draw_cb_activate() adds a callback to a region type whereas the api made it look like the callback was being added to the region instance.
Use a class method on bpy.types.Space to manage region drawing, eg.

was:
  self._handle = context.region.callback_add(draw_callback_px, args, 'POST_PIXEL')

is now:
  self._handle = bpy.types.SpaceView3D.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_PIXEL')
2012-12-20 13:29:58 +00:00
Ton Roosendaal
80bcc20835 Updated icon svg and bitmaps. Now has the movieclip editor again :) 2012-12-20 12:56:46 +00:00
Campbell Barton
423994bf39 py api: add restrict state context manager (thats python's context not blenders context),
which restricts bpy.context and bpy.data.

enable this for loading scripts in 'startup' too.
2012-12-20 03:56:22 +00:00
Campbell Barton
3bc3e178b3 style cleanup 2012-12-20 00:29:31 +00:00
Bastien Montagne
be67de7cab More tweaks to WeighVG icon 2012-12-19 16:48:06 +00:00
Campbell Barton
17c5c9935c icon update [#33448] Adding Vector Sources for Icons
from:	Blender ICONS - v.2.5.08 (GPL).svg

also updated the shell script.
2012-12-19 14:57:01 +00:00
Sergey Sharybin
cdb6aad54c Multires baker: renamed Number of Rays to Samples after discussion with Brecht 2012-12-19 12:30:39 +00:00
Campbell Barton
ef665b3d18 dissallow access to the context while addons import and register.
Since the window manager is needed for keymaps this is kept as an exception.

some addons will need updating, but in every case I've seen addons should not be accessing the context while registering.
(bad stuff! - declaring the scene as a global variable - which crashes when the users loads a new file, manipulating the active object or scene... tsk tsk)
2012-12-19 07:27:23 +00:00
Mitchell Stokes
ef0473994b BGE: Some as of yet unmerged work I did in the Swiss branch. These changes include:
* Cleaning up the conversion code to avoid a per-face material conversion. Materials are now stored in buckets and only converted if a new material is found. This replaces some of Campbell's earlier work on the subject. His work wasn't as thorough, but it was much safer for a release.
  * Shaders are only compiled for LibLoaded materials once. Before they could be compiled twice, which could really slow things down.
  * Refactoring the rasterizer code to use a strategy design pattern to handle different geometry rendering methods such as immediate mode, vertex arrays and vertex buffer objects. VBOs are added, but they will be disabled in a following commit since they are still slower than vertex arrays with display lists. However, VBOs are still useful for mobile, so it's good to keep them around.
  * Better multi-uv support. The BGE should now be able to handle more than two UV layers, which should help it better match the viewport.
2012-12-18 20:56:25 +00:00
Ton Roosendaal
8168fba972 Icons now draw good again!
- Exported via Inkscape a 16 and 32 pixel bitmap version
- Use these as mipmap levels for OpenGL texture drawing.
- Changed code to get right sizes for drawing icons - better than last week's method.

Todo:

- Custom icons don't work yet (old one)
- Missing icons in the svg
- The .sh script for inkscape needs changed to support this
  (now do manual saving)
2012-12-18 19:35:54 +00:00
Bastien Montagne
edf826d924 Various minor fixes to i18n code (mostly, translation of enum items' tooltips was wrongly bound to iface option, not tooltips one, and recent changes in r53119 were incorectly using BLF_pgettext, made them simpler by using CTX_IFACE_ macro).
Also fixed CTX_FOO_ macros when building without i18n, those were kinda wrong.

And hid i18n ui section in userpreferences when built without its support too.
2012-12-18 18:25:48 +00:00