0

OpenTK (C# Opengl 実装) を使用してアプリケーションを XNA/MonoGame に移植しようとしていますが、バッファーに到達しましたが、バッファー関数と直接同等のものはないように見えるため、これを移植する方法がわかりません。 . このコードを移植しようとしています:

public void RefillVBO()
        {
            if (positions == null) return;
            if (hasBuf)
                GL.DeleteBuffers(3, buf);
            GL.GenBuffers(3, buf);
            GL.BindBuffer(BufferTarget.ArrayBuffer, buf[0]);
            GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(positions.Length * sizeof(float)), positions, BufferUsageHint.StaticDraw);
            if (normals != null)
            {
                GL.BindBuffer(BufferTarget.ArrayBuffer, buf[1]);
                GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(normals.Length * sizeof(float)), normals, BufferUsageHint.StaticDraw);
            }
            GL.BindBuffer(BufferTarget.ElementArrayBuffer, buf[2]);
            GL.BufferData(BufferTarget.ElementArrayBuffer, (IntPtr)(elementsLength * sizeof(int)), elements, BufferUsageHint.StaticDraw);
            hasBuf = true;
        }

誰かが私のためにこれを翻訳して、何が起こっているのか説明してもらえますか?

また、「Gl」機能に関連するエラーは文字通り何百もあるため、移植ガイドなどはありますか。

4

1 に答える 1

1

XNA では通常、頂点のデータ (位置、法線など) を含む構造体型を作成します。その型に基づいてVertexDeclaration、データの解釈方法を GPU に伝える を作成します。最後に を作成しVertexBufferてデータを設定します。オプションで、インデックス バッファを作成できます。

これらのリンクを見てください:

方法: カスタム頂点を作成して使用する

VertexBuffers と IndexBuffers を使用してパフォーマンスを向上させる

于 2013-04-27T20:38:07.040 に答える