Go で OpenGL 頂点バッファーが三角形を表示できない
Go で OpenGL を使用して単純な三角形を作成するチュートリアルを複製しようとしました。ある人は、形状を表示するための頂点バッファーを取得する際に困難に遭遇しました。ウィンドウが開き、背景が青色に変わる間、三角形は表示されないままでした。
提供されるコード スニペットには、頂点バッファーの作成と、glDrawArrays を使用した三角形の描画が含まれます。ただし、動作するコードの C バージョンでは、AttribPointer 関数は配列バッファー オフセットを指定するためにパラメーター (void*)0 を受け取りますが、Go バージョンでは、指定されたオフセット引数によってアプリケーションがクラッシュし、nil はクラッシュしません。
更新されたソリューションには、banthar バインディングの作業ブランチを使用し、AttribPointer と BufferData への呼び出しを次のように変更することが含まれていました。
<code class="go">vertexAttrib.AttribPointer( 3, // size gl.FLOAT, //type false, // normalized? 0, // stride nil) // array buffer offset data := []float32{0, 1, 0, -1, -1, 0, 1, -1, 0} [...] gl.BufferData(gl.ARRAY_BUFFER, len(data)*4, data, gl.STATIC_DRAW)</code>
バイト単位でサイズを渡すことで、 BufferData を使用し、AttribPointer で配列バッファー オフセットを nil に設定すると、問題は解決され、三角形が正常に表示されました。
以上がGo OpenGL Triangle が非表示のままになるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。