범블비로 설정한 우분투 환경에서 optirun bash 명령 후 houdini를 실행시키니 아이콘이 없어지는 현상이 일어났다. 

구글링 검색 후 찾은 해결 방안:

http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=23427

맨 마지막 러시아 사람이 쓴 글에서 해결했다.


Posted by scii
:

Point Cloud Shader

Houdini/SHOPs 2013. 3. 17. 13:53 |


포인트 클라우드로 만들어 본 쉐이더.

점점 녹스는 듯한 느낌을 내보려고 작업해 보았다.



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

shading  (0) 2013.08.22
Displacement 진행 순서  (0) 2013.01.22
Light Global Variables  (0) 2013.01.20
Lambert 와 Specular 함수의 정의  (0) 2013.01.18
fog shader 2  (0) 2013.01.17
Posted by scii
:


뷰창 옵션 지우는 것을 한번 작성해 보았습니다. 쉘프창에서 new tool 누르신 후 스크립크 창에 적용하시면 됩니다.

All을 누르시면 옵션 모두 지우고, One을 누르시면 옵션들을 하나씩 보여주면서 선택적으로 지울 수 있습니다.


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

Scene View Select (obj, geo, dop, etc...)  (0) 2013.07.11
rot, trans, scale  (0) 2013.05.25
hou Module Functions  (0) 2013.04.01
모든 하위 노드 출력하기  (0) 2013.02.22
Houdini Python Test  (0) 2013.02.20
Posted by scii
:

children() 함수: 하위 노드들의 목록을 보여줍니다.

name(): 이름을 보여줍니다.


1. 일단 아무노드나 만듭니다~


2. geo2 의 하위노드들 


3. python창에서 작업을 하면, 디버깅하기가 여간 불편한것이 아니라서... 디버깅을 편하게 하기 위해, 그리고 단순 클릭만으로 스크립트가 실행되게끔 하려고 shelf 툴에서 작업을 하였습니다. 

shelf 에서 마우스 오른쪽 클릭을하면, Edit Shelf가 나오는데 그것을 클릭 후 Script Language를 Python으로 바꾸어주면 됩니다. 

그 다음, 아래의 소스코드를 작성하시면 됩니다.

이 소스코드에서 PrintChild함수는 재귀함수(함수안에서 다시 자기 자신을 호출하는 함수)입니다. 여기서 재귀함수를 쓴 까닭은 트리구조에서 재귀함수를 쓰면, 코드가 상당히 간결해집니다. 물론 쓰지 않고 함수를 구성해도 됩니다만 코드가 상당히 너저분해지고 까다로워질 것이라 생각합니다. 

그래서 트리구조에서 하위노드들을 가져올 때, 재귀함수를 써서 가져옵니다. 

후디니는 노드구조(트리구조) 이기때문에 재귀적으로 구현해야 코드가 간결해집니다. 트리구조와 재귀함수의 관계가 무엇인지 다 아시겠지만, 혹 궁금하신 분들은 "이진 트리의 순회"를 찾아보시면 좋을 것 같네요.

위키백과: http://ko.wikipedia.org/wiki/%ED%8A%B8%EB%A6%AC_%EC%88%9C%ED%9A%8C

PrintChild함수 내에서 가장 중요한 라인은 5번째 라인입니다. 5번째 라인을 보시면 다시 자기자신을 호출합니다.

그래서 첫번째 인수인 node로 진행중인 child가 전달되고, 두번째 인수로 indent가 +3이 되어 3이 전달됩니다.

그 다음, 하위노드가 또 다시 존재한다면, 첫번째 인수인 node로 진행중인 child가 전달되고, 두번째 인수로 indent가 +3이 되어 6이 전달됩니다.

이렇게 더 이상 하위노드가 존재하지 않을때까지 내려가면, node.children()은 None을 리턴하고 for문은 거짓이되어 자기를 호출했던 곳으로 다시 돌아갑니다.

그렇게 맨처음 자기자신을 호출했던 곳까지 돌아가고 함수가 끝납니다. 

