'Houdini/SOP'에 해당되는 글 23건

  1. 2012.07.12 12.06.28_THU
  2. 2012.07.11 12.06.25_MON
  3. 2012.07.10 12.06.21_THU
  4. 2012.07.07 12.06.18_MON
  5. 2012.07.05 12.06.07_THU
  6. 2012.07.04 높은 지역에서만 파티클 날리기
  7. 2012.05.18 ramp를 활용한 애니메이션
  8. 2012.05.03 point sop과 foreach sop

12.06.28_THU

Houdini/SOP 2012. 7. 12. 02:50 |
◎ copy sop
- Tranform Cumulative(변형 누적).

※ 1-를 한 이유는, 뒤집기 위함이다.
※ $CY는 현재 진행중인 Number of Copies이다. (0~19까지를 0.1에 계속 곱해나간다)
※ Transform Cumulative를 비활성화 하였기 때문에 누적되지 않는다. 즉, 복사본의 0.1씩을 계속 곱해나간다. 

- Transform Cumulative 비 활성화.



- Transform Cumulative 활성화.

# 활성화를 하였기때문에 계속 누적이 된다. 즉, 제곱이 된다.



DNA 만들기






※ npoints는 point 개수 리턴.

※ nprims는 primitive 개수 리턴.



※ houdini 는 항상 "Z축" 을 향하여 만든다.


※ pointer 만들기(방향성을 직관적으로 보기 위함).

# platonic solid에서 transform 노드 달고 여기서 rot Y = 90, scale Y = 0.25, Z = 0.5



※ 뷰 포트에서 D를 눌러 custom에서 Edit을 눌러 나만의 속성 만듦 => upvector

※ orient, up, v, rot, trans, scale, pscale

# Houdini의 Attribute (orient -> N -> v -> up -> scale -> pscale 순이다.)


※ houdini는 쿼터니언을 쓴다.

# 파티클에서 파티클 회전.


※ 오일러는 3자리, 쿼터니언은 4자리이다.


※ pscale = uniform scale.


※ scale은 float이다.


※ orient 애트리뷰트는 "끝판 왕"이다.

# attribute중에서 가장 강력하다.


※ N이 있고 V가 있을 때, N이 없어지면 V를 N으로 쓴다.


※ 파티클 만들고 컨트롤 할 때, N, V를 가능한 한 만들어서 컨트롤을 해야한다.


※ orient(float, 4자리), N(vector, 3자리), v(vector, 3자리), up(vector, 3자리), scale(float, 3자리), pscale(float, 1자리)


※ scale은 local축이다.

# 오브젝트 스페이스. 축이 돌아가도 그 돌아간 상태에서 커진다.


'Houdini > SOP' 카테고리의 다른 글

12.07.05_THU  (0) 2012.07.18
12.07.02_MON  (0) 2012.07.18
12.06.25_MON  (0) 2012.07.11
12.06.21_THU  (0) 2012.07.10
12.06.18_MON  (0) 2012.07.07
Posted by scii
:

12.06.25_MON

Houdini/SOP 2012. 7. 11. 14:15 |


120625_MON.hipnc


※ noise, sin, cos 는 -1 ~ +1 까지의 값을 리턴한다.

※ rand()는 0~1 까지의 값을 리턴한다.


◎ clip sop

# 커터칼로 자르는 듯한 노드.


◎ divide sop

- Remove Shared Edge

# 연결되지 않은 부분만 살리고 다 지움(외곽선만을 딴다. 면이 없는).



※ 연산속도가 delete 보다 clip이 빠름.


◎ cookie sop

- crease

# 부딪혀있는 부분만 남김(부딪히는).





※ rand($PT) > $CR

# 만약, rand($PT)가 0.5가 나오고 $CR이 1이 나왔다. 그러면 진한 색인 1을 살린다. 그리고 rand($PT)가 0.2가 나오고 $CR이 0.1이 나오면 $CR인 0.1을 지운다.

따라서, 진한색을 남기고 검은색은 듬성듬성 남긴다.(확률적으로 남겨둠)



◎ paint

- Accmulate to stencil

# 포토샵의 layout 처럼


- UV Radius

# UV상에서


- Stroke, oriendt Brush To Suface

# 노말 상관없이 칠해짐. 유용하다.


- Use Connectivity

# 이것은 연결안 된 부분은 칠하지 않는다.




※ paint sop과 관련된 sop들



※ $NCY => 총 복사 개수.




※ fit() 

# fit(num, -1, 1, ?, ?) => 이건 fit11()과 같다.


# fit(num, 0, 1, ?, ?) => 이건 fit01()과 같다. 



'Houdini > SOP' 카테고리의 다른 글

