I'm trying to render line list using indices of triangles as follow
float *vertices = static_cast<float *>(vertexBuffer->lock(Ogre::HardwareBuffer::HBL_DISCARD));
for (int i = 0; i < out.numberofpoints; i++)
{
vertices[(i*3)] = out.pointlist[(i*3)];
vertices[(i*3)+1] = out.pointlist[(3*i)+1];
vertices[(i*3) + 2] = out.pointlist[(3*i)+2];
}
vertexBuffer->unlock();
uint16_t *indices = static_cast<uint16_t *>(indexBuffer->lock(Ogre::HardwareBuffer::HBL_DISCARD));
int l, t;
int numTriangles = out.numberoftrifaces*3*sizeof(uint16_t);
for (l = 0, t = 0; t<numTriangles; t += 3) {
// Each vertex has to be listed twice
indices[l] = out.trifacelist[t]; l++;
indices[l] = out.trifacelist[t + 1]; l++;
indices[l] = out.trifacelist[t + 2]; l++;
indices[l] = out.trifacelist[t + 2]; l++;
indices[l] = out.trifacelist[t + 1]; l++;
indices[l] = out.trifacelist[t]; l++;
}
indexBuffer->unlock();
The problem that ogre renders broken triangles and it's completely wrong. I'm not doing anything wrong regarding rendering the lines that the triangles are composed
I'm using ogre 1.9