달력

12

« 2024/12 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'Houdini/H_Practice'에 해당되는 글 5

  1. 2021.08.04 -book : 후디니로 구현하는 알고리즘 디자인
  2. 2021.04.07 TWA study
  3. 2021.03.09 Joy of Vex
  4. 2017.05.08 note
  5. 2017.03.22 Pyro FX

-book :  후디니로 구현하는 알고리즘 디자인 (호리카와 준이치로) 번역서.

Junichiro Horikawa - YouTube 

 

원서 : Amazon.co.jp: 堀川淳一郎: Books, Biography, Blog, Audiobooks, Kindle

 

1.Mandelbulb algorithm (fractal)

 Mandelbulb (wiki)는 2009년에 구면 좌표를 사용하여 Daniel White와 Paul Nylander가 구성한 3차원 프랙탈입니다.

 # Maldelbrot set (wiki)  

기반지식:

 복소평면(가우스평면),

 복소평면상에서 만델브로 집합(2차원) > 프렉탈 도형

 만델벌브 알고리즘(3차원) >복소평면 사용불가 

 

[1.37] 극좌표계란 무엇인가? (기초) : 네이버 블로그 (naver.com)

 극좌표계 > xy좌표계 대신 점 P를 (r, Θ) (원점에서의 거리(변위),각도)로 표현.

   (-r, Θ) = (r, Θ+π) = (-r, Θ+(2n+1)π).       (r, Θ) = (r, Θ+2nπ).

[1.41] 극좌표계 그래프 그리기 : 네이버 블로그 (naver.com)

 

 구면좌표계는 (r,Θ,θ)로 나타낸다.(wiki)

volume > volume wrangle > convert vdb(convert to sdf) > vdb smooth > convert vdb(convert to polygon)

 

2. Chladni Pattern

편평한 판위에 가루를 뿌리고 진동을 주면 일정하게 생기는 무늬모양.

주파수가 높을수록 더 정교한 패턴이 생긴다.

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

TWA study  (0) 2021.04.07
Joy of Vex  (0) 2021.03.09
note  (0) 2017.05.08
Pyro FX  (0) 2017.03.22
:
Posted by fx0275
2021. 4. 7. 16:54

TWA study Houdini/H_Practice2021. 4. 7. 16:54

TWA 후디니 공부 방법

1. 조급하지 말기

2. 학습과 작업은 다르다. > 직접 해보기

3. 작업내용을 글로 풀어 써보기 > 노드를 보고 설명할 수 있어야 한다.

4. 가능하면 영어에 익숙해지기 > 영어 자료가 좋고 많지만 이해 하려면 영어가 필요.

5. 수학과 코딩 공부 염두해두자 > 모르더라도 조금씩 ,,

6. 넉넉히 시간 투자하기

7. 멘탈 관리 > 좌절 금지.

8. 모르면 물어보자 > 막힌 부분 해결하려고 너무 시간 낭비 하지 마라

 

입문2_3 - 의자모델링 

  null 노드에 parameter interface를 추가하여 사이즈 컨트롤 하는 방법.

  null> parameter interface> float 변수 추가 >copy parameter > 대상에 paste relative references

 

  node: polywire, voronoifracture, connectadjacentpiece,

          carve- 선분의 길이의 일정 부분을 비율로 잘라냄

          objectmerge: 다른 노드를 연계해주는 더미 변수 노드(object항목에 다른 노드 드래그)

          facet: 발음>빠셋:같은 위치 버텍스 합치기.& 3dsmax의 smoothing group 기능

          polyframe(노멀,탄젠트에 대한 수정)

          skin(spline loft 효과), reverse(면뒤집기)

          polyextrude,

   

  뷰포트 상에서 select privimitve선택> 면 선택>Tab key >transform+엔터 >선택한 primitive의 transform노드 생성됨

  node: output(output를 추가하면 subnet 내에서 선택된 상태의 출력이 아닌 output노드 기준으로 보여준다.)

           polybevel

 

