如何在iOS上使用OpenGL ES有效地将每个像素映射到顶点?

时间:2015-10-28 13:50:56

标签: ios opengl-es three.js shader

基本上,我正在尝试使用GLSL在iOS上构建一些效果。 http://threejs.org/examples/#webgl_kinect

据我所知,第一步应该为每个像素创建一个顶点,然后用像素映射每个顶点。如果这一步完成,我可以用一些逻辑调整vertexShader中顶点的z位置,然后完成这个效果。

问题太慢了,比如前置摄像头是2MP,阵列中会有2M个顶点。

static const GLfloat squareVertices[] = {
    -1.0f, -1.0f, // bottom left
    1.0f, -1.0f, // bottom right
    -1.0f,  1.0f, // top left
    1.0f,  1.0f, // top right
};

static const float textureVertices[] = {
   0.0f, 0.0f, // bottom left
   1.0f, 0.0f, // bottom right
   0.0f,  1.0f, // top left
   1.0f,  1.0f, // top right
};

glVertexAttribPointer( ATTRIB_VERTEX, 2, GL_FLOAT, 0, 0, squareVertices );
glEnableVertexAttribArray( ATTRIB_VERTEX );
glVertexAttribPointer( ATTRIB_TEXTUREPOSITON, 2, GL_FLOAT, 0, 0, textureVertices );
glEnableVertexAttribArray( ATTRIB_TEXTUREPOSITON );

有没有GL api可以轻松快速地完成这项工作? 我猜测键可能​​在THREE.BufferGeometry()和THREE.Points() three.js是怎么做到的?

0 个答案:

没有答案