0

webgl でいくつかの非常に基本的なものをレンダリングしようとして立ち往生しています。問題がどこにあるかを見つけるために、レンダリングを考えられる最も基本的なものに落とし込みましたが、単純な正方形を描くことさえできません。何らかの理由。私が本当にレンダリングしたいシーンはもっと複雑ですが、私が言ったように、問題を見つけようとしてそれを馬鹿にしましたが、それでもうまくいきません. 誰かが見て、欠けているものを見つけてくれることを願っています。これは、ある時点でのセットアップ手順であると思います。

私が実行している gl コマンド (webgl インスペクターによってエラーなしで報告されている) は次のとおりです。

  1. clearColor(0,0,0,1)
  2. クリア深度(1)
  3. クリア (COLOR_BUFFER_BIT | DEPTH_BUFFER_BIT)
  4. useProgram([プログラム2])
  5. bindBuffer(ARRAY_BUFFER, [バッファ 5])
  6. vertexAttribPointer(0, 2, FLOAT, false, 0, 0)
  7. drawArrays(三角形, 0, 6)

そこで使用されているバッファー (バッファー 5) は、次のように設定されます。

bufferData(ARRAY_BUFFER, [-1,-1,1,-1,-1,1,-1,1,1,-1,1,1], STATIC_DRAW)

プログラム (プログラム 2) のデータは次のとおりです。

  • LINK_STATUS 真
  • VALIDATE_STATUS 偽
  • DELETE_STATUS 偽
  • ACTIVE_UNIFORMS 0
  • ACTIVE_ATTRIBUTES 1

頂点シェーダー:

#ifdef GL_ES
precision highp float;
#endif

attribute vec2 aPosition;

void main(void) {
    gl_Position = vec4(aPosition, 0, 1);
}

フラグメント シェーダー:

#ifdef GL_ES
precision highp float;
#endif

void main(void) {
    gl_FragColor = vec4(1.0,0.0,0.0,1.0);
}

関連する可能性があると思われる他の州:

  • CULL_FACE 偽
  • CULL_FACE_MODE バック
  • FRONT_FACE 反時計回り
  • ブレンド false
  • DEPTH_TEST 偽
  • ビューポート 0, 0 640×480
  • SCISSOR_TEST 偽
  • シザーボックス 0, 0 640×480
  • COLOR_WRITEMASK 真、真、真、真
  • DEPTH_WRITEMASK 真
  • STENCIL_WRITEMASK 0xffffffff
  • FRAMEBUFFER_BINDING null

そのセットアップ/コマンドから私が期待したのは、クリップ スペース全体を占める赤い四角形ですが、drawArrays が何もしていないように見えるため、単にクリアされた画面が表示されます。誰かが私が欠けているものを見つけることができますか? これをデバッグする方法に関するヒントも大歓迎です!

4

2 に答える 2