iOS GL ES 2应用程序在设备上崩溃但在模拟器上没有崩溃

时间:2012-07-19 14:27:54

标签: ios opengl-es-2.0

我有一个带有多个渲染目标/帧缓冲区的应用程序,在一次调用glDrawElements时,它在设备(iPad iOS 5.0)上崩溃,但在模拟器中没有崩溃。这是一个非常着色的密集型应用程序,具有十几个不同的着色器和数千个顶点缓冲区。

进一步调试此事让我相信崩溃是由于特定的着色器而发生的,但是着色器是有效的,正在写入的帧缓冲区对象也是如此。

1 个答案:

答案 0 :(得分:1)

好的,所以经过大量的时间花在调试上我发现我的景深着色器导致了崩溃,特别是这个功能:

float GetNearFalloff( float Depth, float MinDist, float MaxDist)
{
    float Range = MaxDist - MinDist;
    if (Depth < MinDist)
        return 1.0;
    /*else*/if (Depth > MaxDist)
        return 0.0;

    float Blur = 1.0 - ( (Depth - MinDist) / Range );
    return Blur;
}

基本上被评论的其他地方导致了我的崩溃。删除使一切正常。我实际上把它放回去(我认为它可能是其他的东西),只是看到在几次着色器重新编译之后同样的崩溃出现了相同的修复,删除 else