Python과 DA(디지털에셋), VOPs, Point SOP, Attribute SOP
Aattribute Create SOP을 이용하면, 단 하나의 어트리뷰트를 만들거나 조작이 가능함.
- attribute종류(class)로는 vertex, point, primitive, detail
- 타입으로는 Integer, Float, Vector, String
- variable Map 기능 : 예) foo라고 불리는 어트리뷰트는 디폴트로 대문자 FOO로 매핑된다.
- expression을 이용해서, 데이터나 어트리뷰트를 from 다른 Node에서 접근할수있다.
- 예) $FOO-1이 있다.
정리)attribute create sop에서 variable MaP된 attribute를 expression주면..
느린편인데 그이유는 attribute접근을 위해 expression에 대하여 인터프리팅을 해야하기 때문이다.
Point SOP노드는 통상적인 Attribute 들을 각각 복수개로(한꺼번)을 만들거나 조작하게 해준다.
- add/manipulate common attribute - Position, color, normal, velocity, up, etc...
- 어트리뷰트의 (1:1)매치가 가능하다(타입 교환기능?). 이로서, 포인트 넘버대신 파티클 아이디로 매칭할수있다.
- internal varmap(legacy) - 포인트SOP에서도 variable Map기능이 존재하지만, 다르다.
- x 좌표의 위치값(double)을 구할때, varmap으로 정의된 $POSX보다는 $TX를 더 많이 활용한다.
- 레드컬러 채널같은 경우에도 $CD1보다는 $CR을 많이 쓰고,
- u좌표값을 얻을때도, $UV1보다는 $MAPU를 더 많이 사용한다.
- AttribCreate SOP처럼 expression을 이용해서 정보를 추출할수있음.
- 예) 다음의 expression function 은 geo1의 facet1노드의 3번의 포지션 x정보를 가져온다.
- eg. point("/obj/geo1/facet1",3,"P",0)
정리) AttribCreate SOP에서와 마차가지로, SOP노드에서 expression을 써서 attribute에 접근하는것은 많이 느리다.
수많은 수식의 evaluation과 수많은 if문의 인터프리팅작업은 연산을 느리게 하는 요인이 된다.
Python SOP 이나 DA(디지털 애셋)을 통해서 attribute를 만들수있다.
- 하나의 강점이 python 루프의 String Functionality를 통해 attribute를 생성할수있다는것이다.(코드로 뭐든지 가능하다.)
- Hou.Geometry.addAttrib을 이용해서 Attribute를 추가하거나 조작이 가능하다.
VOP Operators
os는 최상위 네임스페이스였네용. 안에 또 모듈이 들어있음.
houdini의 최상위 모듈은 hou인것처럼...
닷넷의 system이 최상위이고,,
system.net system.console 뭐 이렇게 하위 모듈로 또 나뉘어집니다.
Under Linux, all programs run in a virtual memory environment. If a C programmer prints the value of a pointer (never necessary in practice), the result will be a virtual memory address. In Fortran, although pointers are not a standard feature, virtual memory addressing is implicit in every variable reference and subroutine call.
Node
후디니의 노드 간단히 설명하는 그림입니다.
노드는 프로그래밍언어에서 말하는 함수와 매칭됩니다.
VPL & Programming...
후디니는 Visual Programming Language(VPL)분류의 3D프로그램입니다.
http://en.wikipedia.org/wiki/Visual_programming_language
VPL프로그래밍언어가 가지는 가장큰 장점은 'parametric을 코드 없이 구현한다' 입니다.
input데이터 -> vpl노드 -> output데이터
프로그래밍(알고리즘)을 추상적으로 표현하면...
소스데이터 -> vpl노드 -> 원하는(중간)데이터
일작업 -> 함수 -> 목표데이터(최종목표에 다가가는)
입니다.