- OpenGLスレ Part21
482 :デフォルトの名無しさん[sage]:2015/02/18(水) 09:17:03.38 ID:xRyhKuxQ - テクスチャをRGBやRGBAではなくて、テクセルあたりfloatやintの単独要素として
扱いたいとき、どのようなやり方があるのでしょうか。 FBOの書き込み先のテクスチャを作るときに、たとえば glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, width, height, 0, GL_DEPTH_COMPONENT, GL_FLOAT, data); こんな感じで深度値に偽装して割り当て、フラグメントシェーダーではout floatとした場合、シェーダーのデータ出力に失敗するようで1286を吐いてしまいます 仕方がないので、現在は glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_FLOAT, data); として、R値だけを使っているのですが、float1つのためにその三倍のVRAMを確保するのはいかにももったいない気がしてしまいます 悔しいので glTexImage2D(GL_TEXTURE_2D, 0, GL_R32, width, height, 0, GL_R32, GL_FLOAT, data);として赤単色画像にしようとしたら、 GL_R32はまだサポートされていないと怒られてしまいました。 float要素ひとつが1テクセルに対応するような、うまいテクスチャの作り方があれば参考にしたいのですが、 どなたかお知恵を拝借できればありがたいです。
|
|