kawecki opened this issue on Jan 28, 2011 ยท 12 posts
kawecki posted Wed, 02 February 2011 at 9:35 PM
I have been working and continue to do on many things and try to solve the related problems:
3DS
3ds is a file format used by a great amount of models. The problem is that many 3ds models don't load properly and are buggy. Buggy models are a problem because can make an app crash. Making an app robust enough to survive any abomination is not an easy task. The other problem that I found with 3ds models is that many load with missing parts or parts in a wrong position. In my latest version I process transformation matrices, so the models load correctly, but still I have some models that don't do it. I don't know if is because I am missing to do something or the model is crappy and othing else can be done.
Fix Normals
Some models have some inverted faces among faces with correct normals. It was a headahe to find a way or method to fix this problem. At least I found the way, but what I have not solved yet is when a model is composed by several not conected groups, one or more group can have inverted normal and I haven't way to discover which group has the wrong normal and invert it in an automatic way. The only thing that fix normals does is to make all the normals within a group to have the correct orientation. Also if the mesh has not two manifold groups this method fails leaving unknown result.
Weld Vertices
To weld vertices is not difficult, I was doing it for years, but the method that I used can become very slow with increased number of polygons making it impossible to use with big or huge meshes (time proportional to the square of number of polygons).
I found a way to do it very fast and I found a very simple hash that has as coloateral effect to be able to weld near vertices too. Two in one by the price of one !. I am very happy and proud of what I did.
Quads to triangles
This was easy and doesn't need any more comments
Triangles to Quads
This one was not easy. At least I found a way, the problem is when the mesh has traingles and quads and the conversion process not always picks the right two triangles to be joined in some parts of the mesh. Doing it by hand probably you would have picked other pair of triangles.
Stupidity also evolves!