Programming 62

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

1. Outputs 2. Reviews 1) 색 중첩 - 반복되게 하는 거 설명 하시기 전 해본 코드. 마지막에 좀 어거지로 쓴 거같긴 한데 되긴 되었다. - 반복문 설명하시기 전이라 정말 반복되게 쓰셨는데, 진짜 반복문만 알면 다 더 쉽게 쓸 수 있는 것들이었다. 2) 물결 중첩 (grid) - 반복문의 원리를 설명해주시려고 아직 반복문을 쓰지 않고 코드 반복만 하셨던 내용이었다. 덕분에 물결 만드는 알고리즘은 확실히 익혔다 헤헤 - 나머지는 다 완벽히 알겠는데, 아직 저 fit부분을 필요할 때 딱 못떠올렸다. 그 부분만 더 복습해서 봐야겠다.

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

1. Outputs 2. Reviews 1) 선으로 익히는 물결 효과 알고리즘 1 - 좌측 우측 동일한 결과를 내나, 오른쪽이 nearpoint 함수를 사용하여 더 간단히 효과를 낼 수 있다. - 코드를 분석해보면, 먼저 nearpoint로 근처 점을 구하고, 다음 줄에서 2번째 인풋으로 받은 점의 위치를 vector 변수(getpos)에 저장한다. 이후 distance 변수를 이용하여 각 점과 getpos의 거리를 구한 후 distance 변수에 넣고 y 값에 적용한다. 2) 선으로 익히는 물결 효과 알고리즘 2 - 위와 동일한 방법을 이용하나 fx, fxA 변수를 이용해 더 직관적으로 사용하였다. 위 5줄은 비슷하고, 가운데 코드가 중요한데, 한 줄 한 줄 설명하자면, fxA = d -@Time; f..

[Houdini] Joy of VEX (Day 11)

1. Outputs 2. Reviews 1) Example1 - if문과 dot product(내적)을 사용함. dot엔 각 점의 노말과 {0, 1, 0}의 벡터를 내적하여, 이 결과값을 if문으로 비교, 색 구역을 지정함. ※ 중요: dot product는 빛을 받는 부분을 정할 때 사용함(⭐⭐⭐) - 이게 원리임. cos함수 그래프의 형상과, dot product를 사용한 결과 (cos값)을 생각해보면 이해할 수 있음. 2) Testing for Equality - CGWiki님의 글을 보면 알 수 있듯이 완전한 0이 아닌 0의 근사값과 0을 비교했을 때 값이 다르다고 컴퓨터는 판별함. 따라서 아래처럼 0.00001 같은 매우 작은값보다 차이가 작다라고 써 줘야 논리적 오류 없이 코드가 실행된다. 3..

[Houdini] Joy of VEX (Day 10)

1. Outputs 2. Reviews 1) relpointbbox - relpointbbox: relative point bounding box 즉, 0~1사이의 값으로 표현 - 오른쪽은 기본 transform의 bounding box. 토미를 회전시키면 저 형태 그대로 생기는게 아닌 가장 높은 값들을 따져 왼쪽 형태로 바운딩 박스가 생김. - 여기서 relpointbbox는 각 축에서 가장 작은 순서->큰 순서대로 0~1 사이의 값을 반환함. - 이렇게 @rel을 선언해주고, relpointbbox는 각 점의 rel값을 반환해 rel에 넣어줌. 2) Example1 of TWA - 그리드를 relpointbbox와 chramp를 이용해 구역을 지정하여 노이즈 정도를 바꿀 수 있다. 3) Example..

[Houdini] Joy of VEX (Day 9)

