jrand 함수의 예제 파일:

myCustom_jrand_exam.hipnc


jrand 함수의 소스 코드:

Houdini_Jeon_jrand.txt


밑의 캡쳐 사진에서 보면 Houdini의 rand() 함수는 숫자가 중복된다. 

숫자가 중복되지 않도록 하기 위해 고민을 하다가, 그냥 Houdini 내의 함수로 만들었다.  Houdini의 내장 함수를 만들 때, 문법 상 안되는 것들이 상당히 많아서 골머리를 썩었지만 다른 방식으로 해결되어서 참 좋다.

jrand 함수를 만들었는데 사용법은 이렇다.

jrand(최소범위, 최대범위, 생성할 난수 개수) 이렇게 3개의 인자를 받고 그에 맞는 난수를 생성해 준다. 중복되지 않는 숫자들로만!!


그리고, 시스템 시간으로 seed값을 주어서 jrand를 적용한 노드의 작은 변화가 생겨도 난수가 바뀌도록 하였다. 그 외의 노드에서 변경 안됨. 



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
:



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
:

VEX의 특성

Houdini/VEX 2012. 12. 2. 22:43 |



굳이 이렇게까지 할 필요가 없는데 예제로서 간단히 한번 작성해보았다.

참조자로 받는데 리턴까지할 필요는 없지만, 리턴되는 것을 확인하기 위하여!

둘 중 하나를 택하면된다. 리턴으로 받을 것인지... 아니면, 변수를 인자로 보내서 참조자 형태로 할 것인지...참조자(Call-By-Reference)


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

vex로 만들어 본 노이즈의 적용방식  (0) 2012.12.11
vex로 코딩해 본 여러가지  (0) 2012.12.11
나름 약간 변경해본 것...  (0) 2012.11.30
inline code노드  (0) 2012.11.17
Posted by scii
:

후디니 내에서 쓸 수 있는 함수를 만들때의 기본 틀:

[return_type] functionName([[arg_type1] arg_name1 [, [arg_type2] arg_name2] ...])
{
...
}
반환형 타입과 인수 타입은 float,  string, vector, or matrix 를 쓸 수 있다.

#은 주석처리.


만약 반환형과 인수의 타입을 명시하지 않으면 후디니는 자료형에 float이 있는 것처럼 인식한다.

그리고, 만약 인수타입에 string을 넣어야 하는데 그것을 잊고 넣지않으면, float으로 인식해서 잠재적 버그를 

열심히 찾는다고 한다.

자료형을 꼭 명시해야겠다.



Examples

# Function to find the minimum value of two
# floating point numbers

min(v1, v2) {
    if (v1 < v2) {
        return v1;
    } else {
        return v2;
    }
}

# Function to reverse the order of a string

string strreverse(string in) {
    float len = strlen(in);
    
    string result = "";
    
    for (src = len-1; src >= 0; src--) {
        result += in[src]; return result;
    }
}

# Example to find the minimum element in a vector

float vecmin(vector vec) {
    min = vec[0];
    
    for (i = 1; i < vsize(vec); i++) {
        if (vec[i] < min)  min = vec[i];
    }
    
    return min;
}

# Example to transform a vector into the space
# of an object passed in.

vector opxform(string oname, vector v) {
    matrix xform = 1;
    
    if (index(oname, "/obj/")) {
        xform = optransform(oname);
    } else {
        xform = optransform("/obj/"+oname);
    }
    
    return v * xform;
}

# Example to find all objects which have their
# display flag set

string opdisplay() {
    string objects = run("opls /obj");
    string result = "";
    nargs = argc(objects);
    
    for (i = 0; i < nargs; i++) {
        string obj = arg(objects, i);
        if ( index(run("opset " + obj), " -d on") >= 0 ) result += " " + obj;
    }
    
    return result;
}

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

Houdini User가 갖춰야 할...  (0) 2012.12.02
Cross Product  (0) 2012.11.27
12.08.20 MON  (0) 2012.08.23
짝수 공식  (0) 2012.05.16
$F, $FF 의 차이점  (0) 2012.05.04
Posted by scii
:

후디니는 기본적으로 키 줄 때 alt+마우스클릭으로 편하게 줄 수 있게 셋팅이 되어있다.


하지만 기본셋팅으로 우분투에도 alt+마우스클릭 단축키가 있다. 그러다보니 서로 중복되어서 후디니에서 alt+클릭이 안먹힌다.


이 문제점 해결은 Compiz Config Settings Manager에서 마우스 설정을 변경하여 해결할 수 있다. 

설치가 안되있다면 "sudo apt-get install compizconfig-settings-manager"를 실행하여 설치한다.


컴피즈 설정 마법사에서 window managment의 Move window에서 해제하면 불편하니 alt키를 super키로 변경한다. 리눅스에서 super키는 윈도우키이다.








Posted by scii
:

connectivity 노드


connectivity는 오브젝트별로 나눠준걸 어트리뷰트로 만들어주는 역할을 한다.

 

parition 노드


parition은 connectivity에서 나눈것을 가지고 룰을 정해 직접적으로 그룹을로 만들어주는 역할을 한다.

 


방식은 조금  틀리지만 두개기능을 합친 노드로 assemble 이라는 노드가 있다.

 


stamps() 익스프레션


문자열을 스템프하는 것.

 


chsop() 익스프레션


chsop() 은 절대경로를 리턴한다.


chs() 익스프레션


chs() 문자열을 가져온다.

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

12.08.20 MON  (0) 2012.08.23
짝수 공식  (0) 2012.05.16
$F, $FF 의 차이점  (0) 2012.05.04
참고 수식  (0) 2012.05.03
Houdini Variable  (0) 2012.05.01
Posted by scii
: