1

iOSのOpenglesコードに次のモデルローダーを含むモデルをアップロードしました。

http://bill.dudney.net/roller/objc/entry/wave_front_obj_textures_working

ここで問題となるのは、このモデルローダーと一緒に次のコードで立方体を描画したい場合です。

const GLfloat floorVertices[] = {
    -1.0, 1.0, 0.0,     // Top left
    -1.0, -1.0, 0.0,    // Bottom left
    1.0, -1.0, 0.0,     // Bottom right
    1.0, 1.0, 0.0       // Top right
};



glVertexPointer(3, GL_FLOAT, 0, floorVertices);
glEnableClientState(GL_VERTEX_ARRAY);
glRotatef(90.0, 0.0, 1.0, 0.0);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);

glDrawArrays(GL_TRIANGLE_FAN、0、4)でクラッシュし、EXC_BAD_ACCESSエラーが発生します

私はインターネットでこの問題を検索しましたが、簡単な解決策や説明はできません。ここにそれについての別の質問がありますが、openglesについての知識が不足しているため、彼の答えを得ることができません。

glDrawArraysはEXC_BAD_ACCESSでクラッシュします

誰かがこの問題の解決策やすでに尋ねられた質問の簡単な説明をすることができますか?前もって感謝します

4

1 に答える 1

4

これは、他の頂点配列がまだ有効になっているにもかかわらず、OpenGLのそれらへのポインターがクリアされていないため、OpenGLがダングリングポインターを逆参照するようになっている可能性があります。

OpenGLフレームデバッガーまたはglGetIntegerv()を使用して、他の配列タイプ(COLOR_ARRAY、NORMAL_ARRAY、GL_TEXTURE_COORD_ARRAY)のいずれかが有効になっているかどうかを確認します。

于 2012-06-29T04:03:32.590 に答える