Commit Graph

8535 Commits

Author SHA1 Message Date
Campbell Barton c19baf85cc [#18694] Added support for Wavefront OBJ groups for both the import and export scripts
from Paolo Ciccone (pciccone) 

Im not that keen on this functionality since vertex groups in blender are for weight painting and OBJ's groups are more like sub-objects, The conversion between these is a poor approximation (one vertex group per face).
But this is still useful for using blender with poser so accepting these 2 patches.

Made some changes from the patch
*Export*
- vgroup off by default, since this is mainly useful for corner cases
- findVertexGroupName() - changed how exporting selects a vertex group for a face, use the highest combind weight for each group instead of  the number of checking how many times the verts are in a group because they could have a zero weight.
- findVertexGroupName() - would fail if a faces verts were not in any groups, now return a (null) group
- Allow modifiers to export with vgroups

*Import*
- disable by default
- ignore (null) groups
- fixed a problem where the patch broke SPLIT_GROUPS
- move the group definition out of global namespace, breaks importing as a module.

--- Patch submission info
The import/export scripts included with Blender 2.48 don't save/preserve groups defined in OBJ file. This presents a
couple of issues: users loading an obj file with groups are not able to use a rather important set of data. When the
file is then saved the groups are lost bringing up both the issue of data loss and loss of functionality as groups are
used for rigging and morph target creation for Poser/DAZ Studio and all compatible applications. Of course other
animation/modeling packages that use OBJ files might be affected.

The solution that I present here simply patches the excellent python scripts written by Campbell Barton and Jiri Hnidek.
The new code implements the preservation of groups by creating Blender vertex groups during import and by re-writing
those groups in the OBJ file during export. Of course group ownership is idetermined at the face/polygon level and not
at the vertex level.

This rather simple solution makes Blender instantly one of the better tools to create Poser Morph targets (Full Body
Morphs) and conforming figures and clothing.  Of course it's also adding a more complete support for the whole OBJ spec.

The patches are fitting well inside the established logic, have a minimal impact and are totally transparent to the
user. See the attached video (about 7 minutes long) for more details.

I noticed that the original scripts are formatted with tabs. I think it would be a good idea to follow the standard
Python recommendation and convert the scripts to use spaces. I didn't want to do it on my side as it would generate
a patch that replaces the whole file, not something that I wanted to do with my first submission :) But it would help
if people with access to SVN could do it.

Here is a short video that demonstrates the updates:
http://www.paolociccone.com/blender_obj_scripts.html

Cheers!
----
2009-05-13 00:20:14 +00:00
Thomas Dinges 03b6b14df4 2.5 Buttons:
* Added basic Halo material options
2009-05-12 19:28:49 +00:00
Thomas Dinges f487a96302 2.5:
* Added empty buttons
* Added missing empty notifiers
2009-05-11 17:34:31 +00:00
Campbell Barton 7002faac31 Another Noise Tool svn commit is complaining about mixed line endings so after 16 attempts I wont include the full message 2009-05-11 12:38:24 +00:00
Campbell Barton 9f012ead0c made the material button use the active objects material 2009-05-11 08:40:50 +00:00
Joshua Leung f1e89051c7 2.5 - Restored 'Render Anim' button!
After quite a bit of searching, I finally found where the various UI functions were wrapped for use in Py Layouts. 