애니메이션

  alt+LMB 키프레임 생성. 

  MMB 타임라인에서 키프레임 이동

  키프레임 전체 이동 타임라인에서 shift+LMB 드래그 영역지정 > MMB로 이동.

  animation editor : H key>그래프를 화면크기에 맞춰준다.

  (Hscript Global Variables)  $FPS, $FSTART, $FEND, $F, $HIP, $PI, $T

  $T = ($F-1)/$FPS

 

  node: copy(3dsmax array), file, 

  $CEX, $CEY, $CEZ (오브젝트의 중앙에서부터의 거리)

 

  point expression : point(surface_node, point_number,attribute, index)

   ( surface_node는 경로 > ../ 는 상위 폴더 개념. )

 

  node: subdivide, convert(폴리곤,스플라인 타잎 변경)

  edit: select mode > S key, move mode >T key, 반복작업때는 S키만 누르면 select와 move 모드가 반복된다.

 

 

Attribute VOP & Attribute Wrangle(VEX)

  int, float, vector, array, string, matrix, bsdf, struct

  서로다은 data type끼리의 연산은 앞쪽 datatype을 따른다 (int x float =int, float x int =float)

 @P @Cd @N @V @ptnum @numpt @Frame ($F) @Time ($T)

  벡터 변수값을 선언할때 {a,b,c}보다는 set(a,b,c)사용. > {@a,b,c}를 사용할때 @값이 제대로 안들어 오는 경우가 있다.

 

  vop node : bind(attribute값 가져오기), constant, vectofloat, floattovec, length

          importpoint(연결된 순서에서 attribute가져오기) + bind export,

 

 

  램프 애니메이션.

  두점사이에서 일정 비율의 위치 구하기  (ay+bx)/(a+b),  a:b 비율  x,y 위치

  attribute wrangle : Detail(only once)일때 상위 @를 사용하려면 point함수를 사용해야 한다.

 

 node : sort (위치나 값의 기준으로 포인트를 정렬)

          setpointattribsetpointattrib(0,"Cd",2,color,"set"), addpoint로 포인트 추가 후 색상변경.

          clamp(input_var,min,max),

 

  detail(input_num, "name"), 디테일 속성값을 가져 올때.

 

  node: polyextrude, reverse, facet, polywire, skin

 

---------------------------------------------------------------------

 

후디니에서 excel파일은 csv로 사용. 한글은 모두 영문으로 바꾸기.

 

excel 파일 xls > csv 변경시  숫자 표기에 서식이 없음으로 바꿔주기 

   > 문자로 읽어 들이기 때문에 10,876 이와 같이 , 표시가 있는 경우 정상적으로 읽지 못함.

 

  node: attribcopy (속성만 가져올때)

         blendshape 라인의 포인트 개수가 같아야 제대로 작동한다

                 > resample에서 xyz축기반으로 나눠서 적용.

 

 

 

 

 

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

-book : 후디니로 구현하는 알고리즘 디자인  (0) 2021.08.04
Joy of Vex  (0) 2021.03.09
note  (0) 2017.05.08
Pyro FX  (0) 2017.03.22
:
Posted by fx0275
2021. 3. 9. 17:37

Joy of Vex Houdini/H_Practice2021. 3. 9. 17:37

www.tokeru.com/cgwiki/index.php?title=JoyOfVex

 

JoyOfVex - cgwiki

A 20 day program, each day aiming to be between 5 and 30 minutes plus exercises. Introduction There's a few stages to learning Houdini; getting into nodes and proceduralism is one, dynamics is another, vops is another. But the one that can seem the most da

www.tokeru.com

 

www.youtube.com/channel/UCehOp6tIqOqlFa7_-cpgw1Q

 

TWA 후디니의 정석

모든 랭글러를 위하여. 똭! TWA와 함께 하는 후디니 공부가 여러분의 학습에 조금이나마 도움이 되길. -TWA

www.youtube.com

 

** 불편해도 많이 써보고 감각이 올라와 있어야 필요할때 써먹을 수 있다.

 

