How does Maya treat UV tweaks?

// Create a poly plane mesh;
polyPlane -ch 1 -w 10 -h 10 -sx 10 -sy 10;
// Create a empty mesh to be used as an output.
createNode mesh;
// Connect pPlaneShape1 to polySurfaceShape1.
connectAttr pPlaneShape1.w polySurfaceShape1.inMesh;

위의 MEL script를 실행하면 다음과 같은 DG graph가 형성된다.

Untitled-1

이 때, output mesh인 polySurfaceShape1의 uv는 다음과 같다.

Untitled-2

polySurfaceShape1의 uv 값들을 변경해보자.

// Enlarge the uv values of polySurfaceShape1.
select -r polySurfaceShape1 ;
hilite polySurfaceShape1 ;
select -r polySurface1.vtx[0:120] ;
ScaleToolWithSnapMarkingMenu;
dR_ScaleToolMarkingMenuPopDown;
polyEditUV -su 2 -sv 2;

다음과 같은 형태의 uv mesh를 얻게된다.

Untitled-8

uv값을 조금이라도 수정하게 되면 Maya는 자동적으로 polyTweakUV 타입의 노드를 생성하여 연결해준다. 각 vertex별 uv displacement vector의값이 저장되는 노드이다.

Untitled-3

이 때, pPlaneShape1의 해상도를 높여보자.

// Refine pPlaneShape1.
setAttr "polyPlane1.subdivisionsWidth" 30;
setAttr "polyPlane1.subdivisionsHeight" 30;

그 다음 다시 polySurfaceShape1의 uv mesh를 확인해보면 다음과 같다.

Untitled-9

원래의 해상도는 10×10이었으므로 총 121개의 vertex들이 있었고, 이들에 대한 tweak값이 polyTweakUV1 노드에 저장되어 있었는데, 해상도를 30×30으로 변경하면서 총 961개의 vertex들이 만들어졌을 때, 0~120번 까지의 vertex들은 이전 tweak값을 가지게 되지만, 12~960번 까지의 vertex들은 새롭게 uv값이 생성되면서 비정상적인 uv mesh를 가지게 되는 것이다.

polyTweakUV 노드를 삭제해주게 되면, 다시 정상적인 uv mesh가 만들어지게 된다.

// Delete polyTweakUV node.
delete polyTweakUV1;

Untitled-10

답글 남기기