■FBOのレンダーバッファ、レンダーテクスチャ
レンダーテクスチャはテクスチャとして利用可能なのはわかるが、
レンダーバッファの存在価値ってなんだろうか。
情報ソースはどこか忘れたけど、
レンダーバッファのほうはテクスチャとして使わない分、高速に動くように
ドライバ内で最適化の余地があるらしい。
■テクスチャ
glGenTextures, glTexImage2Dだけではテクスチャは使えるようにならない。
glTexParameteriでアドレッシングモードとフィルタモードを設定しておく必要がある。
このあたり忘れるとテクスチャが張られないだけでなく、
FBOもincomplete状態となってしまうので気をつけよう。
■gl○○Pointer,glEnableClientStateとか
GLSL前提のシェーダーありき環境だとこれら不要かとおもう。
頂点アトリビュートの設定やVBOつかってできるし。
OpenGL3系で廃止のマークもあるので、使わないにこしたことはないだろう。
■GLSL
*コンパイル
オフラインコンパイルできないのがつらいなぁ。
確かにソースコードは環境非依存で持って行けるけど。
GLSLソース内日本語の存在は確か禁止だったはず。
cgcでコンパイルしてという話も聞いたが、結局はARB規定されているアセンブリに落ちる程度。
結局のところその後ドライバ解釈が入ってシェーダーバイナリがGPUに送られる。
それでもソース解釈よりはいいだろうし、気付けばこれってDX9とやっていることはほぼ同じじゃんと気付いてしまった。
あとはARBで規定されている部分って最低限だったと思うので、
現時点でどのくらい使い物になるんだろうか。
*ソース記述
頂点入力でfloat4の入力しか受け付けられない模様。
UVなど2要素でいいものでも float4すなわちvec4で受け取る必要がある。
この部分が、DirectXと違って理解に苦しむなぁ。
コメント