頭と尻尾はくれてやる!

iOSアプリなどの開発日記です


フラグメントシェーダに値を渡す

OpenGLで使うフラグメントシェーダって(ざっくり言うと)ピクセルの回数だけコールされるとか言うじゃない。だからできるだけ重複する計算はさせないようにとあらかじめ計算しておいた値を渡しておこうと思ったのよ。
いざやろうとするとフラグメントシェーダにテクスチャ情報以外に何かを渡したことがないことに気付いてさ。バーテックスシェーダからはいろいろ渡したりしてたんだけど。

で、調べてみるととりあえずこういうことでfloatを渡せた。
{
    glUniform1f(location , floatValue);
}
受け取るフラグメントシェーダ側の宣言部分は
uniform highp float value;
みたいな感じでOK。テクスチャの場合とほとんど同じだな。
スポンサーサイト




<< glReadPixelsでシェーダの出力をCPU側で得る  TopPage  Bulletで物体が衝突せずにすり抜ける >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
https://ringsbell.blog.fc2.com/tb.php/923-264f1162




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.