2012-02-20 6 views
1

地形パッチの高さマップを保持するために16ビットテクスチャを作成しようとしていますが、両方とも「無効な列挙型」エラーが返されます。 CHECK_GL_ERROR()マクロはgluErrorStringをメッセージとして表示し、glGetErrorがGL_NO_ERROR以外の何かを返した場合にブレークします。 16ビットテクスチャを作成するときに無効な列挙型が表示される

CHECK_GL_ERROR(glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE16, width_, depth_, 0, GL_LUMINANCE, GL_UNSIGNED_SHORT, 0 /*data_.raw_data()*/)); 
CHECK_GL_ERROR(glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA16, width_, depth_, 0, GL_ALPHA, GL_UNSIGNED_SHORT, 0 /*data_.raw_data()*/)); 

I GL_TEXTURE_2Dターゲットにバインド作成したテクスチャ、とはととせずに同じエラーを持っている持っている:私は上のOpenGL 3.2コンテキスト、NVIDIA CUDA devのドライバ286.16を使用してい

glPixelStorei(GL_UNPACK_ALIGNMENT, 2); 

GTX 560Ti。誰でも私が間違っていることを見ることができますか?

乾杯

答えて

3

あなたがcore contextを使用している場合は、それは予想されなければなりません。 GL_LUMINANCEまたはGL_ALPHAimage formatsはもう存在しません。

これらのエフェクトをエミュレートするには、シングルチャネルのイメージフォーマットを作成する必要があります。したがってGL_R16はあなたの内部形式である必要があります。その後、テクスチャオブジェクトにtexture swizzle maskを設定して、単一のRedチャンネルがRGBまたはAlphaのいずれかにブロードキャストされるようにします。

これは本当にこの方法です。

+0

ファンタスティック、ありがとう:) 私が使用しているOpenGLのマニュアルページは、最新の仕様で最新ではないことが明らかになりました。新しいコアと互換性の仕様をカバーする同様のリファレンスがありますか? – PsychoLogic

+0

@PsychoLogic:[このリファレンス](http://www.opengl.org/sdk/docs/man/)について話しているのであれば、彼らは2.1であると具体的に言います。 4.2のコアリファレンスは、[Wiki上で](http://www.opengl.org/wiki/OpenGL_Reference)、または[ウェブサイト上](http://www.opengl.org/sdk/docs/man4/)にあります。 )。これはちょうどコアであることに注意してください。互換性の仕様はカバーされていません。 –

関連する問題