トップページ > プログラム > 2014年08月25日 > Gut43Z9a

書き込み順位&時間帯一覧

23 位/181 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000033



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
OpenGLスレ Part20

書き込みレス一覧

OpenGLスレ Part20
899 :デフォルトの名無しさん[sage]:2014/08/25(月) 23:05:50.21 ID:Gut43Z9a
uniformというのは、画面に表示するテクスチャすべてに共通する要素(変換行列など)を設定するのに使うものなんでしょうか?
例えば、1枚のテクスチャの全頂点に共通する変数(モザイク処理のフラグなど)は、vboで送った方が効率がいいんでしょうか?
OpenGLスレ Part20
901 :デフォルトの名無しさん[sage]:2014/08/25(月) 23:15:08.86 ID:Gut43Z9a
>>900
テクスチャ1枚の中で頂点ごとに変わらない要素(ambientカラーや、エフェクトのフラグなど)をvboで全頂点同じ値で渡していたのですが、
これをuniformに変えたところ急に動きが遅くなったためです。
vboよりもglUniform計のコマンドの方が遅いということなのかと思いました。
テクスチャごとに異なる値でも、テクスチャ内で共通の値はuniformを使うのが普通で、
何か別のところにミスがあるということでしょうか?
OpenGLスレ Part20
903 :デフォルトの名無しさん[sage]:2014/08/25(月) 23:39:41.59 ID:Gut43Z9a
>>902
ありがとうございます。

//vsh
void main()
{
vtexcoord = texcoord;

y = position.y;
x = position.x;
z = position.z;

vcolor = color;

  eyenormal = normalize(normalMatrix*normal);
gl_Position = modelViewProjectionMatrix * position;
}

//fsh
void main()
{
gl_FragColor = texture2D(s_texture0, vec2(vtexcoord.x, vtexcoord.y ) ) * vcolor;
}

ちょっといじっている途中なので無駄な変数が残っていたりしますが、この程度です。
(フラグ関係を1つのシェーダで処理せず、エフェクトによって処理を切り替える方式に移行している途中なのでこのシェーダには
 モザイクなどのフラグは出てきませんが、エフェクトなしで一番使用頻度の高いシェーダです)

uniformをfshに直接渡さず、vshに渡してからvaryingでfshに渡さないといけない、とかいうことはありますでしょうか。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。