» チュートリアル エフェクト - Mr. Wiggle
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

チュートリアル エフェクト - Mr. Wiggle

English | Italian | Spanish | Mandarin

TOC: エフェクトとシェーダー
Back: 頂点シェーダーの準備
Next: 表示するための数式


有名なMrWiggleエフェクトに取り掛かりましょう。これはサイン波によってメッシュを変形させます:

頂点シェーダーはメッシュの頂点ごとに呼ばれます。ここ?で学んだように、頂点シェーダーの入力は今処理されているメッシュの頂点に保存されているデータです:

vs2ps VS(
    float4 PosO  : POSITION,
    float4 TexCd : TEXCOORD0)
{
...
}

現在の頂点の位置であるPosOベクトルに関心を向けて下さい。頂点の垂直位置(y座標)に依存したx座標のオフセットを追加してみます:

PosO.x += sin(PosO.y);

波を制御するためにいくつかのパラメータを追加します:

PosO.x += sin(PosO.y * Frequency + Phase) * Amplitude;

そうすると入力を伴う頂点シェーダーは次の様になります:

float Frequency = 10;
float Phase = 0;
float Amplitude = 0.01;
 
vs2ps VS(
    float4 PosO  : POSITION,
    float4 TexCd : TEXCOORD0)
{
    //declare output struct
    vs2ps Out;
 
    //offset x coordinate
    PosO.x += sin(PosO.y * Frequency + Phase) * Amplitude;
 
    //transform position
    Out.Pos = mul(PosO, tWVP);
 
    //transform texturecoordinates
    Out.TexCd = mul(TexCd, tTex);
 
    return Out;
}

そして、その結果パッチはこの様になります:

mr wiggle patch

Next: 表示するための数式
Back: 頂点シェーダーの準備
TOC: エフェクトとシェーダー

anonymous user login

Shoutbox

~2d ago

cznickesz: @tonfilm thanks for the info. Can´t wait to give it a try!

~3d ago

tonfilm: @cznickesz #vvvv #vl #xenko integration is not ready for the public yet, it's still under heavy development... more updates soon.

~3d ago

cznickesz: Possibly dumb question: is there any release containing xenko-integration right now?

~5d ago

~5d ago

~6d ago

joreg: looking for latest #vvvv gamma preview? it is here: vvvv-gamma-2019.1-preview

~7d ago

udo2013: I just want to know why the camera does not work. should be easy to be answered.

~7d ago

udo2013: an answer, please. also there was a 4d julia set in dx9. that must have programmed one. haalllooo!!

~7d ago

udo2013: where are the people who have translated shadertoy's mandelbulb in hlsl ?? for vvvv