ramp 매개 변수로 포인트의 속성을 제어하는 ​​Tips

8961 단어 HOUDINI

이 기사는?



Houdini 유저에게 너무나 당연해서, Tips도 되어 있지 않은 것 같은 내용을 자신용 비망록으로서 기사로 했습니다.

1.ramp 매개변수 작성



1-1.wrangle 노드에 작성



ramp
float  chramp(string channel, float ramppos)

float  chramp(string channel, float ramppos, float time)

vector  chramp(string channel, float ramppos)

vector  chramp(string channel, float ramppos, float time)

Houdini에서의 ramp는 돌려주는 값의 형태가 「float」 「color」의 2 종류가 있습니다.
wrangle상에서는 float의 경우도 vector의 경우도 같기 때문에, 단지 코드를 써 표시시킨 것만으로는 모두 float의 ramp가 되어 버리기 때문에, 별도 Edit Parameter Interface 윈도우에서, Ramp Type을 Color로 설정해 줄 필요 있습니다.
(VEX상에서 지정할 수 있는 방법 있으면 정보를 원합니다. pragma?)

string channel에서 지정한 이름은, 그대로 파라미터의 name에 사용되어,
name의 이니셜이 소문자이면 대문자로 변경된 것이 파라미터의 Label에 사용됩니다.

2.작례 여러가지



2-1.작례 ①포인트의 이동





example_pos
float position=fit(@P.y,0,`ch("../line1/dist")`,0,1);
float move=chramp("move",position);
float multiply=chf("multiply");

@P.x=@P.x+move*multiply;

2-2.①해설


float position=fit(@P.y,0,`ch("../line1/dist")`,0,1);

여기서 각 포인트가 ramp에서 말하는 0~1의 어디에 해당하는가를 설정하고 있습니다.
「높이 0을 ramp의 0, 높이 최대를 ramp의 1로 했을 때의, @P.y의 위치」를 결정하고 있습니다.
높이의 최대는 line 노드로 지정한 Length 의 파라미터를 그대로 가져오고 있습니다.
float move=chramp("move",position);

위에서 설정한 범위를 ramp로 설정합니다.
이것은 ""move"라는 이름의 ramp 파라미터로 range의 값을 결정한다는 의미입니다.
@P.x=@P.x+move*multiply;

@P.x에, ramp 파라미터로 취득한 값을 가산해, 각 포인트를 이동시켰다.
ramp가 내뿜는 값은 0~1이므로 그대로 이동에 의한 변화가 보이지 않기 때문에 임의의 수치(multiply)를 곱하여 이동량을 조절할 수 있도록 하고 있습니다.

2-3.ramp 파라미터로 pscale 제어





example_pos
float position =fit(@ptnum,0,@numpt,0,1);
float tube_scale=chramp("ramp",position);

@pscale=tube_scale;

2-4.작례③





prim_scale
vector max_pos=getbbox_max(1);
vector min_pos=getbbox_min(1);

float position=fit(@P.z,min_pos.x,max_pos.x,0,1);
float scale=chramp("scale",position)+0.5;

f@prim_scale=scale;

prim_color
float position=fit(@prim_scale,0.5,1.5,0,1);
vector color=chramp("prim_color",position);

@Cd=color;

좋은 웹페이지 즐겨찾기