• FEATURED

View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# Indices and vertices

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

4 replies to this topic

### #1Kaptein  Prime Members

Posted 25 June 2014 - 08:45 PM

I'm converting a "huge" pipeline to support indices, and I have a strange problem.

Each vertex array can be still drawn on its own, since I'm in the "make it work stage." So I thought I would start with mapping each vertex in a one-to-one mapping to indices. Considering that the vertex order contains the correct winding/order to represent the terrain properly, this shouldn't be a problem, right?

Because it's not working. And I'm slowly going crazy. My entire indices array is basically a sequential array of numbers 0->N-1 where N is the number of vertices. There are small constant patches of terrain that contain errors.

This should work, and I'm just looking for a bug of my own creation, right?

### #2Samith  Members

Posted 25 June 2014 - 08:55 PM

Do you have primitive restarting enabled, and if so are any of your indices the primitive restart value?

### #3Kaptein  Prime Members

Posted 25 June 2014 - 09:52 PM

No, but thanks for the tip. I set it to 65535 (and disabled just in case)

It's looking more and more like my own fault. I'm assembling a generated terrain from parts that are sorted by shader.

I'm writing every single test I can come up with, but everything is just right.. The problem is that I don't understand where my logic fails. =)

What a classic.

Looks like I'll be showering and toileteering alot to find this logic error.

Edited by Kaptein, 25 June 2014 - 09:57 PM.

### #4MaxDZ8  Members

Posted 25 June 2014 - 10:31 PM

I find unlikely a mesh terrain can generate perfectly sequential index arrays. Are you sure the filter is pulling up the correct values?

If your terrain is 2D, use height maps directly. They're both easier and more efficient.

In general, to take two vertex buffers and concatenate them to fit a single one, there are two approaches (in case this is what you're asking)

1. Mark the corresponding drawcall to use an index offset (fast, but cannot be batched)
2. Use a buffer offset (as above but slower, not recommended)

Edited by Krohm, 25 June 2014 - 10:35 PM.

Previously "Krohm"

### #5Kaptein  Prime Members

Posted 26 June 2014 - 11:17 AM

Yes, I'm currently doing #3.

I finally found the problem, completely by mistake:

glDrawElements(GL_QUADS, cv->indices[i], GL_UNSIGNED_SHORT, (GLvoid*) (intptr_t) (cv->indexoffset[i]*2));

For some reason, the "offset" value is in bytes. I just multiplied by 2 there just to see how fast it would crash.

It boggles the mind.

Edited by Kaptein, 26 June 2014 - 11:30 AM.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.