Day 1.

   @Cd, @N, @P,

   @ptnum, @numpt - 정수이기때문에 float 계산시 float(@ptnum), float(@numpt) 로 사용.

   sin(), cos(), ch("name"), 

 

node: grid, add, switch, transform, normal, attribwrangle, merge, resample,

 

Day 2.

    length(), 원점에서의 거리

    distance(), 두 벡터 간의 거리

    fit(input,min,max,new_min,new_max) 범위를 새로운 범위로 변경

    clamp(input,min,max) 범위 제한

    @Time, chf, chv, chi

    버텍스 값 입력 방법: {0,0,0} 

 

Day 3.

    @P+@N, 

 

Day 4.

    chramp("name", value),  자동으로 value를 0~1사이값으로 변환해서 적용. (그래프 가로: 입력, 세로:출력)

    d + @Time, d - @Time 차이 구별.

    

Day 5.

    %(modulo), -0.2%1 = 0.8,  @Time%chf("flickering");

    floor(), 내림 함수 floor(0.6) = 0, floor(-1.8) =-2,

    ceil(), 올림함수 ceil(0.6) = 1,

    rint(), 반올림함수 rint(0.4)=0, rint(0.6)=1, round()함수는 없음.

    trunc(), 절사,버림 함수, trunc(0.9) = 0, trunc(-1.8) =-1, 점대칭

    frac(), 소수점 부분만. 1.8 = 0.8,

    abs(), 절대값, 

    edit parameter에서 변수입력 range값 변경하기.

    node: clip - 단면 확인용도.

 

Day 6.

    point, 점. (vector 위치정보)

    vertex, primitive가 되는 point의 개별 묶음 정보

    primitive, vertex로 만들어진 결과물, primitive wrangle에서는 @P는 읽기만 가능하다.

    node: foreach primitive, attribute vop,

 

Day 7.

    point(input,"attribute name", number), "P", "Cd"....    : vector 위치값 반환.

    s@test ="AAA" : string attribute.

    visualization (RMB) > scene +> marker 추가 : attribut에 따른 custom 마커 지정 가능.

    distance(a,b), 두 벡터간의 거리.

    minpos-오브젝트 기준으로 가까운 위치 vector찾기, (vector 위치 반환)

    nearpoint -가까운 포인트 넘버 찾기, : 포인트 넘버 반환

    @opinput1_xxx, P, Cd.... TWA에서는 설명을 다음으로 미룸.

    

    node: attribrandomize(랜덤하게 속성값을 지정, 속성값 생성도 가능, dimensions에서 몇차원값인지 지정,)

            pointjitter,(각 포인터를 랜덤한 위치로 변경)

            platonic solid, copy to points,

 

Q1.Noise

    random != noise  랜덤(독립적인값), 노이즈(흐름(연속성)이 있는 랜덤값)

    차원은 변수의 개수, frequency & offset & amplitude

    node: attribvop - vectortofloat, floattovector, bind, bind export, aanoise, constant, add, multiply

            vdbfrompolygon,pointsfromvolume, switch, groupexpression, blast, mountain,

 

Day 8.

    noise, curlnoise

 

Day 9. A

    normalize : 크기 1의 벡터로 만들기. 결과:vector

    dot(dot product): 내적,각도값.단위벡터일때 cos세타 값, 결과: float값

                        순서가 바껴도 결과는 같다. 

    cross product: 외적, 두벡터에 수직인 벡터,방향, 결과: vector (오른손 법칙),평행사변형의 넓이가 수직 길이.

                       순서가 바뀌면 방향이 바뀐다.

           cross product로 수직인 벡터를 구하고 구한벡터와 빛의 벡터를 normalize한다음

           dot product를 사용해 빛의 세기를 구한다.

 

    node: carve,

 

Day 9. B

    attribdelete, 

    copy reference, paste relative referenced,

    vector + - * 

    node: scatter, blast,

 

 

