houdini 35

[Houdini] Terrain Handbook 3 (Dusty Biome - shaping)

1. Making the Heightfield Terrain Handbook 03 | Dusty Biome | Making the Heightfield - YouTube 1) Draw Curves for hills - 커브를 그려서 산맥의 흐름을 지정해줄 수 있다. 터레인 위에다가 draw curve로 선을 그리고, resample을 해 모양을 정리한다. - 이후 Attribute Remap을 사용해 Original name에 curveu란 속성을 넣는다. - 이 선을 polywire로 모양으로 만든다. Wire Radius에 @curveu * 100 를 넣어야 속성에 100을 곱한 높이 형태가 된다. - 다음으로 projection(투영)으로 terrain에 해당 모양을 투영시킨다. - 아래는 여태까지..

Programming/Houdini 2023.09.19

[Houdini] Terrain Handbook 1~2 (Basic)

Ⅰ. Introduction - Brief Overview Terrain Handbook 01 | Introduction | Brief Overview - YouTube Ⅱ. Heightfields - Basics Terrain Handbook 02 | Heightfields | Basics - YouTube 1. Terrain 1) Heightfield - Heightfield는 terrian을 만드는 기본 객체. 처음 만들면 plane처럼 보이지만 그 안에서 여러 설정을 해줄 수 있다. - By size로 할 수도 있고, By axis로 해 안에 구성할 것들을 바꿀 수 있다. 그 아래선 사이즈도 바꿀 수 있다. 2) Heightfield Pattern - 하이트 필드에 패턴과 노이즈(Distortio..

Programming/Houdini 2023.08.31

[Houdini] Joy of VEX (Day 16)

1. Outputs 2. Reviews 1) @up 1 - @up은 해당 오브젝트의 위쪽 방향을 가리킨다. - 따라서 이렇게 쓰게 되면 @up의 변화에 따라 저 RubberToy는 회전하게 된다. 여기서 @N = {0, 0, 1} 등으로 노말을 바꾸게 되면 노말의 방향 때문에 저 오브젝트가 바라보고 있는 방향이 변한다. 2) @up 2 - 첫번째 wrangle에선 색상을 정한다. - 위처럼 두번째 wrangle을 쓰게 되면 시간에 따라 sin, cos함수로 변하게 되며 빙글빙글 회전하고 움직인다. 해당 삼각함수는 @up 속성에 넣어주었다. 3. Exercises 1)

[Houdini] Joy of VEX (Day 15)

1. Outputs 2. Reviews 1) Copy to Points - copy to Points 노드를 딱 만들게 되면 세부 정보가 뜬다. 저기서 *는 모든 속성을 다 의미하고, 속성 옆에 ^ 표시는 그 속성을 제외하고 복사한다는 의미다. 저기서 중요한 부분은 "Transform Using Target Point Orientations"을 의미하는데, 저걸 끄면 속성만 복사하되 복사한 속성은 적용시키지 않는다는 의미다. 2) 예제1 - 그리드에 박스를 copy to points해서 복붙한다. 이 때 시간을 추가하여 시간에 따른 움직임 변화를 보여준다. 여기서 사용한 pscale은 크기의 uniform scale을 말한다. scale은 vector3로 3개의 float을 받는다. 3) 예제2 - 이렇..

[Houdini] Joy of VEX (Day 14)

1. Outputs 2. Reviews 1) VEX로 점, 선, 면 제작1 int addpoint(핸들(0), 벡터 좌표) int addprim(핸들(0), 제작 타입, 점 인덱스, ...) ※ 점 인덱스는 필수는 아님 "polyline": 선 생성 "poly": 면 생성 (시계방향 순서가 앞면) int addvertex(핸들(0), primitive이름, point이름) 2) @P, @N 응용 - 각 점의 현재 위치에 노말을 더하되, 해당 노말에 반복 회차 * 길이를 곱해 점을 생성해주면 좌측처럼 생성된다. - 여기서 주의할 점은, 주석단 것처럼 만약 addpoint안에서 바로 반복문 변수를 쓰려면 set함수 안에서 사용해야 한다. 3) 털이 흔들리는 효과 1 - noise를 사용하여 털이 흔들리는 듯..

[Houdini] Joy of VEX (Day 13)

1. Outputs 2. Reviews 1) foreach - foreach의 문법은 foreach(반복할 변수; 배열) 이다. 2) 색 중첩 with foreach - foreach문을 사용하였으므로 원래 코드였던 pt = pts[0] 은 지워주었다. 3) 물결 중첩 with for loop - 원래 12-3에서 해볼 때 for loop의 범위를 num으로 두었다. 하지만 len(pts)가 맞는게 각 요소마다 개수가 다르므로 그냥 동일하게 num으로 두면 안된다. 따라서 len함수를 이용해 요소 개수를 받아 사용하였다. 3. Exercises 1)

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

1. Outputs 2. Reviews 1) nearpoints - nearpoints(인풋, 속성, 반경, 개수); (※ 개수의 경우 필수는 아님) 2) Arrays - 배열을 선언 시 몇 개의 요소를 지녔다고 굳이 언급하지 않아도 됨 (C++랑 헷갈 ㄴㄴ) 속성일 때도 배열일때 그냥 [ ]로 쓰면 된다. - 배열 안의 요소를 언급할 때는 [ ] 안에 인덱스를 넣으면 된다. - 배열에 값을 더할 때는 array 함수를 이용하거나, append 함수를 이용하면 된다. (append함수는 수업 내용이 아님.) - 다차원 배열은 다차원 배열 언급하는 방법대로 하면 된다. - 배열 안에 몇 개의 요소가 있는지 확인할 때는 len()함수를 사용한다. 3) 색 중첩 - 결과물과 코드. 아래 잘린 부분은 그냥 인덱..

[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..