0

ポイント ライトのシャドウを作成できるように、キューブ マップを使用して OpenGL でシャドウ マッピングをセットアップしようとしています。

以下はGL_INVALID_ENUM私に投げかけます:

for (uint32_t i = 0; i < 6; i++)
    GLCALL(glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_DEPTH_COMPONENT32, windowWidth, windowHeight, 0, GL_DEPTH_COMPONENT32, GL_FLOAT, 0));

ドキュメントによると、おそらくこれが原因です:

GL_INVALID_ENUM is generated if target is one of the six cube map 2D image targets and the width and height parameters are not equal.

そして、幅/高さが異なる場合、それらは実際には立方体ではありませんが、1920x1080 のような画面解像度またはその他の解像度がある場合、これは問題になります。

おそらく、関数呼び出しに何を提供するかを誤解していますが、ウィンドウの幅/高さではありませんか? パラメータはどうあるべきですか?

4

1 に答える 1

1

おそらく、関数呼び出しに何を指定するかを誤解していますが、ウィンドウの幅/高さではありませんか?

ウィンドウの解像度がテクスチャのサイズにどのように影響すると思うかは、私にはわかりません。通常、フレームバッファ オブジェクトを使用してシャドウ マッピングのデプス マップをレンダリングするため、ウィンドウのサイズは関係ありません。

パラメータはどうあるべきですか?

キューブ マップの場合: キューブ マップ テクスチャのエッジの長さ。

于 2013-11-09T20:32:35.163 に答える