フラグメントシェーダに値を渡す
OpenGLで使うフラグメントシェーダって(ざっくり言うと)ピクセルの回数だけコールされるとか言うじゃない。だからできるだけ重複する計算はさせないようにとあらかじめ計算しておいた値を渡しておこうと思ったのよ。
いざやろうとするとフラグメントシェーダにテクスチャ情報以外に何かを渡したことがないことに気付いてさ。バーテックスシェーダからはいろいろ渡したりしてたんだけど。
で、調べてみるととりあえずこういうことでfloatを渡せた。
uniform highp float value;
みたいな感じでOK。テクスチャの場合とほとんど同じだな。
いざやろうとするとフラグメントシェーダにテクスチャ情報以外に何かを渡したことがないことに気付いてさ。バーテックスシェーダからはいろいろ渡したりしてたんだけど。
で、調べてみるととりあえずこういうことでfloatを渡せた。
{ glUniform1f(location , floatValue); }受け取るフラグメントシェーダ側の宣言部分は
uniform highp float value;
みたいな感じでOK。テクスチャの場合とほとんど同じだな。
スポンサーサイト
<< glReadPixelsでシェーダの出力をCPU側で得る TopPage Bulletで物体が衝突せずにすり抜ける >>
トラックバック
トラックバックURL
https://ringsbell.blog.fc2.com/tb.php/923-264f1162
https://ringsbell.blog.fc2.com/tb.php/923-264f1162