[解説]
画像をSin波で波立たせます。
[パラメータ]
frequency_x/y - 周波数
distance_x/y - 効果量
width/height - 画像の幅と高さ
[コード]
<languageVersion : 1.0;>
kernel SinWave
< namespace : "ASADA";
vendor : "Asada Santohei";
version : 3;
description : "Sin Wave";
>
{
const float PI = 3.14159265;
parameter int frequency_x
<
maxValue : 100;
minValue : 0;
defaultValue : 0;
>;
parameter int frequency_y
<
maxValue : 100;
minValue : 0;
defaultValue : 0;
>;
parameter int distance_x
<
maxValue : 2000;
minValue : 0;
defaultValue : 50;
>;
parameter int distance_y
<
maxValue : 2000;
minValue : 0;
defaultValue : 50;
>;
parameter int width
<
maxValue : 2000;
minValue : 0;
defaultValue : 500;
>;
parameter int height
<
maxValue : 2000;
minValue : 0;
defaultValue : 500;
>;
input image4 src;
output pixel4 dst;
void
evaluatePixel()
{
float sinX = sin(2.0 * PI * float(frequency_x) * (outCoord().x / float(width)));
float sinY = sin(2.0 * PI * float(frequency_y) * (outCoord().y / float(height)));
dst = sampleNearest(src, outCoord() + float2(sinY * float(distance_y), sinX * float(distance_x)));
}
}

0 コメント:
コメントを投稿