For the reference of others, check out editors/interface/interface_api.c
2009-05-11 06:55:11 +00:00
Campbell Barton 0a17250dca going out on a limb and removing this without asking anyone.
nobody seriously uses this format for graphics these days, and if they did, the export from blender is unlikely be to be useful, its just different views of the mesh edges projected into a 2D xfig file (quantized to int's too).
2009-05-11 05:47:14 +00:00
Campbell Barton a220ae2f60 2D Cutout Image Importer
from Kevin Morgan (forTe)

imports images as quads in the 3D view

made some changes
- images that fail to import give an error popup rather then a script error
- extension input is only shown for batch directory importing
- extension comparison is now case insensitive
- importing images from "/" failed, (bug in Blender.sys.dirname), use os.path.dirname since os is needed for batch import in other places.
- disable Esc for quitting because escaping from the file selector would quit the script too.
2009-05-11 05:35:32 +00:00
Campbell Barton dcee43b449 bolt wizard from Aaron Keith (Spudmn), edits from Brendon and myself.
Minor changes are...
- default size is smaller then it was but still too big IMHO, presets are huge.
- deselect all objects and make the new bolt active
- place the new bolt at the 3D cursor location
2009-05-11 05:10:09 +00:00
Campbell Barton 1a8bbba7bd new script to copy the active object to all other selected objects transformation.
When turning many assets into DupliGroups there was no way to do this other then manually copying the loc/size/rot for each object manually.
2009-05-11 00:56:48 +00:00
Campbell Barton da3bdefb7a update script templates for new BGE api attributes 2009-05-11 00:19:55 +00:00
Thomas Dinges c32a3bd73b 2.5 Buttons:
*Added initial material buttons (Material Color, Ray Transparency, Ray Mirror, Subsurface Scattering)
Only works for default material atm. 

*some layout tweaks to the lamp panels.
2009-05-10 12:12:05 +00:00
Thomas Dinges acb4d58120 2.5 Buttons:
* Added more lamp buttons and cleaned up the layout
2009-05-09 10:33:06 +00:00
Thomas Dinges 5fa80e74a1 2.5 Buttons:
* More Lamp options: Shadow and Spot (WIP, incomplete)
* Added initial lattice panel
2009-05-08 21:52:57 +00:00
Thomas Dinges bf2daa56c1 2.5 Buttons:
* Split the buttons_data.py into separate files, this makes it easier to maintain them. 
Notes: Added an extra modifier file, because modifiers are for different object types.

* Added basic lamp buttons and Sun/Sky settings.
As the camera buttons they only work for the default light object for now.

* Some minor code cleanup
2009-05-08 18:17:57 +00:00
Campbell Barton cdba1ddd5d BGE Python owned proxies had a problem being decref'd twice, this would crash on freeing KX_Vertex/Poly Proxy types when python was compiled with debug options enabled.
add_mesh_torus.py wasnt tested from update, will go through all edited scripts and test :\
2009-05-07 22:06:27 +00:00
Campbell Barton 3d60c4e746 [#18702] FBX exported hemi light crashes maya
- bugfix, off by 1 when clamping lamp types, caused blender to write an invalid lamp type
- error in last commit (renamed function)
2009-05-06 21:47:24 +00:00
Campbell Barton 899c669557 [#18328] FBX exporter not exporting multi-texture materials properly
even though the format allows materials and textures to be written separately the textures wont load right in maya or 3dsmax unless each texture has its own material.
2009-05-06 06:01:09 +00:00
Campbell Barton de4f811b4b - Export hard edge and face info
- Use Edges field rather then 2 vert faces (worked in some apps but crashed maya)
2009-05-06 04:24:01 +00:00
Remigiusz Fiedler 7a0841cbb6 dxfLibrary.py - modif in POLYLINE class 2009-05-06 02:19:16 +00:00
Campbell Barton 4bc6749403 [#18695] Replace python errors with useful messages when no full python installation is found
from Philipp Oeser (lichtwerk)
2009-05-05 21:51:54 +00:00
Campbell Barton 2bce9ff1d1 DXF export with a single nurbs curve failed 2009-05-05 21:47:58 +00:00
Thomas Dinges 33322ad1ff 2.5 Buttons:
* Some minor code cleanup
* More tweaks to match the Layout Guidelines "Dependencies ".
2009-05-05 04:07:08 +00:00
Matt Ebb 08df158672 * More icon updates, thanks to Jendryzch. That's all the modifiers now, I think! 2009-05-05 02:24:58 +00:00
Campbell Barton e29e329885 [#18650] fbx export assigning textures to wrong materials...
also fixed an error that made this script fail when python wasnt found.
2009-05-04 21:49:25 +00:00
Thomas Dinges b753d6fd2d 2.5 Buttons:
* Tweaked the scene buttons to be more consistent with the Layout Guidelines. http://wiki.blender.org/index.php/BlenderDev/Blender2.5/UIlayoutGuide

* Modifier panel is now also visible on non mesh objects, like curves, text etc.
2009-05-04 18:45:58 +00:00
Ken Hughes 40fa6b0f37 Fix some spelling errors. 2009-05-04 16:03:54 +00:00
Thomas Dinges eaf717c500 2.5 Data Buttons:
* Added camera buttons.
* Added poll to check on active object type.

ToDo:
* Lens Unit "lens" and "angle" don't update each other. Needs RNA fix. 
* Buttons only work for default camera now, needs better context.
2009-05-04 15:53:55 +00:00
Campbell Barton 3226b33e48 python geometry function Geometry.BezierInterp(vec_knot_1, vec_handle_1, vec_handle_2, vec_knot_2, resolution)
can use 2D-4D vectors

Also made 3ds import give a message when no python installed
2009-05-04 13:01:18 +00:00
Matt Ebb 387df32933 * Icon updates and fixes
* Made the buttons space listen to and update for new active objects
* Cleaned up the Add Object menu
2009-05-04 07:04:48 +00:00
Campbell Barton 22b501c791 fixes for bugs submitted by BGE users, fixes by myself and Mitchell Stokes
- when the attribute check function failed it didnt set an error raising a SystemError instead
- Rasterizer.getMaterialMode would never return KX_BLENDER_MULTITEX_MATERIAL
- PropertySensor value attribute checking function was always returning a fail.
- Vertex Self Shadow python script didnt update for meshes with modifiers.
2009-05-03 09:21:58 +00:00
Joshua Leung 792449f8f0 2.5 - Restored access to the Image-Type setting
This has been wrapped under Scene.RenderData, and can currently be accessed under the 'Image' panel in the Scene settings. 

As in the old code, image types are only included if they are enabled when compiling. Also note that image-type specific settings have not been wrapped yet.
2009-05-01 11:57:14 +00:00
Campbell Barton 3bc02088e8 remove uneeded checks and testMethod from KX_ConstraintWrapper, typo in import_obj 2009-04-29 10:24:12 +00:00
Matt Ebb a010139085 * Updated icons from Jendryzch. Thanks! 2009-04-29 02:47:28 +00:00
Brecht Van Lommel 58cdd37f52 UI:
* Made separator item work horizontal & vertical.
* Add colon (:) automatic for int/float/enum/string.
* Added space variables to uiStyle and use them in the
  layout engine.

* Added initial World buttons by Thomas Dinges, thanks!
* Added some code for modifiers in the Object Data context.
  This will become a template though.
* Use a common poll() callback in the scripts to reduce code.
2009-04-27 18:05:58 +00:00
Campbell Barton dd21e9b626 patch from michael williamson, export multiple UV layers to lightwave
[#18575] remove unused local variables
2009-04-25 17:52:04 +00:00
Campbell Barton 113b438dce [#18611] console.py linewrap
from Jim Hi8ll (jthill)
2009-04-25 17:41:17 +00:00
Michael Fox 119d0e9145 Small comit, added the colour mode (BW,RGB,RGBA) and object type to rna, and added appropriate entries to the UI 2009-04-24 01:17:54 +00:00
Remigiusz Fiedler b4abca0daa patch for paths_svg2obj.py by author J.M.Soler:
http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_import_svg_en.htm
This patch adds support for Patterns.
2009-04-23 23:44:43 +00:00
Campbell Barton 0d347e12ea [#11172] md2 export bug(s)
export with object transformations applied.
2009-04-23 11:59:13 +00:00
Brecht Van Lommel af02a0aa4e UI
* Headers and menus can now be created in python.
* Replaced the uiMenuItem functions to create menus with equivalent
  uiItem functions using a layout, removing duplicated code.
* More uiItem functions are now exposed to python.
* The text editor header, panels and one of its menus are now created
  in space_text.py.
* Buttons window data context icon new changes depending on active
  object.

Issues
* Icons are not wrapped yet, hardcoded ints at the moment.
* The ID browse template is unfinished.
2009-04-22 18:39:44 +00:00
Campbell Barton 95038048a2 [#18577] LightWave (.lwo) Exporter Object Names are Incorrect
patch from Philip Alldredge (cilcoder), slightly modified
2009-04-22 09:08:57 +00:00
Brecht Van Lommel 60867ff106 2.5:
* Changed the buttons window contexts to be like the mockups:
  scene, world, object, data, material, texture, particles, physics
* Removed temporary C layout code for buttons and scene.
2009-04-21 15:30:54 +00:00
Daniel Genrich cf9886b0d0 2nd try to merge sim_physics with trunk rev 19825
Please check if volumetrics are yet working
2009-04-21 08:49:06 +00:00
Brecht Van Lommel ea51d03be8 UI: more scene buttons tweaks by Thomas Dinges. 2009-04-20 16:53:50 +00:00
Martin Poirier 141a229a79 Merge ICON_SNAP_PEEL_OBJECT and corresponding icon in blenderbuttons (need new icon though) 2009-04-20 16:31:46 +00:00
Brecht Van Lommel 874c29cea8 2.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r19323:HEAD
Notes:
* blenderbuttons and ICON_SNAP_PEEL_OBJECT were not merged.
2009-04-20 15:06:46 +00:00
Brecht Van Lommel 7555bfa793 UI: fix for back buffer option in scene buttons, by Thomas Dinges. 2009-04-20 13:16:17 +00:00
Michael Fox 6482206078 Added some missing rna entries for scene, and added them to the scene buttons with some missing elements aswell 2009-04-20 04:58:22 +00:00
Daniel Genrich 8a0a557294 Hopefully a working merge with trunk (could be one error left in raytrace.c - will check afterwards)
Merging 18706 - 19804
2009-04-20 00:19:16 +00:00