===========
initial merge from BMesh branch,
this replaces the existing mesh format and editmode data structures, for more info see:
http://wiki.blender.org/index.php/Dev:2.6/Source/Modeling/BMesh
this is the work of quite a few developers over the years.
Key Contributors
================
* Geoffrey Bantle (aka) Briggs, original author.
* Joe Eager (aka) joeedh
More recently
* Howard Trickey
* Ender79 aka Ender79 :)
What to Expect
==============
In general blender shouldnt crash on files or totally fail to load scenes,
painting tools etc have been tested to work.
* its quite easy to make the tesselator fail (show holes, missing faces), with non planer ngons.
* most modifiers are working fine but a few had to be re-written - bevel, array - array is much slower, bevel will probably be changed to match trunk soon.
* NavMesh BGE feature isn't functional yet.
* Some UV sticth tools still need porting.
* hair doesnt work right on ngons yet.
* many python scripts will break.
* a python api to BMesh needs to be written still.
(for todo's in code do a searh for BMESH_TODO)
On collada import a -1 layer_index from CustomData_get_layer_index (CD_MTFACE) was used.
This then managed to overwrite last mface's data with uv-set's name so at least it gave a clue where to look for :]
* New armature_mat_bone_to_pose, which is just the reverse of armature_mat_pose_to_bone (currently used by armature evaluation code only, but might be used by constraints space conversion code too, see note below).
* Found another place where another (a bit erroneous) pose_to_bone code existed (apply_targetless_ik(), in transform_conversion.c, used by "auto ik" option), replaced it by a call to armature_mat_pose_to_bone.
Notes:
* All those changes leave many #if 0 commented code, I will remove those in a few weeks.
* There is at least one other place where generic armature_mat_(pose_to_bone/bone_to_pose) functions should be usable: the space conversion function of constraints (constraint_mat_convertspace(), in BKE's constraint.c), but here I have some problems (old code is also somewhat erroneous, but using new one makes old rigs using bone space constraints wrong, e.g. sintel one, and it’s just impossible to make conversion code...). So I'll wait and investigate more for this one.
which made it using default quality settings which are really bad for camera
tracking (and perhaps for CSE too).
haven't found Jpeg quality setting for FFmpeg which will behave in the same way
as quality setting for image sequence, but seems that mapping image quality
from 1..100 UI range to 31..1 range of qmin/qmax gives expected result.
--
svn merge -r44228:44230 ^/branches/soc-2011-tomato
- SceneExporter collects a list of child-objects for armature-object and passes it onto ArmatureExporter
- SceneExporter's writeNodes is then called from ArmatureExporter for matching child-objects for bone.
- ArmatureExporter removes written child-objects from list, objects not exported as being bone parented are exported as direct children of the armature-node.
- Should play nice with current Second Life-compatibility.
A nicer implementation would require some design changes, will have to wait.
which made it using default quality settings which are really bad for camera
tracking (and perhaps for CSE too).
haven't found Jpeg quality setting for FFmpeg which will behave in the same way
as quality setting for image sequence, but seems that mapping image quality
from 1..100 UI range to 31..1 range of qmin/qmax gives expected result.
- Collecting joints/weights in one place, it's easier to exclude zero weights or vertexgroups with no matching bone than trying to match same logic in multiple places.
- Still not exporting -1 joints for vertices without weights, but also not outputting -1 joint + weight for each vertexgroup without a matching bone.
- The exported weights are now normalized.
Last I tested this patch stopped 3ds Max crashing on import of file from #29465 (opencollada / internal .dae).
- use SMOOTH flag for edges (removed sharp flag and inverted), gives us an extra flag slot available.
- rename BM_edge_is_nonmanifold --> BM_edge_is_manifold and invert result, BM_vert_is_nonmanifold too.
The changes mostly center around two new structures, InternalNode and
LeafNode. These provide an explicit representation of the Octree
nodes, which formerly were manipulated as opaque byte arrays.
A fair amount of commented out/unused code was also removed. This
includes the "CINDY" code, which may yet be useful, easy to bring back
if so.
There should be no difference in the output of the remesh modifier,
but memory usage may be slightly different. The flood fill bytes are
no longer optional; they will be allocated whether or not the 'remove
disconnect components' flag is set. The leaf node is probably not as
tightly packed due to alignment issues; this could be fixed with the
__attribute__((packed)) flag in gcc (probably there's an MSVC
equivalent), but not sure it's worth it. The internal nodes should
take up less space on 32-bit systems, allocating sizeof(pointer) now
rather than constant eight bytes.
These changes were made in persuit of bug #30158 (remesh crashes on
PowerPC). There's still a fair amount of bitwise stuff in the Octree,
so may still be endian issues and not yet sure if this fixes the bug,
but should be much easier to track down problems now.
Fix skeletal animation import for <rotation>, <scale> and <translate> transform types.
Tested for correctness visually using Seymouranim2.dae from http://collada.org/owl and animated creatures from DKGamesModels folder (from private section of the same site). The results match the results in FXComposer-2.5.
Since this is a fix towards correct reading of collada, it shouldn't break existing compatibility with Second Life.
made some small edits
- removed changes to AVI reading since the data types are apart of the format spec.
- absf -> abs for a double value in render code.