핑크색이 foo 벡터 속성 디스플레이 된 모습.

녹색이 up 벡터 속성 디스플레이 된 모습.



cross vector 구하는 공식

X축                                   Y축                                  Z축


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

지수(exp) 함수와 로그(log) 함수의 그래프  (0) 2013.06.23
분수에 같은 파티클에 이미지 입히기  (0) 2013.01.25
노말 방향으로 폭파  (0) 2013.01.25
12.07.12 THU  (0) 2012.07.23
12.07.09 MON  (0) 2012.07.22
Posted by scii
:


지수(exp) 함수와 로그(log) 함수의 그래프를 Houdini 에서 표현해보았다.


exp_log__function_exam.hipnc



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

Cross Product (벡터의 외적)  (0) 2013.09.01
분수에 같은 파티클에 이미지 입히기  (0) 2013.01.25
노말 방향으로 폭파  (0) 2013.01.25
12.07.12 THU  (0) 2012.07.23
12.07.09 MON  (0) 2012.07.22
Posted by scii
:



1. 라인으로 포인트를 생성한다. 이것은 pop에서 쓰일 소스가 된다.


2. 이것은 굳이 안해도되지만, 약간의 velocity를 줌으로써 파티클을 앞으로 조금 나가게 할 수 있다. 흐르는 물처럼 보이기 위함.


3. z축으로 바꾸고, 파티클에 이미지를 입힐려고 하기때문에 포인트 텍스쳐로 바꾼다. 그리고 옵셋에 애니메이션을 줌으로써 파티클이 내려감에 따라 이미지도 흐르게끔 해주고 있다.


4. 포인트 노드로 이미지의 컬러와 알파를 입히고 있다. 

여기서쓰인 tex 익스프레션은 텍스쳐를 가져와서 입히는 익스프레션이다. tex(경로, u, v, 칼라)

여기서 쓰인 것: tex(경로\aa.jpg, $MAPU, $MAPV, D_CR) 


5. 알파를 지워주고 있다. 현재 이 이미지에는 알파 정보가 없어서 적용이 안되고있지만, 알파 정보가 있다면 지워줄 것이다.




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

Cross Product (벡터의 외적)  (0) 2013.09.01
지수(exp) 함수와 로그(log) 함수의 그래프  (0) 2013.06.23
노말 방향으로 폭파  (0) 2013.01.25
12.07.12 THU  (0) 2012.07.23
12.07.09 MON  (0) 2012.07.22
Posted by scii
:





1. 노이즈를 발생시킨 것을 클램프노드를 통해 0~1로 만들어 준 후 그 vector 길이를 length 노드를 통해 애트리뷰트를 만들어 주었다. 

그 후, 노이즈 벡터길이와 원래 노말을 곱하여 노말을 오버라이딩하였다.



2. 노말길이가 0.2 미만인것들을 지워주었다.


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

지수(exp) 함수와 로그(log) 함수의 그래프  (0) 2013.06.23
분수에 같은 파티클에 이미지 입히기  (0) 2013.01.25
12.07.12 THU  (0) 2012.07.23
12.07.09 MON  (0) 2012.07.22
12.07.05_THU  (0) 2012.07.18
Posted by scii
:

12.07.12 THU

Houdini/SOP 2012. 7. 23. 00:02 |


exam.hipnc


※ 노이즈는 패턴이 있다.


※ 프리퀀시 = 1/주기


◎ mountain

- Fractal Depth

# fractal depth == max octave == turbulence

# 원래의 freq에다 high freq를 더하는 것!! ( frequency를 두개 더하면(low freq + high freq) depth 2가 됨, 다시 또 여기다 이것보다 freq가 더 높은 것을 더하면 depth는 3이 된다.)

# 몇번을 더할 것인가?

# depth를 높이면 디테일해진다.


- Roughness

# 첫번째 wave에 두번째 wave를 얼마나 적용시킬건가

# 두번째 freq에다가 해당 값을 곱한다. ex) $TY * 0.5  => 0.5가 roughness가 된다.

# roughness가 높으면 거칠어진다.


※ 즉, 1번째 노이즈 + (2번째 노이즈 * roughness)  => 옥타브가 된다.


※ depth = 2 (max octave = 2)

# 주파수1 + (주파수2 * roughness)

※ depth = 3 (max octave = 3)

# 주파수1 + (주파수2 * roughness) ^ 2




※ noise($TX, $TY, $TZ) 는 월드스페이스에서 노이즈 발생.


※ turb()

# depth가 있다. 그래서 거칠기를 조절할 수 있음.

# 구름같은 것 만들 때.


※ sin or cos ( $TX * "frequency" + "offset") * amplitude + cutoff


※ Lacunarity == 프리퀀시 스케일

# 복잡한 노이즈를 만들기 위해서 frequency를 다시 스케일링하는데 이것을 frequency scale 혹은 Lacunarity라고 부른다.


※ snoise()

# 그냥 noise와 다르게 뭔가 뭉탱이 느낌이 난다.

