Cluster_Convex_hull

2018. 7. 19. 15:06Study/Houdini_Skill


CLUSTER

Cluster 를 생성하여 덩어리 부분을 만들어 준다.

node 를 이용한 cluster 와 vex 를 이용한 cluster 가 있다.



node 를 이용한 cluster 노드를 연결해주면 된다.

여기서 주목 할 부분은 clusters 10 부분이다. 10을 하면 10개의 cluster 가 생성이 된다.



@cluster attr 가 0부터 만들어지기 때문에 1을 더해서 1부터 생성되어 지게 해준다.



vex 를 이용한 cluster 생성

두개의 "point wrangle" 을 사용한다.



random vex로 point num 을 무작위로 불러들인다.

90% 만 if 문 안으로 들어가게 한다.

removepoint 를 이용해 point 를 삭제한다.

1
2
3
if(random(@ptnum)<0.9){
    removepoint(0,@ptnum);
    }
cs



첫번째 연결부분에 scatter 노드를 연결시키고 두번째 연결부분에 attribute wrangle 을 연결시킨다.

@cluster 노드를 생성한다.

모든점에 접근해 위에서 만든 10% point에 nearpoint를 계산하여 cluster에 집어 넣는다.

1
2
i@cluster = nearpoint(1,@P);
i@cluster += 1;
cs




Convex_Hull

Convex_Hull 은 SIM 을 하는데 있어 Bullet 부분에서 obj 모양을 만들어주는 설정중 하나

SIM 을 빨리하기 위해서 GEO 부분에서 Convex_Hull 을 만들어준다.



all node



Geo Fracture 설정

나무결을 만들어야 하기 때문에 transform 을 이용해 scale 을 줄여준다음 다시 원상복귀를 해준다.

x * 0.1 = y

y / 0.1 = x

을 이용





Convex_Hull 부분

항상 name attr 를 명심할것



원본 piece



VDB를 이용한 Convex_Hull



tetrahedralize 를 이용한 Convex_Hull



attrib wrangle 연결



2번째 노드에서 가지고 온 points 개수가 3개 보다 적을 때 ungroup 한다.

1
2
3
if(npoints(1)<3){
    !i@group_dletenode;
    }
cs




name attr 가 마구잡이 이기 때문에 다잡아 준다.

1번째 연결을 blast 다음 2번째 연결을 for each 노드 다음에 연결해준다.

primitive 에 있는 name attr 를 point 로 가지고 온다.

attripromte로는 다른 node 에 있는 것을 끌어올수 없다.

point로 옮기는 이유는 proxy를 원본으로 바뀌기 위해서

1
s@name = prim(1,"name",0);
cs





dop import 로 point만 import 한다.





"transform pieces" 노드를 통해 원본으로 바꿔준다. 

match attr 를 name로 바꾼다.



'Study > Houdini_Skill' 카테고리의 다른 글

Proxy_UPRES  (0) 2018.07.27
SOPSOLVER GLUE Relationship VEX  (0) 2018.07.27
cluster를 이용한 glue constraint  (0) 2018.07.27
Constraint_name & type  (0) 2018.07.19
Basic_DOP  (0) 2018.07.19