Houdini VEX 메모

3724 단어 VEXHOUDINIWrangle
vex의 빈도가 높은 내용을 메모 쓰기 ➀ -가필중-

HIP 파일

데이터 유형


int     a  = 2;
float   b  = 2.1;
vector  c  = (2.1, 2.1, 2.1);
vector2 c2 = (2.1, 2.1);
string  d  = "two";
matrix3 m3 = { {1,1,1}, {2,2,2}, {3,3,3} };
matrix  m4 = { {1,1,1,1}, {2,2,2,2}, {3,3,3,3}, {4,4,4,4} };

배열


int     a[]  = {1, 2, 3};
float   b[]  = {1.1, 2.1, 3.1};
vector  c[]  = {{1.0, 1.0, 1.0}, {2.0, 2.0, 2.0}};
vector2 c2[] = {{1.0, 1.0}, {2.0, 2.0}};
string  d[]  = {"one", "two", "three"};

속성 유형 지정


i@a  = 2;
f@b  = 2.1;
v@c  = (2.1, 2.1, 2.1);
u@c2 = (2.0, 2.0);
s@d  = "two";
3@m3 = { {1,1,1,}, {2,2,2}, {3,3,3} };
4@m4 = { {1,1,1,1}, {2,2,2,2}, {3,3,3,3}, {4,4,4,4} };

빈도가 높은 함수



ch() 채널의 값


float colorRed   = ch("red");
float colorGreen = ch("green");
float colorBlue  = ch("blue");

v@Cd = set( colorRed, colorGreen, colorBlue );

chv() vector 채널의 값


vector translate= chv("translate");

chramp() 램프의 값



float 또는 vector의 값을 출력한다
입력값은 0~1에 넣어야 한다
float red = chramp("red",@P.y); 
@Cd = set(red, 0, 0); 

0 이하 또는 1 이상의 값을 입력하면 반복한 값이 출력된다


컬러 램프 (vector)의 값을 출력하고 싶을 때는 vector를 지정
vector color = vector(chramp("color",@P.y)); 
@Cd = color;



fit() 범위 지정하여 다른 범위로 랩핑


@P.y = fit(@P.y, -0.35, 0.35, 0, 1);

fit01()



rand() 0~1의 난수



float나 vector의 형태에 맞추어 출력해 준다
@Cd = set(rand(i@primnum), 0, 0);
@Cd = rand(i@primnum);

relbbox() 바운딩 박스(0~1)의 상대 위치


@Cd = relbbox(0, @P);

getbbox_size() 바운딩 박스의 사이즈


vector v = getbbox_size(0);
printf("%f", v);

getbbox_center() 바운딩 박스의 중심


vector center = getbbox_center(0);
printf("%f", center);

addpoint() 포인트 추가


addpoint(0, set(0, 0, 0));

removepoint() 포인트 삭제


removepoint(0,i@ptnum);

removepoint() 포인트 참조



노드 경로를 지정하려면 op :를 경로에 붙입니다.
vector getPosition = point(0, "P", 0);
printf("input 0    %f \n",getPosition);

getPosition = point('op:/obj/func_point/transform1', "P", 0);
printf("input path %f \n",getPosition);

maketransform() 변환 매트릭스



파라미터가 특히 많기 때문에 어렵게 느끼지만, transform 노드와 함께 이동, 회전, 스케일을 넣는 것만
빨간색이 transform이고 녹색이 maketransform, 둘 다 같은 값

vector translate= chv("translate");
vector rotate   = chv("rotate");
vector scale    = chv("scale");
vector pivot    = chv("pivot");

@P *= maketransform(0,0, translate, rotate, scale, pivot);

좋은 웹페이지 즐겨찾기