Day 10.

    @rel = float(@ptnum)/@numpt,  ptnum을 float로 형변환 해줘야 0~1값으로 계산된다.

    relpointbbox,

 

    node: bound, 

 

Day 11.

    if (  ) { } else if{ } else{ }..............  > < >= <= == != &&(and) ||(or)

    0 == sin($PI)  실제 계산된값은 정확한 0이 아닌 0.00000...87 이기때문에 거짓.

    즉 sin($PI) < 0.00001 과 같은 형태로 구성해줘야 한다.

    오브젝트의 @ptnum%5 모듈러 연산자로 랜덤한값 유도할수있다.

 

Day 12. A,B

     코딩 규칙, 물결효과(효과중첩 X)-개별 포인트별로 중첩.

 

Day 12. C

    nearpoints(input num, attrib, 반경), nearpoints(input num, attrib, 반경,개수),

    int TWA[], i[]@TWA, TWA[2][4],

 

Day 13.

    foreach(pt; pts[]),를 사용한 중첩. pt는 pts[] 배열에 있는 값이 순차적으로 적용된다.

    for( int i; i<0;i++),

    len(배열), 배열의 길이.

 

Day 14.

    개념> point : 점, vertex: primitive를 구성하는 요소, primitive : 선이나 면.

    int aa = addpoint(0,{0,0,0});   removepoint(0,aa);

    addprim(0,"polyline");      poly(면), polyline(선), 

    addvertex(0, 프리미티브이름, 포인트 이름),

 

   생성 순서 : 점생성 >프리미트브 생성 > 버텍스 추가. (연결되는 순서에 따라 면이 뒤집어진다.)

                 addpoint > addprim > addvertex

    addprim(0,"polyline",0,1) 포인트 넘버를 직접 대입해도 된다. 0~1의 line 생성

    addprim(0,"poly",0,1,2)

    addprim > addpoint >addvertex 실제 코딩때 적절한 순서.

 

    removepoint(0,point num)

    removevertex(0,vertex index)

    removeprim(0,prim number,option) option: 0 포인트를 남긴다, 1 포인트까지 지운다.

    rand(value,seed);

 

Day 15.

    node: copy to point , 속성값도 가져와서 x / + - 연산시킬수 있다.

            ^(not) ^Cd ^P.........

            Transform Using Target Point Orientations : orientation은 이 옵션으로만으로 제어한다.

                                                                (pscale, 방향 에 적용됨,N 노멀은 상관없다.)

 

    node: attribrandomize 속성값을 랜덤하하게 바꿔준다 . 

    

    pscale 전체 동일 비율로 크기 조절, scale : xyz 개별 크기 조절, 

  

    grid 의 면에 대한 방향때문에 copy to point 로 오브젝트를 복사하면 x축으로 90도 회전 되어 나타난다.

     ( grid >add 추가해서 점으로 변환 후 연결하면 해결, )

     (add가 없을때 point normal이 다르게 지정되어 있어서 나타는듯 > 노멀 수정 방법은 나중에 알아보기)

 

    chramp 타입을 color로 설정 가능.

 

 

Day 16.

    @up  @N 의 관계.  up 윗방향, N 정면

    포인트에 업벡터를 사용하려면 > @N={0,1,0}처럼 노멀을 추가한후 방향벡터를 구하고 노멀라이즈해서 사용.

    cos($F),sin($F)..

    edit모드 select 모드에서 버텍스 선택후 'E' 키. or edit 노드 추가.

    (edit 모드 후 highlight 포인트를 없애려면 edit node를 추가로 달아주면 된다)

     

   if( min(@Cd)<0){@Cd=0.1;}      min(@Cd)<0 , @Cd<0  비교 차이.

 

   copy to point 노드에 적용될때는 {0,0,1}의 방향이 기준이 된다.

 

 

Day 17. A

    @orient : 물체의 방향과 각도,  @orient = set(a,b,c,d), 

    @orient = quaternion(angle, axis), axis는 normalize 해서 단위벡터로 사용하도록.

    (@orient 값을 예측하거나 계산해서 대입하기 어려움 > 결과물 비쥬얼에 대한것만 고민할것)

 

