diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2012-07-14 00:50:32 +0400 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2012-07-14 00:50:32 +0400 |
commit | ee7ae2cdbb24072707d74534a560133f9780b079 (patch) | |
tree | f0bcc13dd99b88a83eaeab27a82d0b557e00261c /source/blender/blenlib | |
parent | 807ad1f0e0de49711d58ade2b660e74ec5452b2b (diff) |
Fix [#32013] Crash loading a 2.49b model
Problems were in the old multires loading system.
Actually, the sigsev itself was the easy part of the job (simply had to convert from tesselated data to polys/loops), but after that I was getting a horrible bunch of wild stray faces...
It finally turned out it was a mismatch in two different subsurf structs used while computing a mdisps layer from the multires DM, leading to getting complete random normals (null ones, NAN ones...), leading to complete dummy tangent space matrix, leading to absurds mdisps values...
Note: I also moved the copy of first layer's vertex and face data from old me->mr to mesh's v/fdata earlier in multire_load_old(), to be able to use general face_to_poly conversion function (later on we would have to do it by hand, the general function would erase our newly computed mdisps layer...).
Took me the whole week (something like 20h) to track this down: multires + subsurf = C nightmare!
Diffstat (limited to 'source/blender/blenlib')
0 files changed, 0 insertions, 0 deletions