Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Iphone:OpenGL ES 2.0-颜色拾取方法第一次反应缓慢_Ios_Performance_Opengl Es 2.0 - Fatal编程技术网

Ios Iphone:OpenGL ES 2.0-颜色拾取方法第一次反应缓慢

Ios Iphone:OpenGL ES 2.0-颜色拾取方法第一次反应缓慢,ios,performance,opengl-es-2.0,Ios,Performance,Opengl Es 2.0,我的应用程序处理OpenGL ES 2.0;我使用颜色拾取来识别在轻触过程中触摸过的对象 每次我第一次轻触某个对象时,它的反应非常慢,但第二次它的反应非常快。例如,在特定屏幕上第一次点击需要0.45秒,第二次大约需要0.01秒 在调试过程中,我发现问题代码如下: [effectTmp prepareToDraw]; glEnableVertexAttribArray(GLKVertexAttribPosition); glVertexAttribPointer(GLKVe

我的应用程序处理OpenGL ES 2.0;我使用颜色拾取来识别在轻触过程中触摸过的对象

每次我第一次轻触某个对象时,它的反应非常慢,但第二次它的反应非常快。例如,在特定屏幕上第一次点击需要0.45秒,第二次大约需要0.01秒

在调试过程中,我发现问题代码如下:

    [effectTmp prepareToDraw];
    glEnableVertexAttribArray(GLKVertexAttribPosition);
    glVertexAttribPointer(GLKVertexAttribPosition, 3, GL_FLOAT, GL_FALSE, sizeof(MaterialVertexData3D), &vertexDataMaterial[0].vertex);
    glVertexAttribPointer(GLKVertexAttribNormal, 3, GL_FLOAT, GL_FALSE, sizeof(MaterialVertexData3D), &vertexDataMaterial[0].normal);
    glDrawArrays(GL_TRIANGLES, 0, [drawObjectTmp getSizeFromVertexIndicesArray]);
    glDisableVertexAttribArray(GLKVertexAttribPosition);
我已经阅读了屏幕外预加载的对象将有所帮助。从日志中,我可以看到这些对象的预加载时间与上面的第一次一样长,即0.45秒。但是,当我第一次点击时,也需要0.45秒。在一次预警之后,人们的期望是,这需要第二次(0.01秒)的时间

另一件让我困惑的事情是:第一次慢速呼叫是一次颜色选择呼叫;这意味着每个对象都在屏幕外以特定的颜色显示,有助于识别它们。这还意味着这些对象在屏幕上已经可见(带有纹理),因此我假设顶点将被预加载;当物体显示在屏幕上时,在加载物体时会注意到这种问题,而不是在选择颜色时

你们中有人见过这种行为吗? 你如何解决这个问题

干杯,
-Stéphane

问题并非来自颜色拾取算法,尽管计时器功能显示了这一点

在实现淡出/淡入屏幕功能时,我意识到颜色拾取方法很快,因为屏幕淡出得很快;但是,下一个屏幕的淡入速度很慢。它来自这样一个事实:即使加载了纹理(这里使用的是Glktextureloader),在第一次渲染时也会花费一些时间

解决方法是在应用程序的初始化阶段在屏幕外显示这些纹理对象