Day 17. B, C

    1.쿼터니언 2개 인풋(angle, axis), 1개 인풋(vector)=(axis * angle).

    2. @N과 @up을 orient로 변환시키는 법. 

       @N과 @up이(원운동때) 수직이 아니면 튀어 보인다.

    3. 각도값을 orient로 변환시키는법

    4. orient 값을 mix 해주는 법

    5. orient값끼리 곱, 효과의 중첩.

    6. orient > matrix,  matrix > orient | maketransform <> qconvert.

    7. orient > matrix > @N,@up

 

    vector&float > vector >matrix >quaternion

    @N,@up >maketransform ->matrix >quaternion

    matrix3 AA, 3@AA,

    @N ={1,1,0}; @N = normalize(@N); 축의 크기가 1이 아닐때 부자연스럽게 움직임> normalize.

 

    ident() 단위행렬, 

    matrix3 ( a, b, c )

              ( d, e, f )   >@up

              ( g, h, i )   >@N

    

    @orient > qconvert 역변환 > matrix >@N, @up 확인 가능.

    

    eulertoquaternion(xyz각도(vector),축설정set). : 각도>@orient.  0:xyz,1:xzy,2:yzx,3:yzx,4:zxy,5:zyx, 

    radians(각도 값), $PI = 3.141592.....  $PI/2=90도

 

    rand(), noise() 결과 차이

    lerp(vector A,vector B,amount) :vector에 사용.

    slerp(vector4 A,vector4 B,amount)  : orient에 사용

    @Time%1.

    

    transform node: attributes : * ^orient 

    qmultiply (quaternion multiply) 두개의 쿼터니언 합. @orient = qmultiply(@orient, rot);

    {0,1,0}*qconvert(@orient) >@N,  {0,0,1}*qconvert(@orient) >@up

    배열에 매트릭스값 넣을때.

       matrix3 m = qconvert(@orient);
       vector a[] = set(m);

 

 

 

Day 18.

    spreadsheet > intrinsics 내재정보 (spreadsheet에서 primitive, detail 항목에서만 확인)

                      - 흰색으로 활성화 된 정보만 수정가능,회색은 수정 불가.

    primintrinsic( input, intrinsic name, prim number),        //point()함수와 사용법은 동일.

    @primnum, bounds, measuredarea(primitive 면적),

    setprimintrinsic( input, intrinsic name, prim number, value), //intrinsic 값을 입력.

    intrinsic:transform 정보는 point 점 하나에 primitive 하나를 가진 상황에서 나타난다.

    matrix 값의 사용에 따른 차이 : primitive - transfortm 모양 변경

                                             point - 방향과 회전의 양 (@orient)

    intrinsic: packedfulltransform (matrix4 값을 maxtrix3로 가져와서 @orient로 설정, 회전과 크기 정보)

    qmultiply() 두 쿼터니언의 곱,

 

node: pack(primitive가 아닐때(polygon) 추가하면 intrinsic:transform을 확인할수 있다),

        explodeview, isooffset, voronoifracture, dopnet, dopimport, material,

        dopnet > rbdfractureobject, rigidbodysolver, groundplane,gravity.

        dopimport > import style - fetch packed geometry from dop network

                                       / fetch unpacked geometry from dop network

   

Day 19.

    primuv(input,"attrib",input prim number,uv vector), ex) primuv(1,"P",0,{0.75,0.85,0}),

    grid >primitive type: NURBS 로 설정하면 primitive개수가 1개로 되어 오브젝트 전체를 따라가게 된다.

    xyzdist(input,@P or @Cd or @N, var int primnum, var vector uv) 

         : 가장 가까운곳의 float dist & int primnum, & vector uv 위치 값을 반환,변수는 미리 설정해둬야 한다.

           , (minpos, nearpoint, nearpoints), 

    

   node:scatter, blast, 

          scatter > output attributes >Prim UVW attribute : Cd

 

