TWAHOUDINI 33

Joy of Vex - Day 15: copy sop, simple instance attributes (pscale)

중요했던 부분: - Copy to Points 1번 인풋으로 들어온 Geometry를 구성하는 포인트들에 0번 인풋으로 들어온 Geometry들을 위치시켜주는 노드이다. Attributes from target: 여기서 타겟의 attribute를 불러와서 geometry에 붙여넣을 수 있다. 기존 0번 input geometry에 색깔이 설정되어있다고 하여도 각기 포인트들이 가지고 있던 색깔값에 따라 대체해서 값을 붙여넣어진다. 이때 Attributes from target에서 1번 인풋 geometry를 구성하는 포인트들로부터 어떠한 attribute를 불러올지 고를 수 있는데 이때 이 불러온 attribute를 어떠한 방식으로 적용시킬지 설정할 수 있다. 이때 Apply to Points by " "..

Joy of Vex - Day 14: creating geometry, deleting geometry, debugging vex

중요했던 부분: - Day 6때 배웠던 point/vertex/primitive 복습 point (점) - 3D공간을 구성하기 위한 가장 기본이 되는 요소 vertex (배열) - 프리미티브를 만들때 포인트의 순서/배열을 구성하는 요소 primitive (선/면) - vertex의 배열에 따라 만들어진 선 혹은 면 vertex의 원리 우리가 인식하는 원리 후디니에서 Geometry spreadsheet상에서 나타내는 방법 0번 primitive - 첫번째 요소 [0:0] 0 0번 primitive - 두번째 요소 [0:0] 1 0번 primitive - 세번째 요소 [0:0] 2 이때 아래의 다이어그램에서 빨간색으로 적힌 부분이 primitive number이고 파란색으로 적힌 부분이 point numb..

Joy of Vex - Recap of Week 4

복습한 내용과 다시봤더니 이해되는 부분: Day 12-1: ripple effect Day 12의 첫 강의 본 강의에 들어가기 전에에 관에서는 Day 7에 배웠었던 nearpoint()에 대한 복습을 조금 더 심화적으로 할 수 있었다. nearpoint()에서 배웠던 주된 내용들은 효과들을 geometry에 적용하였을때 nearpoint()로 생성된 포인트를 중심으로 효과를 나타나게 세팅을 해주었을때 어느 특정된 점들을 중심으로 파형같은 효과들이 생기는 것을 알 수 있었다. 또한 본격적으로 빗물이 물같은 강가에 떨어질때 생기는 파형을 chramp()와 같은 효과들을 사용해서 어떻게 만드는지에 대해서 배워보았다. 하지만 nearpoint()의 주된 단점은 한 grid상에서 효과들을 중첩시키려 했을때 효과들..

Joy of Vex - Day 13: for loops (ties nicely into arrays)

중요했던 부분: - foreach loops: foreach 반복문 foreach는 기본적으로 array를 요구사항으로 함으로써 그 array라는 모든 요소에 대해 동일한 작업을 반복수행하주려는 반복문이다. foreach (array안에 들어있는 각각의 정보를 대변하는 변수; array) {} 이러한 형식으로 구성된다. foreach (pt, pts) { } 해석: 우리가 가진 모든 pts의 array에 대해서 작업을 수행해 주세요. 이 pts가 가지고 있는 array의 값을 pt가 대변해주겠습니다. // 이 값을 가지고 있는 array variable twa생성 int twa[] = {2, 7, 3, -2, 8}; i[]@twa = twa; // 이 값을 attribute twa로 나타냄 foreach..

Joy of Vex - Day 12-3: nearpoints, arrays

중요했던 부분: - nearpoint(): Nearpoint Function 지난 시간에 배웠듯이 nearpoint()를 사용한채 grid상에서 파형을 여러개 생성시킬때는 구획이 나눠지는 단점이 있다. 그러므로 중첩을 표현하기 위해 모든 포인트의 정보를 불러와 그리고 효과에 대한 식의 각각 포인트를 넣어주면 거기서 구한 fxA, fxB, fxC와 같은 효과를 생성해 주는 변수들을 모두 누적해 줌으로써 중첩의 효과를 만들어 줄 수 있다. 하지만 이렇게 만들어 주었을때 코드가 굉장히 길어지는 단점을 초래한다. - nearpoints(): Nearpoints Function nearpoints()는 가장 가까운 포인트의 위치값을 하나가 아닌 여러개를 찾아준다. 만약 세개의 점이 있다고 했을때 첫번째로 가까운점..

