Programming/Houdini - TWA

[Houdini] Joy of VEX (Day 12-3)

와들S 2023. 8. 6. 16:28

1. Outputs

 

2. Reviews

1) nearpoints

- nearpoints(인풋, 속성, 반경, 개수); (※ 개수의 경우 필수는 아님)

 

2)  Arrays

- 배열을 선언 시 몇 개의 요소를 지녔다고 굳이 언급하지 않아도 됨 (C++랑 헷갈 ㄴㄴ)
속성일 때도 배열일때 그냥 [ ]로 쓰면 된다. 

- 배열 안의 요소를 언급할 때는 [ ] 안에 인덱스를 넣으면 된다.

- 배열에 값을 더할 때는 array 함수를 이용하거나, append 함수를 이용하면 된다. (append함수는 수업 내용이 아님.)

- 다차원 배열은 다차원 배열 언급하는 방법대로 하면 된다.

- 배열 안에 몇 개의 요소가 있는지 확인할 때는 len()함수를 사용한다.

 

3) 색 중첩

- 결과물과 코드. 아래 잘린 부분은 그냥 인덱스만 바뀐 같은 부분들이다.

- 난 이런 문제가 있었는데, nearpoints의 범위가 3이라 너무 작았어서 그랬던 문제였다. 범위를 40정도로 키우니 문제는 해결되었으나, 위에서 저 노란 부분, 즉 0인 부분만 계속해서 커졌던 부분은 의문이었다. 아마 nearpoints의 범위가 너무 작아서 [0]하면 그냥 0번 점만 반응했나 싶기도 하고....모르겠다.

 

4) 물결 중첩

- 코드는 다음과 같다.

더보기
int pts[];
int pt;
vector pos;
float d, w;
float radius = chf("radius");
float r = chf("r");
int num = chi("numpts");

pts = nearpoints(1, @P, radius, num);

// =========== 0
pt = pts[0];
pos= point(1, "P", pt);
d = distance(@P, pos);

w = d * chf("frequency");
w -= (@Time * chf("speed"));
w = sin(w);
w *= chf("amp");
w *= fit(d, 0, r, 1, 0);
@P.y += w;


// =========== 1
pt = pts[1];
pos= point(1, "P", pt);
d = distance(@P, pos);

w = d * chf("frequency");
w -= (@Time * chf("speed"));
w = sin(w);
w *= chf("amp");
w *= fit(d, 0, r, 1, 0);
@P.y += w;


// =========== 2
pt = pts[2];
pos= point(1, "P", pt);
d = distance(@P, pos);

w = d * chf("frequency");
w -= (@Time * chf("speed"));
w = sin(w);
w *= chf("amp");
w *= fit(d, 0, r, 1, 0);
@P.y += w;

 

- 해당 코드에서 radius와 r로 분리해 적었는데, 그 이유는 radius는 nearpoints의 범위를 말하고, r은 fit으로 맞출 범위를 가리키기 때문이다. 선생님께선 둘을 분리해야할 필요성을 느끼셔서 수정하셨고 나도 그 뜻을 이해해 따랐다. 

- 참고할 가까운 점의 수를 num으로 따로 채널을 만들어 관리하였다. 

- 여전히 강의 속에선 아직 그 어떠한 반복문도 나가지 않았기에 코드가 길지만, 난 for문을 이미 알고있으므로 for문으로 쉽게 간추려봤다.

- 코드는 위와 같다. 훨씬 가독성있고 간단하다. 13강에서 나갈 거 같긴 하지만.

 

- 이 부분에서도 3)때처럼 문제가 있었다.

- 빗물 원 가장자리에 선명하게 borderline이 보이는 문제였다. 역시 원인은 nearpoints의 범위를 너무 작게 했기 때문이었다. 그것만 수정하니 바로 해결되었다.

 

 

3. Exercises

https://www.tokeru.com/cgwiki/JoyOfVex12

1) 

'Programming > Houdini - TWA' 카테고리의 다른 글

[Houdini] Joy of VEX (Day 14)  (0) 2023.08.08
[Houdini] Joy of VEX (Day 13)  (0) 2023.08.07
[Houdini] Joy of VEX (Day 12-2)  (0) 2023.08.06
[Houdini] Joy of VEX (Day 12-1)  (0) 2023.08.06
[Houdini] Joy of VEX (Day 11)  (0) 2023.08.04