Hi All,
Any one know, when program can crash by running [b]glDrawElements[/b] method. I mean, is there any flag or status that crash the animation program?.
Thanks In Advance,
Vinod Patel
Hi All,
Any one know, when program can crash by running [b]glDrawElements[/b] method. I mean, is there any flag or status that crash the animation program?.
Thanks In Advance,
Vinod Patel
Hi the answer to your question must be in the sticky post just above yours…
http://www.java-gaming.org/forums/index.php?topic=11947.0
Hi,
I have read and done all stuff suggested in given link. Although it does not work.
Any other solution for that…?
Regards
Patel Vinod
You flipped your name and before anyone call help you or tell you how to fix something, they need to know a little more context (ie post a small sample of code where the problem lies).
Hello,
This is a code where i getting problem
if (m_Texturing && m_EnvMapOn && normals != null) {
CQ3DMatrix worldview = new CQ3DMatrix();
worldview.mul(m_ViewMatrix, m_WorldMatrix);
for (int i = 0, face = 0; i < nbIndex; i += 3, face++) {
CQ3DVector normal = new CQ3DVector();
normal.assign(normals[face]);
normal.transformNoTrans(worldview);
if (m_NormalizeNormals) {
normal.normalize(); // Maybe a scale ???
}
float UV[] = new float[2];
UV[0] = normal.m_Vector.x * 0.5f + 0.5f;
UV[1] = normal.m_Vector.y * 0.5f + 0.5f;
float norm[] = new float[3];
norm[0] = normals[face].x;
norm[1] = normals[face].y;
norm[2] = normals[face].z;
m_gl.glBegin(GL.GL_TRIANGLES);
m_gl.glNormal3fv(norm, 0);
m_gl.glTexCoord3fv(UV, 0);
norm[0] = vertices[faces[face + faceindex].a].pos.x;
norm[1] = 0;
norm[2] = 0;
m_gl.glVertex3fv(norm, 0);
norm[0] = vertices[faces[face + faceindex].b].pos.x;
m_gl.glVertex3fv(norm, 0);
norm[0] = vertices[faces[face + faceindex].c].pos.x;
m_gl.glVertex3fv(norm, 0);
m_gl.glEnd();
}
}
SQ3DVERTEX[] Vertices = prepareVertices(vertices, nbVertices);
m_gl.glEnableClientState(GL.GL_VERTEX_ARRAY);
FloatBuffer buffer = BufferUtil.newFloatBuffer(Vertices.length * 2);
if (m_Texturing && !m_GenerateTexCoords) {
m_gl.glEnableClientState(GL.GL_TEXTURE_COORD_ARRAY);
for (int Icount = 0; Icount < Vertices.length; Icount++) {
buffer.put(Vertices[Icount].u);
buffer.put(Vertices[Icount].v);
}
buffer.rewind();
m_gl.glTexCoordPointer(2, GL.GL_FLOAT, 0, buffer);
} else {
m_gl.glDisableClientState(GL.GL_TEXTURE_COORD_ARRAY);
}
buffer = BufferUtil.newFloatBuffer(Vertices.length * 3);
for (int Icount = 0; Icount < Vertices.length; Icount++) {
buffer.put(Vertices[Icount].pos.x);
buffer.put(Vertices[Icount].pos.y);
buffer.put(Vertices[Icount].pos.z);
}
buffer.rewind();
m_gl.glVertexPointer(3, GL.GL_FLOAT, 0, buffer);
if (normals == null) {
m_gl.glEnableClientState(GL.GL_NORMAL_ARRAY);
buffer = BufferUtil.newFloatBuffer(Vertices.length*3);
for (int Icount = 0; Icount < Vertices.length; Icount++) {
buffer.put(Vertices[Icount].normal.x);
buffer.put(Vertices[Icount].normal.y);
buffer.put(Vertices[Icount].normal.z);
}
buffer.rewind();
m_gl.glNormalPointer(GL.GL_FLOAT, 0, buffer);
ShortBuffer shBuf = BufferUtil.newShortBuffer(faces.length * 3);
for (int Icount = faceindex; Icount < faces.length; Icount++) {
shBuf.put((short) faces[Icount].a);
shBuf.put((short) faces[Icount].b);
shBuf.put((short) faces[Icount].c);
}
shBuf.rewind();
[b]m_gl.glDrawElements(GL.GL_TRIANGLES, (int) nbIndex,GL.GL_UNSIGNED_SHORT, shBuf);[/b]
//m_gl.glDrawRangeElements(GL.GL_TRIANGLES,0,(int)nbIndex-1,(int)nbIndex,GL.GL_UNSIGNED_SHORT, shBuf);
m_gl.glDisableClientState(GL.GL_NORMAL_ARRAY);
} else {
m_gl.glDisableClientState(GL.GL_NORMAL_ARRAY);
m_gl.glBegin(GL.GL_TRIANGLES);
for (int i = 0, face = 0; i < nbIndex; i += 3) {
buffer.put(0, normals[face].x);
buffer.put(1, normals[face].y);
buffer.put(2, normals[face].z);
m_gl.glNormal3fv(buffer);
m_gl.glArrayElement(faces[face + faceindex].a);
m_gl.glArrayElement(faces[face + faceindex].b);
m_gl.glArrayElement(faces[face + faceindex].c);
face++;
}
m_gl.glEnd();
m_gl.glEnableClientState(GL.GL_NORMAL_ARRAY);
}
m_gl.glDisableClientState(GL.GL_VERTEX_ARRAY);
if (m_Texturing && !m_GenerateTexCoords) {
m_gl.glDisableClientState(GL.GL_TEXTURE_COORD_ARRAY);
}
Regards.