Online Class

후디니 기초 (15/47) : Attribue 불러오기

Attribute transfer

다른 오브젝트에서 거리에 따라 포인트 Attribute를 가져오는 방법

위 노드로 스피어의 어트리뷰트(Color값도 함께)를 Grid에 가져오게 된다.

Point Cloud

pcopen( 1 , P , v@P , 1.0(반지름) , 1이상 )

<VEX>
int handle = pcopen(1, “P” , v@P , 999 , 1);
v@Cd = pcfilter (handle , “Cd”);

pcopen 코드를 사용해서 다른 오브젝트의 어트리뷰트를 가져오는 기능을 사용해보았다.
마치 데칼효과같다.

XYZdist

int prim;
vector primuv;

f@dist = xyzdist(1 , v@P , prim , primuv);

i@prim = prim;
v@primuv = primuv;

Add로 추가된 포인트 1개와 Grid 사이의 거리를 계산하는 식이다.

int prim;
vector primuv;

f@dist = xyzdist(1 , v@P , prim , primuv);
v@Cd = primuv(1,”Cd” , prim , primuv);
v@P = primuv(1,”P” , prim , primuv);

i@prim = prim;
v@primuv = primuv;

정리

다른 오브젝트로의 어트리뷰트를 가져오는 방법 3가지를 배웠다.

  1. Attribute transfer
  2. Point Cloud
  3. XYZdist

<방식>
3개다 모두 어트리뷰트를 가져오는 것은 똑같지만 방식이 다르다
1,2번은 가져올 어트리뷰트의 정확한 지점에서의 정보를 가져오지만
3번의 방식은 가져올 지점의 거리를 계산하여 정보를 가져온다.

<차이>
1,2번의 방식은 좀 더 디테일하게 정보를 가져오려면, 가져올 오브젝트의 버텍스가 매우 많이 필요하지만
3번의 방식은 가져올 정보를 거리에 따라 계산하기 때문에, 오브젝트의 버텍스가 많을 필요가 없다.

최적화를 위한거라면 3번의 방식이 효율적일 것이고
정점에 정보가 정확히 필요한 상황이라면 1,2번 방식을 사용하는 것이 좋겠다.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다