Online Class

후디니 기초 (13/47) : cos,sin / Lerp / If / remove / min,max

삼각함수 Cos / Sin : Line

<파라미터 노드>
float freq = chf(“freq”);
float offset = chf(“offset”);
float amp = chf(“amp”);
float npt = float(@ptnum)/(npoints(0)-1) ;
npt = chramp(“nptLookup”,npt);

<머터리얼 노드>
v@P.y = sin(@P.x * freq + offset) * amp * npt;
v@P.z = cos(@P.x * freq + offset) * amp * npt;

-> Helix 형태 노절 가능

삼각함수 Cos / Sin : Grid,Cube

float time = chf(“time”);
float offset = fit01(rand(@ptnum + 8321 + chf(“seed”)),0 , 10);
float offset2 = fit01(rand(@ptnum + 321 + chf(“seed”)),0 , 10);

@P.y = sin(time + offset);
@pscale = fit(cos(time + offset2),-1,1,0,1);

//@pscale = clamp(cos(time + offset2),0,1);

Lerp

1.오리인형 A – 돼지얼굴 B
2.오리 point -> 노이즈+컬러
3.Lerp로 Apos -> Bpos

vector Apos = @P;
vector Bpos = point(1,”P”,@ptnum);
float bias = v@Cd.x;

v@P = lerp(Apos, Bpos, bias);

Postion 이동하는 움직임이 너무 직선이라서
Noise를 추가

그랬더니 모델링까지 Noise가 적용되었다.

그래서 처음이랑 마지막이랑 Noise 적용되지 않게
Ramp 파라미터 곱해주기

여러가지 VEX 함수

IF 함수

if(v@P.x > 0){
v@Cd = chv(“color”);
}else{
v@Cd = chv(“color2”);
}

지오메트리의 포인트 X가 0보다 크면 color벡터 파라미터 값
그렇지 않으면 color2 벡터 파라미터 값

if(@P.y < 0) removepoint(0,@ptnum);

지오메트리 포인트가 어트리뷰트 포인트Y 보다 작은 모든 포인트(@ptnum)는 제거한다.

remove 함수

removeprim(0,238,1);
removeprim(0,261,1);
removeprim(0,237,1);
removeprim(0,262,1);

(3번째 위치)
점까지 지우려면 1
면만 지우려면 0

Min, Max

vector min, max;

getbbox(0,min,max);

v@min = min;
v@max = max;

v@Cd.x = fit(v@P.y, min.y , max.y ,0,1 );
v@Cd.y = 0;
v@Cd.z = 0;

v@size = getbbox_size(0);
v@cneter = getbbox_center(0);

v@rel = relbbox(0, v@P);

@Cd.x = @rel.x;

댓글 남기기

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