OpenGL ES 性能 2.0 与 1.1 (iPad)
Posted
技术标签:
【中文标题】OpenGL ES 性能 2.0 与 1.1 (iPad)【英文标题】:OpenGL ES performance 2.0 vs 1.1 (iPad) 【发布时间】:2010-12-23 16:31:05 【问题描述】:在我的简单 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;
【问题讨论】:
【参考方案1】:"color" 是一个 mediump 变量,因为您指定了默认精度。这会强制实现将 lowp 采样结果转换为 mediump。它还需要将diffuse转换为mediump来执行乘法。
您可以通过将“颜色”声明为 lowp 来解决此问题。
【讨论】:
谢谢!如果可行,我会检查一下并为您的答案投票。以上是关于OpenGL ES 性能 2.0 与 1.1 (iPad)的主要内容,如果未能解决你的问题,请参考以下文章
OPENGL ES 2.0 知识串讲 ——OPENGL ES 详解I(绑定 SHADER)
OPENGL ES 2.0 知识串讲 ——OPENGL ES 详解I(绑定 SHADER)
共享内存架构中的 OpenGL (ES 2.0) VBO 性能
OPENGL ES 3.1是否比OPENGL ES 2.0慢?