0

さまざまなプラットフォーム (Windows、iOS、Playbook、BB10、Android) で完全に動作するゲーム エンジンを NaCl に移植しています。

2D は正しくレンダリングされますが、一部の 3D オブジェクトが表示されないか、非常に奇妙にレンダリングされ、次のような問題が発生します

[.PPAPIContext]GL ERROR :GL_INVALID_FRAMEBUFFER_OPERATION : BackTexture::AllocateStorage: <- error from previous GL command (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: offset not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glDrawElements: attempt to access out of range vertices in attribute 0 (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: offset not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: offset not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type 

そして、それは無限に繰り返されます。

繰り返しになりますが、同じレンダリング コードが異なるプラットフォームで使用され、問題なく動作します。NaCl に移植する際に考慮すべき特別な考慮事項はありますか? 問題を見つけるために何に焦点を当てるべきかについてのアイデアはありますか? 私が理解できる限り、シェーダー 0 (頂点シェーダー) に問題があり、実際に一部のオブジェクトの頂点がいたるところにあります。

ありがとう!:)

4

1 に答える 1

2

セキュリティ上の理由から、Chrome は他のドライバーが検証しない多くの GL 操作を検証します。少し手間がかかりますが、http://cs.chromium.org を使用して Chromium コードベースを検索し、エラー メッセージを見つけてみてください。

これが私が見つけたものです:

glDrawElementsこれをデバッグするには、 andへの呼び出しを絞り込み、glVertexAttribPointerどれが失敗しているかを見つけようとします。次に、いくつかのprintf呼び出しを追加して、渡されている値を確認します。

幸運を!

于 2013-11-02T16:31:36.907 に答える