Joy of Vex - Day 12-2: overlapping effect

중요했던 부분: - 간단한 코드방식을 통해 grid상에서 effect값에 radius를 조절하는 방법 우선 본격적인 강의에 들어가기 앞서 grid와 point를 이용하여 빨간 원을 생성하는 방법을 알아보았고 그의 radius값을 유동적으로 조절할 수 있게끔 코드를 작성하였다. 아래 사진처럼 grid와 point 세 개를 wrangle로 연결한 다음 값을 바꿀때마다 각각의 포인트에 해당하는 effect들을 Grid상에서 나타날 수 있게끔 하였다. 우선 add 노드로 생성된 모든 포인트들을 merge로 묶어서 한눈에 보이게끔 세팅하였고 이는 총 포인트가 세 개 임으로 0/1/2번 포인트로써 한번에 나타나도록 세팅하였다. @Cd = 0; // 우선 색깔값을 0으로 초기화 검정으로 바꿈 /* 아래 포인트들을 p..

Joy of Vex - Day 12-1: ripple effect

중요했던 부분: - 심화적인 nearpoint() 복습 nearpoint()는 0번 wrangle input에 연결된 geometry로부터 1번 wrangle input으로 연결된 geometry를 구성하는 point들중 제일 가까운 point의 포인트 넘버를 반환하는 function이다. int pt = nearpoint (1, @P); /* 0번 인풋으로 연결된 geometry로부터 1번 인풋으로 연결된 Geometry를 구성하는 point들중 가장 가까운 점들을 찾아 그것들의 포인트 넘버를 반환하여 integer variable pt에 저장하여라*/ i@pt = pt; // integer variable pt를 attribute으로써도 나타내어라 아래와 같이 Houdini상에서 1000개의 포인트를..

Joy of Vex - Recap of Week 3

복습한 내용과 다시봤더니 이해되는 부분: Day 9-1: normalize(), dot(), and cross() Day 9-1에는 각기 다른 Function. normalize()와 class() 그리고 dot()에 대해 기본적인 원리를 배웠다. normalize()는 방향은 같지만 크기가 1인 vector값으로 vector값을 전환해주는 Function으로써 하나의 vector 수치가 들어가고 vector값을 반환해준다. class()는 두 vector가 공유하고 있는 평면에 수직이 되는 방향으로 vector값을 돌려받는다. class()는 기본적으로 두 vector값을 받아 하나의 vector값을 되돌려준다. dot()은 두 vector가 있을때 그 사이의 각도를 나타내 준다. 이때 식은 dot(A..

Joy of Vex - Day 11: if statements

중요했던 부분: - If Statement (Conditional: 조건문) 지금까지 우리가 써왔던 식들은 굉장히 직선적이고 명령적이었다. 사용자인 우리가 후디니에게 직접적인 명령만을 하였다. 하지만 if Statement를 통해 후디니에게 판단의 기회를 내려준다. eg) if (A) { // 만약 A라면 B; // B를 수행해주어라 } @Cd = 0; // @Cd 색깔값으로 0으로 초기화 if (@P.x > 1) { // 만약 geometry의 @P.x의 수치가 1보다 크다면 @Cd = {1, 0, 0}; // @Cd 즉 색깔값이 빨간색이 된다. } /* 모든 점이 가진 @P에 대해 후디니는 판별을 할 것이다. 3보다 큰지 작은지. 만약 3보다 크다면 아래의 식을 수행한다*/ float d = leng..

Joy of Vex - Day 10: relpointbbox

중요했던 부분: - 0 부터 1까지로 각각의 포인트의 대한 range를 설정해주는 기본적인 방법 만약 line즉 선이 있는데 포인트가 많을때 @P.x값은 기본적으로 원점 (0, 0, 0)을 기준으로 모든 포인트들의 위치를 할당한다. 이렇게 되면 나중에 chramp()와 같은 0에서 1까지의 범위만을 사용하여 파형을 직접 구성해준다든가 할때 어려움을 느낀다. 이럴때 손쉽게 vex를 사용하여 새로운 attribute를 만들어 모든 포인트에 대하여 0에서부터 1까지의 수치들을 각기 다 할당해 줄 수 있다. // 모든 포인트에 대하여 0에서 1까지의 수치들을 float Attribute rel로써 나타내어라 f@rel = float (@ptnum)/(@numpt - 1); // @numpt에 float값이 된 ..