- Jean-Michel Soler updated the svg to obj module used by Paths
Importer (thanks!)
- user request: added option to control whether user prefers per face
(uv face select "TwoSided" toggle) or per mesh ("Double Sided") single /
double face info in ac3d exporter.
BPY:
- Blender_ShowHelp() was now crashing Blender when called for the
second time, due to EXPP_dict_set_item_str decrementing the reference
count of an object passed as argument to Blender_ShowHelp() (so not
owned by that function).
Help->System->Benchmark (the Tkey benchmark) returned timings even if
user cancelled the pupmenu. Was just missing a check
for -1 in toets.c -- wonder how old this one was... Reported by Wim Van
Hoydonck.
Scripts:
- Updated Jean-Michel's hotkeys script for Blender 2.42.
- Followed Pieter Visser's suggestion and added version info to the menu
names of the older collada scripts (v1.3.1).
Thanks guys!
Note for builders: nevermind if you already compiled 2.42RC1, these
updates are not critical at all and can be left for the release or RC2.
* replaced foobar==[]: with if foobar: - no reason to make empty lists for comparison.
* Would raise an error is importing a mesh with a blender that had objects in more then 1 scene.
* sped up some of the XML reading functions.
Added remove doubles as a keyword option,
Fixed Triangulate (need to select the faces first)
Fixed boundry weighting (defaults reduced boundries first more then
non boundry verts!)
Made face area weighting give better results.
Workaround for a problem where badly predicted positions are further then half the edge length, on these cases just collapse to the weighted middle of teh edge.
Added docs for "PolyReduce" (Uses BPyMesh_Redux) and WIP Docs for AutoTex Layout.
http://mediawiki.blender.org/index.php/Manual/PartXIII/Modelling_Scripts
for export depending on whether the object containing the data has
modifiers or not. For an object without modifiers, things are nice since
the mesh can be properly instanced and reused. For an object with
modifiers there are problems, since a new Mesh has to be created,
akin to doing an Alt-C on the mesh, and we end up using more memory
after the use of the script than we used beforehand. (I wonder if
I would be better off porting the thing to C.)
This script makes a new image from the used areas of all the images mapped to the selected mesh objects.
Image are packed into 1 new image that is assigned to the original faces.
This is usefull for game models where 1 image is faster then many, and saves the labour of manual texture layout in an image editor.
- Realy needs an image example to see why this is usefull.
* a misuse of the Mesh module meant that I kept creating new
meshes each time the script was run;
* the commas in the vertex color export looked weird.
Changes include, but may not be limited to:
* Support for meshes with multiple materials/face images
* Mode modular design that more closely reflects Blender's
internal workings
* Position, scale, and orientations are now exclusively dealt
with in Transform nodes, making the math more unified and
way easier to understand.
* vertex colors either written when mesh has SHARED_COL
face property, or when mesh has vertex colors and
first material with VCOL_PAINT (a little crufty, but
maybe will try a better way later)
* Support for debugging output to the console by setting
the 'rt' button to 42 (for mild verbosity) or 43 (for more
verbosity)
* Potentially long lists like vertex coordinates, face indices,
etc. are now unindented (why potentially waste thousands of
tab characters?)
* All lines in the script are under 79 characters (as per the
python style guide).
A major revision will usually beget major bugs, so
please test, test, test to make sure I haven't broken your favorite
feature in this script! (I've done a number of tests loading
output into the Bitmanagement viewer and into 3DSMax.)
~20% faster and memory saved by re-using the face and edge lists and their classes each pass rather then __init__'ing new ones.
Stupid mistake- was only collapsing edges with UV's
Added support for "Weighted Collapse" Before an edge could only collapse into its middle,
Now the edge collapses into a point bias'd by the 2 verts Concave/Convec "Pointyness" value as well as boundry weighting.
This works much better for boundry verts. - UV's Vcols and Weights are correctly interpolated into the new location.
Added a tool in the mesh menu for accessing the poly reduction tool.
fixed some bugs in BPyMesh_redux, tweaked to work well for test cases. much better use of error levels for edge weighting. better collapsing to the desired target. triangulates before reduction be default now.
* Much improved, slower edge collapse weighting method that makes this script about 2.5x slower, but brings it up to the quality of qslim (lightwave's decimator), without the manifold' errors.
Probably worth adding a UI front end to this function.
You can grag the keyframes around from anywhere in the animation.
Keyframe dragging would be less of a hack if we could do an event handeler and a redraw space handeler in 1.
This kind of functionality could be nice to see in Blender.
vertex it would potentially loop through every face). This fix speeds
it up a bit (only loops through all faces once, at the cost of some
additional memory). An example of export times for a mesh with 6266
verts and 12528 faces:
Before: 2m56s
After: 8s
Isnt intended to be ultra high quality, more for automatic realtime "Level of Detail" model generation.
BPyMesh.redux(ob, 0.5) # To reduce to about half the polys
renamed meshPrettyNormals to meshCalcNormals, and it now writes to normals rather then returning a list of vecs.
updated vertexpaint_selfshadow_ao to be a bit more efficient and make use of the above changes.
* clean weights (removed low weights)
* normalize, maximizes weights to a user set peak, optionaly scales other groups too to keep the proportion of the weights even. (Doubles as a weight scaler)
* Grow/Shrink, uses the mesh topology to expand/contract the vert weights. a few options for iterationsm, max length and strength.
I need a way tell if the users in Face Select mode (in python) so I can make use of the selected face flag.
Will need to do some updates, Mesh over NMesh and optimize some areas but it works and is a big improvement.
from
https://projects.blender.org/tracker/index.php?func=detail&aid=4156&group_id=9&atid=127
Detailed description:
Modified the 3ds export script 3ds_export.py:
- It now exports face UV correctly. 3ds only supports one UV coordinate per vertex. The script now duplicates vertices that had multiple UV pairs assigned to them so that each duplicate now only contains one and only one UV. Faces have their vertex indices adjusted accordingly.
- Quads are now split into triangles better. 3ds only supports triangles, so quads need to be split into two triangles. Instead of rather arbitrarily splitting along the diagonal between points 0 and 2, the script now splits along the shortest diagonal. This creates a higher quality triangular mesh, as well as better preservation of symmetry.
- Now creates an object node block, exporting object nodes, needed by some 3D importers. Among others, allows one to export object hierarchy.
- Now exports Empties as 3ds Dummies.
To be able to add all of the above new features, the script has been mostly rewritten and strongly restructured.
Motivation for the rewrite was the desire to be able to use Blender to produce custom 3d cars for Trackmania:Sunrise (TM:S). Previously, the TM:S importer could not correctly handle the 3ds files from the Blender 3ds export script. With this version, one can export cars complete with UV textures, correct wheel placement and light placement. To my knowledge, this script would make Blender the first fully free 3d modeller that allows one to export 3ds models for TM:S (expect a tutorial soon). The ability to have proper UV coordinates exported into the 3ds file should also be very welcome to many.
Add A Comment: Notepad
We need a way to get worldspace loc/size/rot.
there is currently no simple way to do this. location can be found the the world matrix.
but size and rot arnt that simple...
Maybe worldLocX.. worldRotX etc?
- dictWeightFlipGroups, return a vert weight with flipped group names.
- dictWeightMerge, takes a list of dictWeights and merges them
mesh_mirror_tool.py
Added vertex weight support for the mirror tool, its able to mirror arbitary meshes weights with optional name flipping and creation of name flipped groups.
This also uses the mode for l<>r, l>r, r>l so you can copy from left to right only for eg.
fixed the "No X Crossing option "Made 0-x verts snap to eachother.
Added mesh_mirror_tool
This is a tool that makes verts mirror, so that you can use xmirror in editmode and weight painting.
Have imported a heap of models that are made mirrored but are slightly out of being in the range that blender uses to be mirrored.
So this means I can make a models verts snap to its mirrored locations.
Options are Limit, Mode l>R, R>L or Middle, Normal Weigting, only mirror Same edge user count may add support for mirroring vert weights later.
Running this script is usefull for moving projects to new computers and fixing broken image paths.
It works by taking a searchdir and finding all the images in that dir, then using the largest images (if doubles are found) to avoid using thumbnails.
This should be mived from the UV to the image menu when a python slots available.
Exporter free's mesh vertex data each run (was causing memory errors when exporting fluidsim meshes... poke ken for Mesh.Unlink() since many meshes are still created)
Exporter had an indentation error also.
Added an NMesh wrapper around Mesh for importers to use, so as to work around slow 1 by 1 adding of data. used in upcoming flt_importer update.
Mesh cleanup now has the dangerous option to perform a cleanup on ALL mesh data. (needed it for a project)
Made obj_export use getMeshFromObject
obj_export now copies images from mtex as well as texface when copy images enabled.
obj_export tested to work with exporting fluidsim animations (somebody reported it was broken, must have been fixed at some point?)
at the moment it only has meshWeight2Dict and dict2MeshWeight
These allow you to deal with vertex weights as a list of dicts which makes scrips short and easy to understand.
(kh_python, perhaps dict access to the python verts could replace this )
Used the above util functions to update mesh_cleanup.
Copied from the source
'Material Clean', 'Remove unused materials.'
'VGroups'
'Group Clean', 'Remove vertex groups that have no verts using them.'
'Weight Clean', 'Remove zero weighted verts from groups (limit is zero threshold).'
'Weight Normalize', 'Make the sum total of vertex weights accross vgroups 1.0 for each vertex.'
Normalizing lets you see how much % of the vertex a bone owns just by looking at 1 of the bone weights.
Would be nice to have this functionality in Blender but theres not much room for new buttons in teh vgroup and material area :/
(Now always work on copied data- Blender.Mesh could do with a copy function)
Now triangulate works without "Apply Modifiers" enabled.
Much thanks to Gianluca Faletti for helping me track down the problem.
It just uses the closest to copy the weights, but this means the meshes need not have the same number of verts.
Worldspace coords are used so the meshes only need to overlap in worldspace.
OBJ Importer,
Added true FGon support for faces >4 verts. (Does a propper scanfill and optionaly converts it to an FGON.) - Checks for flipping, uses a face fan when scanfill fails.
Added the option to split by materials, into seperate mesh objects (Good for large databases)
Made smoothGroups optional.
Update image loader, optional arg for not autocreating the image. - aslo removed some stuff that shouldent have been left in.
Workaround for a bug in Blender.sys.exists()... should fix soon.
Updated the interface to use PupBlock and the FileSelector instead of drawing a full GUI
Fix a crash when no objects were selected and the Ob option was activated
Added option to edit the resulting image in an external program (this needs a full python distro for the os module. it detects the presence of the module and shows the option only if possible).
Saves the selected settings (except the save path) with Registry, so they get loaded back next time you use the script.
Bugfix, Wrongly waited colinear test that caused quads with co-linear edges to be made.
Bugfix, Use active object even if unselected.
Optimize, Skip further tests if face pair is above the quad error limit.
Optimize, Faster edge/Face user dict creation ~10%
Feature: Options to ignore VCols and UV's as delimetres.
Use this script in face select mode.
Note- If you make new faces between faces that are alredy UV mapped there is currently no way to say- map from others... this script does exactly that. and can save a lot of time manually moving and welding UV coords one by one.
Its realy usefull for mapping after a scanfill too.
This script relaxes selected UV verts in relation to there surrounding geometry.
Use this script in face select mode.
Left Click to finish or wait until no more relaxing can be done.
- Mesh objects split by material- many 3ds objects used more then 16 per mesh. and when a face looses its image texture its tedious to set again.
- Removed a lot of unneeded variable creation.
Face indicies spanning over 1 line are now supported (had a freak obj that did this)
Small optimization @% overall speedup.
- Last release before move to Mesh over NMesh.
- Material importing speedup.
- Tested with more models.
- Support some corrupt models.
(Bug in Mesh causes segfaults on some files still, kens looking into it)
Version 0.93
- Tested with 400 3ds files from turbosquid, model cd's and net samples.
- Tactfully ignore faces that used the same verts twice.
- Rollback to 0.83 sloppy un-reorganized code, new code broke UV coord loading.
- Converted from NMesh to Mesh. First importer to use Mesh.
- Faster and cleaner new names.
- Use external comprehensive image loader.
- Re intergrated 0.92 and 0.9 changes
- Fixes for 2.41 compat.
- Non textured faces do not use a texture flag.
The orange -> HEAD merge reverted some scripts to older versions. This only
affected the ones that already existed before the orange branch.
Minor issue, easy to fix.
All in all, kudos to kaito, Hos and others for all the hard work in
bringing (coding, merging) all these changes to the main branch.
Edits the current image in an external application, esp usefull when dealing with projects that have lots of images.
Basicaly-- a quck way to have the image in the gimp (using gimp-remote) without rooting around in your project tree.
Added registry variable to save the external application... and some OS context for what app to run- could somebody test on macosx+win32.
How about a python slot in the Image Menu?
Added features.
- Triangulate
- Export Object is OBJ objects
- Objects as Groups
- Group by Materials
- Updated blender website from www.blender.org to www.blender3d.org and write blender version number too.
DirectX exporter now supports animation again. Thanks Ben Omari for the update - there is a bug in armatures (not python?) that can leave the bones looking crazy after export - tab tab to make it return to correct
- Now uses PupBlock where possible
- Uses Mesh for changing mesh names (saves us a full NMesh update)
- Fixed a bug renaming objects from their data - with emprys.
slight updates and cleanups to vrml97 and x3d exporter, the ability to do gzip compression has been added. The redundant vrml exporter has been removed. Thanks Bart