Day 20.

    nearpoints(input ref,@P,반경,개수):결과array값,input ref 참조해서 가까운 점 찾기,  

    pcfind(input ref,"P",원본@P,반경,개수):결과array값,input ref attrib를 참조해서 가까운 점 찾기.

    pcfind > nearpoints >nearpoint

    setpointattrib(0,"Cd "만들어주는 속성,point num어떤포인트, col,"set")

    foreach, len(array)배열길이,

 

    node: vdbfrompolygons > fog vdb, vdbvisualizetree, attribdelete,

            attribvop, circle >polygon>open arc,

 

    >P oint C louds

    int mypc = pcopen(input ref, "P",@P,반경,개수):각 포인트에서 만들어진 군집 정보,모든 attrib를 담고 있다.

                   file 정보로 출력. 대상"P"와 자기@P 를 비교해 가장 비슷한 것을 범위내 개수로 먼저 찾는다.

    pcfilter(mypc,"P"), 모든 포인트에 포지션에대한 평균값. 가지고 있는 attrib들의 평균을 구할수 있다.

    file,

    node: uvquickshade:텍스쳐 입히기, 

            attribvop: texture,

 

    > ambient occlusion : 거리와 노멀에 따른 방식에따라  빛에 대한 표현을 가상으로 만들어 주는것.

          평균값보다 높다,낮다 > 밝다,어둡다.

    dot, normalize, pow

 

 

 

 

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

-book : 후디니로 구현하는 알고리즘 디자인  (0) 2021.08.04
TWA study  (0) 2021.04.07
note  (0) 2017.05.08
Pyro FX  (0) 2017.03.22
:
Posted by fx0275
2017. 5. 8. 15:42

note Houdini/H_Practice2017. 5. 8. 15:42


VDB

http://www.museth.org/Ken/Publications_files/Museth_TOG13.pdf


We have developed a novel hierarchical data structure for the efficient representation

of sparse, time-varying volumetric data discretized on a 3D

grid. Our “VDB”, so named because it is a Volumetric, Dynamic grid that

shares several characteristics with B+trees, exploits spatial coherency of

time-varying data to separately and compactly encode data values and grid

topology. VDB models a virtually infinite 3D index space that allows for

cache-coherent and fast data access into sparse volumes of high resolution.


http://www.openvdb.org/documentation/doxygen/faq.html#sWhatIsVDB


OpenVDB is a library comprising a compact hierarchical data structure and a suite of tools for the efficient manipulation of sparse, possibly time-varying, volumetric data discretized on a three-dimensional grid. It is based on VDB, which was developed by Ken Museth at DreamWorks Animation, and it offers an effectively infinite 3D index space, compact storage (both in memory and on disk), fast data access (both random and sequential), and a collection of algorithms specifically optimized for the data structure for common tasks such as filtering, constructive solid geometry (CSG), discretization of partial differential equations, voxelization of polygons, skinning of particles, volumetric compositing and sampling. The technical details of VDB are described in the paper "VDB: High-Resolution Sparse Volumes with Dynamic Topology".




Mantra

rendering engine > Micropolygon rendering

http://www.sidefx.com/docs/houdini/render/understanding


................

Micropolygon rendering was a performance compromise that has largely been supplanted by raytracing in modern rendering setups. The micropolygon algorithm was designed for memory efficiency: geometry is diced and shaded once, then discarded when it is no longer needed (though it remains in memory if it is hit by a ray). Now that we have models with very high polygons counts and machines with tons of memory, raytracing/PBR is usually a more efficient method.

............

The "Physically based micropolygon" setting exists in case someone found a need for it, but is not really useful.


The following might be reasons to use the micropolygon rendering engine:


Scenes involving a lot of fur and/or smoke (using deep shadow maps), or sprites, can render more efficiently with micropolygon rendering, provided you are not using ray traced shadows or other ray tracing in the shader. Note that you might want to render fur and volumes as a separate render pass using micropolygon rendering and render the rest of the scene using PBR.

Scenes that require matching existing footage rendered with micropolygon settings.

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

-book : 후디니로 구현하는 알고리즘 디자인  (0) 2021.08.04
TWA study  (0) 2021.04.07
Joy of Vex  (0) 2021.03.09
Pyro FX  (0) 2017.03.22
:
Posted by fx0275
2017. 3. 22. 23:06

Pyro FX Houdini/H_Practice2017. 3. 22. 23:06

Houdini 16.0.504.20

Node

Channel(CHOP) / Compositing(COP) / Dynamic(DOP) / Object / Render(ROP)

Geometry(SOP) / VEX networks (Vector Expression Language) (containers for VOP) / VOP(Vector OPerators)

http://www.sidefx.com/docs/houdini/nodes/_index


https://www.sidefx.com/forum/topic/43515/?page=1#post-195103

Object = Object type nodes in an Object type folder. These Object nodes allow you build transform constraint hierarchies. Geometry type Object nodes contain SOP nodes that construct and modify geometry that inherit any transforms at the object level.

SOPs = Surface OPerators or geometry nodes that are inside an object folder. These are used to construct and modify geometry. Any kind of geometry from polygons to volumes.

DOPs = Dynamic OPerators or simulation/solver nodes that are used to construct simulations. Simulations read in geometry from SOPs and passes this data in to the DOP solvers.

SHOP = SHading Operators are materials that represent a shader to apply to geometry. Some are hard coded with vex and others are folders that you can dive in to and modify the VOPs inside.

VOPs = Vector OPerators inside VOP network nodes are used for everything from building shaders to modifying geometry, volumes, pixels, and more.

VEX = Vector Expression Language. The code language used to write shaders. VOPs are wrappers around VEX code snippets.

CVEX = Context agnostic Vector Expression Language. This has replaced all the VEX specific contexts throughout Houdini. It is a generalized language that uses the same environment and functions anywhere inside Houdini.

COPs = Composite OPerators in composite type folders. Used in image compositing operations.

ROPs = Render OPerators in side ROP Output directories which are used to create render output dependency graphs for automating output of any type of data and for triggering external processes like rendering. Commonly used to generate sequences of geometry, simulation data and trigger Render tasks that generates sequences of images to disk.

CHOPs = CHannel OPerators used to create and modify any type of raw channel data from motion to audio and everything in between. Most users safely ignore the CHOP context, and so can you, for now. Put it on the “get to it later” list when learning Houdini. But definitely keep it on the list. 



Pyro FX

Flames / Explosion / Fireball / Billow Smoke / Wispy Smoke / Candle /

Smokeless Flame / DeyIce / Volcano / Smoke Trail / Smoke Cluster / Pyro Cluster

 

<Flames>

.

<FireBall>

.



<Explosion>



Dynamics(DOP) nodes

Smoke object

http://www.sidefx.com/docs/houdini/nodes/dop/smokeobject

 

Gas Resize Fluid Dynamic

http://www.sidefx.com/docs/houdini/nodes/dop/gasresizefluiddynamic

 

Source Volume

http://www.sidefx.com/docs/houdini/nodes/dop/sourcevolume

 

Pyro Solver(2.0)

http://www.sidefx.com/docs/houdini/nodes/dop/pyrosolver

Gravity force

http://www.sidefx.com/docs/houdini/nodes/dop/gravity

 

Geometry(SOP) Nodes

Fluid Source

http://www.sidefx.com/docs/houdini/nodes/sop/fluidsource

DOP I/O

http://www.sidefx.com/docs/houdini/nodes/sop/dopio

DOP import

http://www.sidefx.com/docs/houdini/nodes/sop/dopimport


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

-book : 후디니로 구현하는 알고리즘 디자인  (0) 2021.08.04
TWA study  (0) 2021.04.07
Joy of Vex  (0) 2021.03.09
note  (0) 2017.05.08
:
Posted by fx0275