length 길이
원점에서부터 각 포인트까지의 거리가 1이면 흰색 (1,1,1)
sin그래프에서 양수의 구간이 흰색, 음수의 구간이 검정색으로 표현됨
d *= ch("scale") 이 식은 d = d*ch("scale") 이 식과 동일함
d의 값이 빠르게 증가하게 되어 폭이 좁아짐
@Cd의 값이 가장 클때 1, 가장 작을 때 0으로 표현됨
나누기 2 대신 곱하기 0.5로 표현하는 것을 선호하는 사람들이 있음 @Cd = (sind(d)+1)*0.5;
distance 거리
disftance function은 두 개의 input을 요구함. distance(A,B) 두 위치벡터의 거리를 구함
resample을 length가 아니라 segment로 만들 수도 있음
distance의 A 값에 @P를 넣어서 모든 점에 대한 거리가 계산됨
(1,0,3)을 기준으로 파형이 생겨남
포지션에 fancyscale이라는 벡터를 곱해서 파형의 형태를 바꿔줄 수 있게 만들고,
기준점을 center 파라미터로 조절할 수 있게 함
clamp
clamp ( input, min, max )
최소값, 최대값을 설정
fit
fit (input, in_min, in_max, out_min, out_max)
fit 함수의 in_min과 out_min, in_max와 out_max의 값이 같다면 clamp 함수와 동일한 결과가 나오게 됨
아까 만들어둔 attribute에
@Cd = (sin(d)+1)*0.5; 라고 식을 적어뒀었던 걸
@Cd = fit(sin(d), -1, 1, 0, 1); 라고 바꿔줄 수 있음
@Cd = fit(sin(d+@Time), -1, 1, 0, 1); @Time을 더해주면 움직임을 만들 수 있음
Exercises
- Change the direction the waves move from towards the center to away from the center
@Cd = fit(sin(d-@Time), -1, 1, 0, 1); - Change the speed of the waves
@Cd = fit(sin(d-@Time*ch("speed")), -1, 1, 0, 1);
- Make the waves be blue on black, or yellow on green
float move;
move = fit(sin(d-@Time*ch("speed")), -1, 1, 0, 1);
@Cd = set(0,0,move);
---blue on black
@Cd = set(move,1,0);
---yellow on green - Rather than affect colour, make them affect the y position of the points.
@P.y= fit(sin(d-@Time*ch("speed")), -1, 1, 0, 1);
아주 자세하게, 계속 반복해서 설명해주셔서 이해를 안할 수 없게 만들어 주신다ㅎㅎ
최초입문강의에서 배웠던 내용들이라 큰 어려움은 없었는데 연습문제에서 실습하면서 좀 헷갈려서 역시 이론을 알아도 실전에 사용하기는 쉽지 않구나를 느꼈다.
1번문제에서 @Time을 -하면 방향이 바뀔 것 같은데라고 느낌으로 원하는 결과가 나왔는데 왜 마이너스를 하면 방향이 바뀌는지에 대해 말로 설명하라고 하면 못하겠다..😥
고민하다가 -@Time 이 아니라 +@Time*(-1) 으로 타임에 -1을 곱한거라고 생각하니까 방향이 바뀌는 게 더 이해가 되었다..!
d에 -1을 곱해줘도 같은 결과를 얻을 수 있다.
@Cd = fit(sin(d*(-1)+@Time), -1, 1, 0, 1);
이렇게 적으니까 더 직관적으로 이해가 되는 느낌이다.
'Joy of Vex' 카테고리의 다른 글
Joy of Vex [Day06] (0) | 2023.02.06 |
---|---|
Joy of Vex [Day05] (1) | 2023.02.03 |
Joy of Vex [Day04] (0) | 2023.02.02 |
Joy of Vex [Day03] (1) | 2023.02.01 |
Joy of Vex [Day01] (2) | 2023.01.30 |