ipad - OpenGL ES 性能 2.0 与 1.1 (iPad)

标签 ipad ios opengl-es

在我的简单 2D 游戏中,当使用 ES 2.0 实现进行绘图时,帧率下降了 2 倍。如果使用得当,2.0 是否可以更快?

附言如果你对细节感兴趣。我使用非常简单的着色器:

顶点程序:

uniform   vec2  u_xyscale;
uniform   vec2  u_st_to_uv;

attribute vec2  a_vertex;
attribute vec2  a_texcoord; 
attribute vec4  a_diffuse;

varying   vec4  v_diffuse;
varying   vec2  v_texcoord;

void main(void)
{
    v_diffuse  = a_diffuse;

    // convert texture coordinates from ST space to UV.
    v_texcoord = a_texcoord * u_st_to_uv;

    // transform XY coordinates from screen space to clip space.
    gl_Position.xy = a_vertex * u_xyscale + vec2( -1.0, 1.0 );
    gl_Position.zw = vec2( 0.0, 1.0 );
}

片段程序:

precision mediump float;

uniform sampler2D   t_bitmap;

varying lowp vec4   v_diffuse;
varying vec2        v_texcoord;

void main(void)
{
    vec4 color = texture2D( t_bitmap, v_texcoord );

    gl_FragColor = v_diffuse * color;
}

最佳答案

由于您指定的默认精度,“color”是一个 mediump 变量。这会强制实现将 lowp 采样结果转换为 mediump。它还要求将 diffuse 转换为 mediump 以执行乘法。

您可以通过将“颜色”声明为 lowp 来解决此问题。

关于ipad - OpenGL ES 性能 2.0 与 1.1 (iPad),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4520614/

相关文章:

ios - 如何匹配水平 collectionView 单元格的宽度与其内容大小

java - Frustum near plane OpenGL 使对象看起来更近,而不仅仅是剪裁

ios - 隐藏 UITextField 的光标

ios - Objective C 子类 iVar 不采用相同的指针类型?

oop - 在面向对象的设置中使用OpenGL绘图操作?

iphone - 如何根据内容调整 UITextView 的框架

ios - 在 openGL 中设置和访问多个纹理

android - java.lang.RuntimeException : eglSwapBuffers failed: EGL_SUCCESS report 错误

iphone - Monotouch UIScrollView,放大时文本模糊

iphone - 指针指向不同的对象: (Unrecognized selector sent to instance)