12.07.02_MON  (0) 2012.07.18
12.06.28_THU  (0) 2012.07.12
12.06.21_THU  (0) 2012.07.10
12.06.18_MON  (0) 2012.07.07
12.06.07_THU  (0) 2012.07.05
Posted by scii
:

12.06.21_THU

Houdini/SOP 2012. 7. 10. 04:02 |

※ point 정보(point position)만을 가지고 있는 것을 "point cloud" 라 부른다.


※ obj 레벨에서 애니메이션, 시뮬레이션을 하는 것이 훨씬 가볍다. 반면, sop 레벨에서는 느리다. 

왜냐면, obj레벨에서는 그냥 있는 그대로를 통째로 옮기기 때문이고, sop레벨에서는 위에서 아래로 일일이 계산해야 하기 때문이다.


# $CEX, $CEY, $CEZ 입력단의 센터로 간다.



add sop


#  add sop의 particle - Add Particle System을 켜주면 포인트가 보인다 (따로 "." 체크를 안해도 보인다). 그리고 포인트의 컬로도 볼 수 있으므로 편리하다.


: 패턴에서 0-$N 을 하면 처음부터 끝까지 모두 연결됨. $N은 포인트의 마지막 번호이다.



$N-2를하면 포인트 마지막번호에서 -2값을 한 범위만 연결한다. 하지만 `(Backticks) 를 안 넣으면 제대로 된 실행 값이 안나온다. 


Group sop의 Create Ordered는 자기가 쓴 패턴대로(3-2-4-0) 이 순서대로 그룹을 짓는다는 해석이된다.

체크를 해제하면, 후디니 마음대로 순서를 정해 그룹이 되어진다.


위에서 내가 쓴 순서대로 그룹을 지었던 것을 쓴다는 것이 된다. 그러므로 3-2-4-0의 순서대로 연결이 된다.





attribute copy 

# 2번째 입력단을 1번째 입력단에 속성을 카피한다. 

# Other Attribute 에서 P(transform) 을 카피한다. 


point sop에 들어오는 2번째 입력단을 쓰겠다 라는 해석이 된다.


블렌드 값이 1이기 때문에 완전히 곱해진다. 즉, 그대로 된다.





scatter sop

- compute Number of points

# measure 노드처럼 primitive 면적을 계산해서 primitive 안에 포인트 갯수를 정해 넣을 수 있다.


- Scatter Based On Primitive Area

# primitive 면적에 관계없이 포인트를 "균등"하게 생성 (scatter sop은 UV를 기준으로 포인트를 만듦).


※ `(Backticks) 를 뷰포트상에서 치면 셀렉트 화면으로 돌아감.


※ Preserve Original

# 원래 그룹을 남겨 놓는다.


※ Houdini 에서 여러방법으로 포인트를 생성할 수 있지만 가장 빠른것은 Line sop에서 포인트를 생성하는 것이다. 

# primitive Type 에서 Points로 두고 포인트를 생성하면 된다.




Group sop

- Combine 탭에서 hand, head 그룹을 or(합침) 해서 foo라는 그룹을 생성한다.


Unshared Edges를 활성화하면, obj의 가장자리 엣지부분이 선택되어 진다.


'Houdini > SOP' 카테고리의 다른 글

12.06.28_THU  (0) 2012.07.12
12.06.25_MON  (0) 2012.07.11
12.06.18_MON  (0) 2012.07.07
12.06.07_THU  (0) 2012.07.05
높은 지역에서만 파티클 날리기  (0) 2012.07.04
Posted by scii
:

12.06.18_MON

Houdini/SOP 2012. 7. 7. 04:00 |


exam.hipnc


◎ Vector Normalize (벡터 정규화) 단위 벡터


vector의 normalize 방법 3가지


1. facet 노드의 Make Normals Unit Length.



2. normalize 익스프레션.

 ex) point노드에서 normalize(vector3($NX, $NY, $NZ))[0]

※ [0]은 컴퍼넌트 (x 를 뜻함, [1]이면 y).



3. length 익스프레션.

ex) point 노드에서 1/length($NX, $NY, $NZ) * $NX





◎ Vector Add


두 벡터를 합하면 그 사이에 합한 벡터의 길이만큼의 벡터가 생긴다.




◎ Vector Subtract


$TX2 - $TX

$TY2 - $TY

$TZ2 - $TZ


ex) TX2는 $TX의 위치를 바라보게 된다.



sort 노드를 이용하며 포인트 넘버를 shift 하는 이유?


 - 그것은 각각의 포인트들을 서로 subtract 하기 위해서이다.




◎ Dot Product


dot(vector3($NX, $NY, $NZ), vector3($NX2, $NY2, $NZ2))