# -1.5 ~ +1.5


※ sturb()

# 이것도 그냥 turb()와는 다르게 뭉탱이 느낌이 난다. 뭉쳐있다.

# -1 ~ +1 인데 더 높아질 수 있음. (정확한 것 아님)


※ 뉴턴의 제 2법칙

# F(force) = m(mass) * a(acceleration)

# 힘 = 질량 * 가속도

# a = f / m

# 질량이 커질수록 가속도가 느려진다.


※ 파티클을 움직이는 것은 "가속도" 이다.


※ 후디니에서 mass 가 1이면 1kg이다.

# 1unit은 1m이다.


※ v = a * dt(m/s) (dt == 단위시간)

# 속도 = 가속도 * 시간

※ p = v * dt(m)

# 위치 = 속도 * 시간


※ 가속도(a)  ->  속도(v)  -> 위치(P) 이렇게 바뀐다.


※ Houdini에서의 Particle에서 "v"가 우선권을 가지고 있다. 즉, v, N 이 있는데 v 가 없으면 N을 씀.


※ abs(), clamp(), fit(), smooth()


※ 4D noise (시간 축)

# 3D mesh에서 전체적으로 울렁거리는 효과가 나타남.

# 4D 랑 y축이랑 함께 노이즈를 넣으면 이상함.

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

분수에 같은 파티클에 이미지 입히기  (0) 2013.01.25
노말 방향으로 폭파  (0) 2013.01.25
12.07.09 MON  (0) 2012.07.22
12.07.05_THU  (0) 2012.07.18
12.07.02_MON  (0) 2012.07.18
Posted by scii
:

12.07.09 MON

Houdini/SOP 2012. 7. 22. 16:18 |

◎ foreach 노드는 기본적으로 primitive를 가지고 동작한다.

# each의 tolence는 attribute를 선택했을 때만 사용한다. 만약, 0.001이면 이것을 기준으로 나눈다는 뜻이다.


◎ magnet sop은 R, G, B를 따로따로 컨트롤이 가능.


※ npims()

# 해당 노드의 primitive의 총 개수를 리턴.


※ point sop 보다 attribute create sop이 더 빠르다.


※ prim() 는 point()와 같다.

ex) prim("../ref", $PT, "P", 0) 

# ../ref 경로의 현재진행중인 포인트들의 x축 포지션값을 가지고 온다.


※ closet surface를 만들때는 isooffset sop을 이용한다.


※ strcmp와 비슷한 함수: strmatch

# strcmp는 첫번째 인자가 ASCII 코드상 앞서면 -1을 리턴, 두번째 인자가 앞서면 1을 리턴, 둘 다 같으면 0을 리턴한다.

# strmatch 는 같으면 1, 틀리면 0을 리턴.


◎ ray sop

# normal이 필요하다.

# 내가 원하는 point번호와 primitive의 order를 원할 때 가장 많이 사용한다.

# ray sop을 사용할 때 부딪히지 않으면 절격같은 것이 생기므로 내가 원하는 딱 맞는 것을 transform 으로 조절해서 사용.

(땅을 만들 때, 내가 원하는 point, prim번호로 만들고 싶을 때 그리드를 땅에다 레이를 쏘면 됨)


- point intersection destance

# 광선을 쐇을 때 부딪힌 곳까지의 거리를 계산. (dist라는 attribute를 만들고 값을 저장한다.)

※ dist 는 vector의 길이






- create point group

# 부딪힌 그룹만 포인트 그룹으로 만든다.



- point intersection normal

# 부딪힌 geo의 노말을 쓴다.(geo가 가지고 있는 원래의 노말)


- tolerence

# 얼마나 작은 값까지 허용하여 레이를 적용할 것인지를 조절.


- scale

# 0일때는 디폼이 안되고 1이면 완벽하게 모두 디폼된다. 블래드 sop 처럼.


- lift

# 디폼값에 더하는 값.


- bias

# 레이의 미니멈. 올리면 밑에있는 값은 변하기 않음. (어디부터 어디까지 계산할 것인지)


- sample

# 광선을 여러번쏜다. 숫자가 높으면 느려짐. (1이면 한번쏘고, 2면 두번쏜다.)


- shortest

# 가장 짧은 값


- longest

# 가장 긴 값


- minimum distance

# 현재 나에서 가장 가까운 primitive에 붙는다. 디스턴스 상에서.


- Intersect Farthest Surface

# 활성화하면 가장 멀리있는 것부터 붙는다.


※ attribute transfer sop 은 copy sop보다 유용할 때가 있다.



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

노말 방향으로 폭파  (0) 2013.01.25
12.07.12 THU  (0) 2012.07.23
12.07.05_THU  (0) 2012.07.18
12.07.02_MON  (0) 2012.07.18
12.06.28_THU  (0) 2012.07.12
Posted by scii
:

12.07.05_THU

Houdini/SOP 2012. 7. 18. 23:57 |


exam.hipnc


