頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


色じゃない値をフラグメントシェーダで出力したい

OpenGLのシャドウマッピング
↑これの追記。
8bitでの出力じゃなくて16bitなり32bitで出力する方法を調べていたんだけど、やっぱりないのかな?

{
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT,  outputLength, outputLength, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL);
    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, g_texIDs[1], 0);
}
FBO(フレームバッファオブジェクト)のテクスチャへの出力を上のようにGL_DEPTH_COMPONENTを指定しGL_UNSIGNED_INT(32bitのはずだけどここは無効の記述もある)で32bitの値を出力するんだあ!と設定。直後のフレームバッファのチェック
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER) ;
もOKなんだけど、、、
さて、シェーダ側で出力ってどうすんだろ?
フラグメントシェーダでのアウトプットは
gl_FragColor = vec4(r,g,b,a);
みたいなのじゃない?どうやってunsigned intを一つ出力するのよ〜?!っていろいろ調べたんだけど、、、わかんなかったわ。

OpenGL ES 3.0だと影用のなんぞある(今は2.0でやってる)みたいなのを見たり、どうせそのうちMETALやるだろうし、とか思うとどうもやる気がねえ、、、深みにはまる前にここは速やかに撤退しとくわ。ううう。

<< なばなの里へはタクシーは来てくれない  TopPage  OpenGLのシャドウマッピング >>

コメント


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

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/915-736f4e76




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

FC2Ad