Page 1 of 1

Advanced UV Projection Unwrapper (new pix)

Posted: Mon May 30, 2005 1:16 am
by ideasman
Hi, I just updated my projection unwrapper. download below...

Realy usefull for buildings and objects with flat surfaces.

New features are
* Calculates own angles of projection based on the objects geometry. (Replaces cube unwrap)
* Rotates UV Islands for best fit
* Option to pre-merge uv islands for more space saving.
* Packs islands very tight with a tricky box packing algo
* Edge loop optimization for speedup when bounds testing.
* Fill quality slider.
* UV Island split angle limit.
* UV Islands are kept in proportion to eachother (unlike LSCM)

AN extra option Id like to add would be to get the progections from selected cameras, that way you could project photos onto the mesh. mabe assign an image per camera, Faces without an image would get the cameras image :)
This would be realy easy todo, but a bit of a pain to setup for the user initialy.

One other featyure of this unwrapper is it makes fairly optimum use of the image with rare cases of overlapping.

This makes it perfect for baking radiosity back from vert colours... hopefully with get this into blender within the next month. so we can have low poly badio objects without the problms my last effort braught up.

Get the script here
http://members.iinet.net.au/~cpbarton/i ... rchimap.py

Updated Pix.
Image
Image
Image

An older image from my homepage.
Image

Posted: Mon May 30, 2005 4:27 am
by LetterRip
Ooohh that looks great - excellent work as always ideasman,

LetterRip

Posted: Mon May 30, 2005 6:06 pm
by pildanovak
works great, thank's, it's something really needed when you need to map a lot fast and automatically...- it's very similar to z3r0_d's scritp autouv, you can compare

Posted: Mon May 30, 2005 6:41 pm
by calli
Hi,

I get this error:

Archimap UV Unwrapper, mapping 1082 faces.
Traceback (most recent call last):
File "<string>", line 1412, in ?
File "<string>", line 1400, in main
File "<string>", line 1208, in VectoMat
TypeError: 0 or 1 list expected

The script says 2.33, I am using 2.36.

Regards,
Carsten

Posted: Tue May 31, 2005 8:51 am
by ideasman
Just Updated!

* Fixed island merging, was not working properly somtimes, logic was bad.
* Fixed compression which is now much more aggressive (slower too)
* Doubled the speed of colision detection with compression (Thanks to Theeth :) caches more data)

Fixed silly mistage in calculating projection angles on very simple objects.

renamed 'quality' to 'compression'

- Cam

Posted: Tue May 31, 2005 8:53 am
by ideasman
calli wrote:Hi,

I get this error:

Archimap UV Unwrapper, mapping 1082 faces.
Traceback (most recent call last):
File "<string>", line 1412, in ?
File "<string>", line 1400, in main
File "<string>", line 1208, in VectoMat
TypeError: 0 or 1 list expected

The script says 2.33, I am using 2.36.

Regards,
Carsten
Hi This will be fixed with Blender 2.37, Vectors in 2.36 dont accept anything other then a list for initialization.
Since 2.37 is coming out this weekend I wont update the script for this.

Posted: Tue May 31, 2005 2:44 pm
by macouno
Hey perhaps this script could be combined with mine.... I'm "releasing" it for testing later today... I'm especially interested in how you calculated the groups based on what I think must be the normal angle?

Does it only group faces with exactly the same angle? And does it deform anything??

Posted: Tue May 31, 2005 5:19 pm
by slikdigit
:shock: Oooh ideasman awesome! or, I should say, awefull! I was going to avoid UV mapping my buildings, now you leave me no choice :( ;)
thanks, great idea/enhancement.

Posted: Wed Jun 01, 2005 2:11 am
by ideasman
macouno wrote:Hey perhaps this script could be combined with mine.... I'm "releasing" it for testing later today... I'm especially interested in how you calculated the groups based on what I think must be the normal angle?

Does it only group faces with exactly the same angle? And does it deform anything??

Hi, would be interested in looking at your script.

ABout generating projection angles, I fixed a bug this morning, was doing some strange stuff with some models.

Psudocode
* Take the largest face and add its vector to the projection list.
* find all faces whos normals are within half the user set limit of the current normal. And add these faces to a list. (use half the angle to avoid the first face hogging faces and skewing the projection vector)
* Average the new collection of normals incase the llargest face was mis-representing the others.

* Look through the remaining faces and find the moust unique vector, that is most far away then any existing projection vectors.

* If the angle is greater then average and add to the projection list ... else break and use however many projections you have gathered.

* For assigning faces to projections I just find which faces normal is closest to the which projection, can fragment a little, but it distordes the faces much less.

Hints Dont use angleBetweenVecs it can be buggy and return NAN even in 2.37.

Also fixed handling of zero area UV's, there coords are assigned to 0,0

Posted: Wed Jun 01, 2005 2:28 pm
by macouno
Look here: http://www.alienhelpdesk.com/index.php?id=22

That's the script I've just done. It uses some of your blenderfarm code for compiling the image.. you may remember me asking you about it ;)