3

glTexSubImage2D を GL_LUMINANCE および GL_UNSIGNED_BYTE と共に使用して、カメラからの生のグレースケール データを直接表示しています。手動で RGB ビットマップに再パックする必要はありません。

カメラを 12 ビットまたは 14 ビット/ピクセルの高解像度モードで実行したいと考えています。

設定するだけでこれを行うことができますGL_SHORTが、カメラはビッグエンディアンでデータを返し、私のopenGL実装はそれを間違った方法で描画しているようです(x86上)。

テクスチャが「間違った」方法であることをopenGLに伝える簡単な方法はありますか? 他のすべての関数はビッグエンディアンデータを想定しているため、表示のためだけにデータを手動でバイトスワッピングすることは避けたいと思います。

4

1 に答える 1

7

関数のglPixelStore*グループを確認してください。

で遊ぶ必要があるかもしれませんがGL_UNPACK_SWAP_BYTESGL_UNPACK_LSB_FIRST正しいを使用していることを再確認してくださいGL_UNPACK_ALIGNMENT。デフォルトではアンパックの位置合わせは 4 ですが、1 ピクセルあたり 1 バイト (lum / ub) を使用している場合は、それを 1 に設定することをお勧めします。最近この問題に遭遇し、理解するのに時間がかかりました。私が認めたいと思うよりも:)

于 2011-03-02T20:55:16.590 に答える