VEX cookbook

VEX 프로그래밍에 대한 예제들과 의견들

VEX examples

VEX 기잔 연산자의 VEX 실행을 보려면 :

  1. 연산자를 네트워크에 추가한다.
  2. tile 메뉴를 열고 Type Properties를 선택한다.

다른 예제 VEX 소스 코드는 웹상에서 볼 수 있다.

Constant Color COP

“Constant Color COP” 함수는 다음 방식으로 작성 할 수 있다 :

1
2
3
4
5
6
7
8
cop
constant(vector clr=1float alpha=1)
{
= clr.r;
= clr.g;
= clr.b;
= alpha;
}
cs

 

그러나, 가능한 더 효율적인 assign 함수를 사용해야 한다.

1
2
3
4
5
6
cop
constant(vector clr=1float alpha=1)
{
assign(R, G, B, clr);
= alpha;
}
cs

User noise functions

이 예제는 Perlin noise의 노말라이즈된 다중 옥타브들을 생성하는 두 개의 사용자 함수들을 정의한다.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
float
myfperlin3d(vector pos; int octaves; float rough)
{
int    i;
float    nval;
vector    pp;
float    result, sum, scale;
// Because parameters are passed by reference, we don’t really
// want to modify the parameters value.  Therefore, we copy it
// to a temporary variable.
pp = pos;
scale = 1;
sum = 0;
result = 0;
for (i = 0; i <= octaves; i++)
{
    result += noise(pp);
    sum += scale;
    pp *= 2;
    scale *= rough;
}
return result / sum;
}
float
myfperlin1d(float pos; int octaves; float rough)
{
int    i;
float    nval;
float    pp;
float    result, sum, scale;
// Because parameters are passed by reference, we don’t really
// want to modify the parameters value.  Therefore, we copy it
// to a temporary variable.
pp = pos;
scale = 1;
sum = 0;
result = 0;
for (i = 0; i <= octaves; i++)
{
    result += noise(pp);
    sum += scale;
    pp *= 2;
    scale *= rough;
}
return result / sum;
}
cs

 

#define 매크로를 사용해 함수의 콘텐츠들을 인코드하는 것이 가능하고 매크로를 호출해 vector 또는 다른 차원의 noise를 생성하는 것이 가능하다.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s