0
我的OpenGL ES 2.0 for iPhone出現了問題。 我想提請使用此代碼紋理簡單的圓形:OpenGL ES 2.0中的繪圖圈
double qualite = 40.0f;
double rayon = 0.5;
double TWOPI=2*M_PI;
double step = TWOPI/qualite;
// CENTRE DU CERCLE
// X Y Z NMR1
gCircleVertexData[0]=0.0f;
gCircleVertexData[1]=0.0f;
gCircleVertexData[2]=0.0f;
// NORMALES X Y Z
gCircleVertexData[3]=0.0f;
gCircleVertexData[4]=0.0f;
gCircleVertexData[5]=1.0f;
// TEXTURES
gCircleVertexData[6]=0.5f;
gCircleVertexData[7]=0.5f;
int j=8;
int k=0;
for(GLfloat i = 0.0f; i <= TWOPI; i+=step)
{
// X Y Z NMR2
gCircleVertexData[j]=rayon*sinf(i);
gCircleVertexData[j+1]=rayon*cosf(i);
gCircleVertexData[j+2]=0.0f;
// NORMALES X Y Z
gCircleVertexData[j+3]=0.0f;
gCircleVertexData[j+4]=0.0f;
gCircleVertexData[j+5]=1.0f;
// TEXTURES
gCircleVertexData[j+6]=0.5+0.5*cosf(i);
gCircleVertexData[j+7]=0.5+0.5*sinf(i);
j=j+8;
k++;
}
憑藉30.0質量都工作正常,但如果我去上了圓的一部分不會出現。 這是我如何綁定的對象:
這是怎麼我會畫出來:
//----------------------------------- Le DISQUE MOBILE -------------------------------//
// Activation de la texture
glEnable(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, _disqueMobileTexture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
// Activation du shader
glUseProgram(_program2);
// Verrouillage du VAO pour l'utiliser
glBindVertexArrayOES(_vertexArrayCercle);
//ON CALCUL LES MATRICES
baseModelViewMatrix = GLKMatrix4Rotate(baseModelViewMatrix, 0, 1.0f, 1.0f, 1.0f);
modelViewMatrix = GLKMatrix4MakeTranslation(0.0f, 0.0f, -0.001f);
modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix,_rotation/8, 0, 0, 1.0f);
modelViewMatrix = GLKMatrix4Multiply(baseModelViewMatrix, modelViewMatrix);
_normalMatrix = GLKMatrix3InvertAndTranspose(GLKMatrix4GetMatrix3(modelViewMatrix), NULL);
_modelViewProjectionMatrix = GLKMatrix4Multiply(projectionMatrix, modelViewMatrix);
_rotation += self.timeSinceLastUpdate * 0.5f;
// ON ENVOI LES MATRICE DANS LE SHADER
glUniformMatrix4fv(uniforms[UNIFORM_MODELVIEWPROJECTION_MATRIX], 1, 0, _modelViewProjectionMatrix.m);
glUniformMatrix3fv(uniforms[UNIFORM_NORMAL_MATRIX], 1, 0, _normalMatrix.m);
glUniform1i(uniforms[UNIFORM_TEXTURE], 0);
// DESSIN DU CUBE AVEC LE SHADER
glDrawArrays(GL_TRIANGLE_FAN, 0, 36);
// Désactivation du VAO
glBindVertexArrayOES(0);
// Désactivation du shader
glUseProgram(0);
glDisable(GL_TEXTURE0);
glDisable(GL_TEXTURE_2D);
我的社交圈是用30質量真難看!我也使用一個簡單的着色器。