display uv map border

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

THREAD CLOSED
 
Thread Tools Search this Thread Display Modes
Old 10 October 2010   #1
display uv map border

trying to find out a way to ALWAYS get just the uv border edges for an object. obviously:

PolySelectConvert 4;
polySelectBorderShell 1;
PolySelectConvert 20;


works most of the time, but if two edges share uv's it'll also select the edge in the middle. also tried finding the shortest distance between uv's, but `ls -sl -fl` returns them in numerical order not in an order around the border, which also occasionally messes things up.

was looking for how maya displays the map border edges in the viewport with polyOptions -displayMapBorder somewhere in the API but couldn't find it. any idea where i can get access to that data?
__________________
http://www.jacobschieck.com
 
Old 10 October 2010   #2
Quote: PolySelectConvert 4;
polySelectBorderShell 1;
PolySelectConvert 20;
Thats a really tough problem you got there!
I tryed a few approaches but it all didn't yield a rock solid solution. I'm curious if someone else has some ideas.

First I didn't know what you mean with "if two edges share uv's". Then I realised you mean at a 1 edge wide area. When 2 border UVs are connected through an edge that is not at the border.

But what do you need the edges for anyway? Edges are 3D data. UVs are 2D.
__________________
goodsoul.de
 
Old 10 October 2010   #3
yea at first I was thinking, "man this will be simple!" but then it turned into many failed approaches because of low poly game models having many areas that are 1 edge wide.

trying to simply grab all the seams and harden edges for baking normal maps right now, but it's bugged me for awhile.
__________________
http://www.jacobschieck.com
 
Old 10 October 2010   #4
I think this will do the trick, taken from one of my scripts:


 {	
 	string $currSelected[] = `ls -sl -o`;
 	string $temp[] = `ls ($currSelected[0]+".map[*]")`;
 	select $temp;
 	
 	
 	polySelectBorderShell 1;
 	PolySelectConvert 20;
 	
 	string $potentialEdges[]=`filterExpand -ex 1 -sm 32`;
 	
 	string $removedEdges[];
 	
 	for($eachEdge in $potentialEdges)
 	{
 		string $uvs[] =`polyListComponentConversion -fe -tuv $eachEdge`;
 		$uvs = `ls -fl $uvs`;
 		if(size($uvs)<=2)
 			$removedEdges[size($removedEdges)] = $eachEdge;
 	}
 	select -d $removedEdges;
 
 }
 
 
 
Old 10 October 2010   #5
oooo very nice man!
__________________
http://www.jacobschieck.com
 
Old 10 October 2010   #6
so you assume that if the converted UVs from each edge are <= 2 it would have to be a false one?

hmm I'm afraid no. that doesn't do it :/
the mystery keeps unsolved
__________________
goodsoul.de
 
Thread Closed share thread



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
CGSociety
Society of Digital Artists
www.cgsociety.org

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump
Miscellaneous

All times are GMT. The time now is 05:44 PM.


Powered by vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.