1

現在、CPU で実行されているコードがいくつかあり、OpenGL ES アプリケーションで遅延の問題を引き起こしています。コードは、メッシュの変形を計算します。このコードを GPU で実行してパフォーマンスを向上させる方法を理解するのに苦労しています。

for(int i = 0; i < numberOfVertices; i++)
    {
        // Update the positions
        dPositions[(i*3+0)] += [[pMorphs objectAtIndex:(i*3+0)] floatValue] * weight;
        dPositions[(i*3+1)] += [[pMorphs objectAtIndex:(i*3+1)] floatValue] * weight;
        dPositions[(i*3+2)] += [[pMorphs objectAtIndex:(i*3+2)] floatValue] * weight;

    // Update the normals
        dNormals[(i*3+0)] += [[nMorphs objectAtIndex:(i*3+0)] floatValue] * weight;
        dNormals[(i*3+1)] += [[nMorphs objectAtIndex:(i*3+1)] floatValue] * weight;
        dNormals[(i*3+2)] += [[nMorphs objectAtIndex:(i*3+2)] floatValue] * weight;

    }

pMorphs、nMorphs、および重み値をアップロードするには、glUniform4fv を使用して 3 つのユニフォームを作成する必要がある GLSL を使用することを考えるのは正しいですか? 計算後にこの値を返し、dPositions と dNormals に割り当てるにはどうすればよいですか?

時間プロファイル タイムプロファイル

4

0 に答える 0