3
OpenGLのドキュメントで読んだところから、OpenGLはRGBよりもBGRフォーマットを好んでいます。しかし、テクスチャの内部フォーマットをBGRに設定すると、テクスチャはレンダリング時にすべて白です。内部フォーマットをRGBまたはRGBAに設定すると、正しく表示されます。ソース形式はBGRで始まります(DIBから直接ロードされます)。OpenGL GL_BGRがテクスチャ内部フォーマットでは機能しない
glBindTexture(GL_TEXTURE_2D, id);
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, nClamp);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, nClamp);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, nMagFilter);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, nMinFilter);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
次の行が問題です... GL_BGRに内部形式を設定するすべてのもの、すべての白... GL_RGBへの変更は、それがglTexImage2D man pageから正しく
glTexImage2D(GL_TEXTURE_2D, 0, GL_BGR, pTex->nWidth, pTex->nHeight, 0, GL_BGR, GL_UNSIGNED_BYTE, pTex->pBuffer);
「nMinFilter」とは何ですか?それに 'MIPMAP'がある場合は、完全なミップマップレベルのセットを提供する必要があります。 – genpfault