재귀함수를 글로 설명하려니 참 애매하네요. 그림으로 보시면 아마 금방 이해하실겁니다. 재귀함수의 관한 그림 많으니 한번 찾아보시면 좋을 듯 합니다.


4. 위의 스크립트의 실행 결과입니다. 

결과를 보시면, ipr_camera노드의 하위노드 caOrigin, file1, xform1이 보이네요.

geo1는 file1...

그런데 위의 스크립트는 파이썬 창을 열어야 확인가능합니다. print문은 python창으로 출력을 보내네요. 리눅스에서는 이렇게 되는데 윈도우에서는 어떨지 모르겠습니다. 

여하튼, 보기가 좀 불편합니다. 


5. 여기서는 print문 대신에 메시지를 띄우기위해 hou.ui.displayMessage를 함수를 썼습니다.

그리고 이 함수를 써서 결과물을 잘 나오게 하도록 '\n'(new line) 을 넣었습니다.


6. 실행 결과


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

Scene View Select (obj, geo, dop, etc...)  (0) 2013.07.11
rot, trans, scale  (0) 2013.05.25
hou Module Functions  (0) 2013.04.01
Python으로 만든 뷰창 옵션 지우기  (0) 2013.02.23
Houdini Python Test  (0) 2013.02.20
Posted by scii
:



맨 처음에는 viewoptrm `run("viewoptls")` 이렇게만 적용하였다.

그런데 문제가 실수로 한번만 툭 눌러도 view option들이 싸그리 지워지는 것이다. 

그래서 별 것 아니지만, 메시지를 띄어서 사용자가 선택할 수 있게하였고, 그 결과 값을 if문을 통해서 선택적으로 명령이 실행되게끔 코딩하였다. 



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

Houdini Special characters  (0) 2014.04.21
dot product, arccosine, length, normalize 분해하기  (0) 2013.06.21
RenderMan Shader Compiles  (0) 2013.01.08
Houdini User가 갖춰야 할...  (0) 2012.12.02
Cross Product  (0) 2012.11.27
Posted by scii
:

Houdini Python Test

Houdini/Python 2013. 2. 20. 23:21 |

이 소스코드를 저장하여 실행시킨면, Houdini의 hip파일이 자동으로 만들어진다. 


hip파일을 열어서 들어가면 내가 정한 geo 컨테이너가 있고, 그 안에 노드들이 있다. 그리고 홀수 번호를 가진 노드들만 bypass를 명령했기때문에 사진처럼 bypass가 되어있다.

코드 중에 enumerate를 쓰지않고 할 수도 있었지만, enumerate를 쓰는 것이 더 수월해서 이것으로 하였다.


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

Scene View Select (obj, geo, dop, etc...)  (0) 2013.07.11
rot, trans, scale  (0) 2013.05.25
hou Module Functions  (0) 2013.04.01
Python으로 만든 뷰창 옵션 지우기  (0) 2013.02.23
모든 하위 노드 출력하기  (0) 2013.02.22
Posted by scii
:

smoke

Houdini/DOP 2013. 2. 1. 15:10 |






Posted by scii
:



바닥에 닿을때만 색깔이 변화하도록 chop에서 데이터를 받는 노드 구성.

속성을 하나 만들어서 chop에서 slope를 이용하여 그래프를 만든다. 그 후 그 데이터를 만들어놓은 속성에 맵핑시킨다.

그 다음 그 맵팅된 값을 색에 곱해주면 바닥에 닿을때만 색상이 변화한다.


slope를 통하여 속도를 구한다. 그 다음 트기러를 이용하여 그래프를 조금 만져준다.



최종적으로 나온 그래프의 모양


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

chops의 lag를 이용한 애니메이션  (0) 2013.01.27
12.08.20 MON  (0) 2012.08.23
12.08.16 THU  (0) 2012.08.17
12.08.13 MON  (0) 2012.08.14
12.08.09 THU  (0) 2012.08.12
Posted by scii
: