Programming/Houdini - TWA

[Houdini] Joy of VEX (Day 7)

와들S 2023. 7. 27. 10:14

1. Outputs

minpos 이용
nearpoint 이용

 

2. Reviews

1) Get Attribute

- 이미 앞에서 다 했던 내용이지만 복습하는 겸 수업 들을 때 열심히 따라해봤다.

 

2) Visualization

- 후디니 Scene View에서 잘 보이도록 시각화 해줄 수 있다. 씬에서 + 버튼 눌러서 마커란 걸 만들고,

- 속성을 아래에 만든다. 이러면 우리가 만든 값이 포인트에 생성이 되어 화면상에서 잘 보이게 한다.

 

3) Attribute Randomize

- 속성을 랜덤하게 설정시켜주는 노드. 

- 딱 설정하면 Cd 값이 기본적으로 들어가 있는데, 색을 랜덤하게 넣어준다. Cd 대신 P같은 기본 속성값이나 아예 새 속성값을 입력해 생성 후 랜덤화한다. 아래에서 dimensions을 변경해주면 1차원 벡터인지(float), 3차원인지 설정한다.

- 위에서 한 visualization 기능을 이용해 화면에 보이게 하면 편리하다.

- 이를 새 그리드에 wrangle로 값을 받아서 연결해 위처럼 코드를 쓴다. 

 

4) Point Jitter

- 포인트의 위치를 랜덤하게 섞어주는 함수이다. 

 

5) @ptnum vs @numpt

- ptnum: point number
- numpt: number of all points

- 각 점들의 값에 ptnum을 넣어 각 포인트와 일치시켜 값을 넣는다.

강의속 자료

- geometry spreadsheet 엔 쓰기 전까지 보이지 않지만 원래는 기본적으로 갖고 있는 값이라는 뜻.

- points로 wrangle을 쓸 경우 모든 점에 모두 속성에 한점한점씩 반영이 된다.

 

6) minpos & nearpoint

- vector3 minpos(): 어느 면에서 가장 가까운 거리를 지닌 점의 좌표값을 출력 (수직)

- int nearpoint(): 가장 가까운 점에 대한 정보, 해당 점의 인덱스 값을 출력

- 예제

- 첫줄: rubbertoy의 가장 가까운 값을 position 정보로 돌려달라 (2번째 인풋의 P값을 가지고 return)

- 출력값: 가운데 rubbertoy 크기대로 모양이 생기며 그 이유는 그 부분이 border라 제일 가까운 부분이기 때문

 

7) Example1

- 총 노드이며, 가장 중요한 코드는 저렇게 적었다. 점의 개수를 자유롭게 늘릴 수 있도록 null 노드를 이용해 int 변수를 만들어 스크롤로 바꿀 수 있게 했다. 

 

scatter - force total count를 null 변수와 연결했다
minpos 코드
nearpoint 코드
att_ID 코드, 두 노드는 동일한 코드를 지닌다
add, id가 동일한 두 점을 선으로 연결

- 아래는 결과물이다.

nearpoint 결과물
ninpos 결과물

 

8) Example2

- 예제는 nearpoint이용하는 거였지만 대신 ninpos를 사용하였다

 

9) Example3

- nearpoint를 이용한 예제. 점을 받아 가장 가까운 점을 만든 후, 해당 점의 색을 적용시킨다.

- 여기서 이제 높이값도 받아서 distance으로 거리를 비교해 위와 같은 결과물을 낼 수 있다.

 

 

3. Exercise

1)  

JoyOfVex7 - cgwiki (tokeru.com)

- chramp을 변경해 위와 같은 결과값을 낼 수 있었다.

- 마치 비오는 날의 바닥을 표현한 거 같아서 좋았다 헤헤

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

[Houdini] Joy of VEX (Day 9)  (0) 2023.08.03
[Houdini] Joy of VEX (Day 8)  (0) 2023.07.28
[Houdini] Joy of VEX (Day 6)  (0) 2023.07.24
[Houdini] Joy of VEX (Day 5)  (0) 2023.07.23
[Houdini] Joy of VEX (Day 4)  (0) 2023.07.20