# 이렇게 닷을 구하면 벡터의 그림자 길이를 구한다.




※ 각도 구하기(벡터와 벡터의 사이) 

acos(dot(normalize(vector3($NX, $NY, $NZ), normalize(vector3($NX2, $NY2, $NZ2)))



※ Dot Product의 활용 예


dot(normalize(vector3($NX, $NY, $NZ), normalize(vector3($VX, $VY, $VZ))

# 이렇게 닷을 구하면 velocity가 향하는 닷을 구할 수 있다.







◎ Cross Product


- cross product는 vector 사이의 기준을 만듦(축)





# cross product 구하는 또 다른 공식 

point sop의 normals에서...


x = $NX * $NZ2 - $NZ * NY2


y = $NZ * NX2 - $NX * $NZ2


z = $NX * $NY2 - $NY * $NX2



◎ point Expression


point 익스프레션 -> REFout에서 현재 진행중인 모든 포인트의 컬러값 중 R을 가져온다.


'Houdini > SOP' 카테고리의 다른 글

12.06.25_MON  (0) 2012.07.11
12.06.21_THU  (0) 2012.07.10
12.06.07_THU  (0) 2012.07.05
높은 지역에서만 파티클 날리기  (0) 2012.07.04
ramp를 활용한 애니메이션  (0) 2012.05.18
Posted by scii
:

12.06.07_THU

Houdini/SOP 2012. 7. 5. 02:02 |

#    attribute copy 노드 : 양쪽의 토폴로지가 같아야 한다.


#    add 노드 : point 정보만을 가져와서 용량이 작아지고 빠르다.


#    attribTransfer 노드 : attribute copy 와 비슷하나, attribTransfer 노드는 거리에 따라 속성이 복사된다. 즉, 일정한 거리가 유지되어있어야 복사가 된다.

- Distance Threshold : 1, Blend Width : 1~2 을 하면 input을 섞어서 쓴다. 블렌딩이 된다.(attribTransfer 노드는 상당히 느리다. 그래서 Distance Threshold, Blend Width를 섞어서 이용한다.)



※ vector * scalar = vector의 길이가 길어진다.


이것을 이용한 예)



※ point 노드에서 Custom을 이용한 예) 결과는 똑같다.




ex.hipnc


※ vector *  vector 를 하는 것은 translate 노드 밖에 없다.


※ merge 노드는 들어오는 순서대로 포인트 번호가 붙는다.


※ transform 노드의 Recompute Point Normals 를 꺼주면 Normal을 transform 노드안에서 재계산 해주지 않는다.


※ $TX + $NX, $TY + $NY, $TZ + $NZ


'Houdini > SOP' 카테고리의 다른 글

12.06.21_THU  (0) 2012.07.10
12.06.18_MON  (0) 2012.07.07
높은 지역에서만 파티클 날리기  (0) 2012.07.04
ramp를 활용한 애니메이션  (0) 2012.05.18
point sop과 foreach sop  (0) 2012.05.03
Posted by scii
:






'Houdini > SOP' 카테고리의 다른 글

12.06.18_MON  (0) 2012.07.07
12.06.07_THU  (0) 2012.07.05
ramp를 활용한 애니메이션  (0) 2012.05.18
point sop과 foreach sop  (0) 2012.05.03
RGB나누기  (0) 2012.05.02
Posted by scii
:




chramp() 익스프레션을 이용하여 제어하기.




'Houdini > SOP' 카테고리의 다른 글

12.06.07_THU  (0) 2012.07.05
높은 지역에서만 파티클 날리기  (0) 2012.07.04
point sop과 foreach sop  (0) 2012.05.03
RGB나누기  (0) 2012.05.02
sin과 if를 이용해 사방으로 흩어지게 연출  (0) 2012.05.01
Posted by scii
:



chsop()

nearpoint()

point()





point sop에다가 my source를 만든이유는 변경시 더 효율적인 작업을하기 위함이다. 

자세히 말하면 my source를 참조하는 곳이 많다. 그래서 참조 노드 변경 시 my source만 바꿔주면 일일이 찾아다니며 노드경로를 변경하는 일이 없어진다.


이때, 필요한 익스프레션이 chsop()이다. chsop은 절대경로를 리턴해준다.

'Houdini > SOP' 카테고리의 다른 글

높은 지역에서만 파티클 날리기  (0) 2012.07.04
ramp를 활용한 애니메이션  (0) 2012.05.18
RGB나누기  (0) 2012.05.02
sin과 if를 이용해 사방으로 흩어지게 연출  (0) 2012.05.01
peak 노드 활용  (0) 2012.05.01
Posted by scii
: