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;

    }

我是否正确地考虑使用 GLSL 我需要使用 glUniform4fv 创建 3 件制服来上传 pMorphs、nMorphs 和权重值?然后如何在计算后返回此值并将其分配给 dPositions 和 dNormals?

时间概况 时间档案

4

0 回答 0