1. Outputs 2. Reviews 1) vector normalize (vector A) - 노말화한 값 = 크기 1 벡터 2) dot product: float dot (vector A, vector B) ➡ 각도 - 두 벡터의 크기를 구함 (내적) - cross와 비교해봤을 때, cross는 해당 인풋의 순서가 바뀌면 값도 바뀌지만 dot product는 바뀌어도 값이 동일함 - 또한 이 내적에서 두 벡터를 노말화하고 내적값을 안다면, cos ceta 각도를 알 수 있게 됨. - 이렇게 적으면 Value는 내적값이며, 이 내적값을 acos (코사인의 역함수)에 넣으면 각도를 구할 수 있다. 이때, 코사인그래프를 고려해봤을때, 빛의 영향을 받는 각도는 오직 [0, 90], [270, 360] 의 ..

[Houdini] Joy of VEX (Day 8)

1. Outputs 2. Reviews 1) noise preview - 여러 노이즈를 테스트 해봄: Turbulent Noise, Unified Noise 등등 2) Noise - sin과 noise는 둘 다 특정한 형태가 있고 이는 offset으로 옮긴다해도 그 형태를 계속 유지해 보여줌. - frequency: 전체 노말의 폭을 줄임. offset: 실제 파형의 위치를 옮겨줌. 나머지부분은 계속 반복되어 형성됨 3) Curlnoise - 다른 종류의 noise 함수 형태 4) Random vs Noise - 비슷하게 보인다 하더라도 Random은 별개의 값이 각자 다른 값을 가져서 전체적인 흐름을 보이지 않지만, Noise의 경우 커다란 흐름 안에서 랜덤값을 제한해 고유한 흐름을 보여줌. 5) No..

[Houdini] Joy of VEX (Day 7)

1. Outputs 2. Reviews 1) Get Attribute - 이미 앞에서 다 했던 내용이지만 복습하는 겸 수업 들을 때 열심히 따라해봤다. 2) Visualization - 후디니 Scene View에서 잘 보이도록 시각화 해줄 수 있다. 씬에서 + 버튼 눌러서 마커란 걸 만들고, - 속성을 아래에 만든다. 이러면 우리가 만든 값이 포인트에 생성이 되어 화면상에서 잘 보이게 한다. 3) Attribute Randomize - 속성을 랜덤하게 설정시켜주는 노드. - 딱 설정하면 Cd 값이 기본적으로 들어가 있는데, 색을 랜덤하게 넣어준다. Cd 대신 P같은 기본 속성값이나 아예 새 속성값을 입력해 생성 후 랜덤화한다. 아래에서 dimensions을 변경해주면 1차원 벡터인지(float), 3차..

[Houdini] Joy of VEX (Day 6)

1. Outputs 2. Reviews - 같은 코드를 사용했을 때, points의 경우, - primitives의 경우 - points의 경우 조금 더 부드러우나, primitive의 경우 각 primitive마다 색이 반영되어 픽셀아트 같은 느낌을 보인다. - 무슨 속성이 있는지 보려면 vop을 열어 확인해보면 된다. - 또한 wrangle을 쓸 때 primitive인 경우 @N로 넣을 순 없고 읽는 것만(가져오는 것만) 된다. 3. Exercises 1) Set normals per prims - prim_normal이란 함수를 쓸 수 있는 것 같다. -> 아님. 저건 그냥 return값임 2) Set a @d attribute on prims in one wrangle, and use it to ..

[Houdini] Joy of VEX (Day 5)

1. Outputs 2. Reviews 1) Modulo - Modulo (%)는 float 소수일 경우에도 나머지를 낼 수 있다. - %를 이용해서 sawtooth 모양을 만들 수 있다. div 값을 조절해서 크기를 바꿀 수 있다 2) Abs (Absolute Value) - 절댓값을 쓴 결과는 length() 함수를 썼을 때랑 동일하게 출력됨. 3) 올림 & 내림 & 반올림 - 내림: floor() - 올림: ceil() - 반올림: rint() ※ 자바나 C++의 경우 round()란 함수를 사용함 - trunc(): 소수점을 제거함. 양수만 보면 floor()와 동일하게 보이나 음수의 경우 다름. ex) floor(-2.43) = -3 (내림이므로) trunc(-2.43) = -2 (소수점을 제거..