◎ isooffset

- ray intersect

# 레이저를 쏘아서 잡는다.(바깥쪽의 것만 다 잡음)

# 바깥에서 빛을 쏘는 방식이다. 밖에서 안으로 쏴서 어디에 부딪히는지 계산하여 폴리곤 surface를 만듦.

# 이음새가 없는 통자 지오메트리를 만들 때.


- max axis

# 제일 긴쪽을 샘플링 수만큼 나눠줌.


- x axis

# x축을 샘플링 수만큼 나눠줌.


- by size

# divide size 나눌 때 한개의 사이즈.


- non square

# 별로안씀(그닥임)


- Lazer scan

# 바깥쪽만 쭉 스캔 됨.


- fog volum

# 0~1 을 표현한다. (바깥쪽은 0, 안쪽은 1)

# 구름이나, 연기.


- sdf volum  ==  level set

# sign distance field.

# +, - 정보를 가지고 있다. 따라서 0이 되는 부분을 표시, 표현한다.


- override bound

# 바운딩 박스로 특정구간만 테스트할 때.

- override output divs

# 테스트할 때 오래 안걸리게 (로우한 것 테스트할 때)


- tetra mesh

# tetra type 큐브는 안을 전부 박스로 채워준다.

# 큐브 말고도 각 포인트를 네크워크로 이어지게하여 연결한다. 이것은 소프트바디 시뮬레이션할 때 속의 내용이 차 있어야 움직임을 계산할 수 있으므로 유용하다. == box노드의 enforcement bars 를 체크하면 tetra mesh와 동일해진다. (리지드 바디에서 유용)]


- invert sign

# 바깥과 안쪽을 뒤집는다 (sdf 상에서)


- file mode

# 여기에서 sdf로 저장할 수 있다.

# simdata는 dop에서 쓰이는 데이타 형식이다.


※ 리지드 바디, 워터, 파이로 시뮬레시션, 불 붙는 용기등등 만들때 모두 레벨셋으로 만든다.


※ sdf는 4~5년전부터 본격적으로 쓰기 시작했다. 스파이더맨할 때. 박스안에 한 포인트에서 계산하기 시작하여 내 바깥쪽은 +, geo 안쪽은 -값을 넣는다.


※ sdf만 simdata로 저장된다.


※ sdf는 리지드바디 할 때.


※ sdf volum == level set 중요하다.


※ 시뮬레이션에서 가장 좋은 것은 "정사각형(정육면체)" 이다.


◎ primitive sop

- adjust visualization 체크 후 isosurface를 선택하면, +와 -가 교차하는 지점을 계산하여 서페이스로 보여준다.


◎ polyreduce 는 폴리곤 수를 줄여준다.


◎ spring


◎ particle flued surface

# 이 노드는 scale, pscale 이 안된다. 왜냐면 샘플링 방식이라.


◎ magnet

# 메타볼을 이용해 디포메이션을 준다.


◎ bulge

# magnet의 심플버젼이다. (방향성 x)

# magnet은 방향이 바뀌면 즉, 회전하면 색이 변한다. 하지만 bulge는 방향성이 없기때문에 회전해도 색이 안변한다.


◎ metaball

# R, G, B 를 조절할 수 있다는 것이 큰 장점이다.

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

12.07.12 THU  (0) 2012.07.23
12.07.09 MON  (0) 2012.07.22
12.07.02_MON  (0) 2012.07.18
12.06.28_THU  (0) 2012.07.12
12.06.25_MON  (0) 2012.07.11
Posted by scii
:

12.07.02_MON

Houdini/SOP 2012. 7. 18. 01:52 |


eax.hipnc

update.hipnc





# primgroupmask()

# primitive group을 마스크를 씌어 싹다 불러온다. 

ex) primgroupmask("경로명", block_*) => block_으로 시작하는 그룹 싹다 불러옴.


# arg()

# 인자를 번호에 맞게 리턴한다. 

ex) arg("haha hoho", 1) => hoho를 리턴한다. (C언어의 argv와 같음)


# argc()

# 인자의 개수를 리턴한다.

ex) arg("haha hoho") => 2가 리턴. (C언어의 argc와 같음)


# opdigits()

# 인자안에 있는 숫자를 리턴.


※ exhelp -k opd

# 이렇게 "-k" 옵션을 주면 opd로 시작하는 모든 익스프레션이 출력된다.


※ exhelp -k string

# string에 관련된 모든 익스프레션이 출력된다.


◎ foreach sop

# 반복문과 같은 역할을한다.



exam2.hipnc




갑자기 영화 제목이 기억이 안나네... 아무튼 그 영화에서 큐브모양으로 부서지는 원리가 이런 원리로 만들었다고 한다.

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

12.07.09 MON  (0) 2012.07.22
12.07.05_THU  (0) 2012.07.18
12.06.28_THU  (0) 2012.07.12
12.06.25_MON  (0) 2012.07.11
12.06.21_THU  (0) 2012.07.10
Posted by scii
: