Hi,<br><br>So I&#39;m trying to get a certain sort of 3D terrain working in PyOpenGL.  The idea is to get vertex buffer objects to draw a simple 2D plane comprised of many flat polygons, and use a vertex shader to deform that with a heightmap and map that on a sphere.  <br>

<br>I&#39;ve managed to do this with a grid (simple points), making the vertex buffer object:<br><br><span style="font-family: courier new,monospace;">threedimensionalgrid = dstack(mgrid[0:size,0:size,0:1])/float(size-1)</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">twodimensionalgrid = threedimensionalgrid.reshape(self.size_squared,3)</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">floattwodimensionalgrid = array(twodimensionalgrid,&quot;f&quot;)</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">self.vertex_vbo = vbo.VBO(floattwodimensionalgrid)</span><br><br>However, landscapes tend to be, um, solid :D  So, the landscape needs to be drawn as quads or triangles.  <br>

Strips of triangles will be most effective, and the data must be specified to <span style="font-family: courier new,monospace;">vbo.VBO()</span> in a certain way:<br><br><span style="font-family: courier new,monospace;">n = #blah</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">testlist = []</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">for x in xrange(n):</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">    for y in xrange(n):</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">        testlist.append([x,y])</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">        testlist.append([x+1,y])</span><br><br>If &quot;<span style="font-family: courier new,monospace;">testlist</span>&quot; is an array (i.e., I could go: &quot;<span style="font-family: courier new,monospace;">array(testlist)</span>&quot;), it works nicely.  However, my Python method is certainly improveable with numpy.  I suspect the best way is interleaving the arrays <span style="font-family: courier new,monospace;">[x,y-&gt;yn]</span> and <span style="font-family: courier new,monospace;">[x+1,y-&gt;yn]</span> <span style="font-family: courier new,monospace;">n</span> times, but I couldn&#39;t figure out how to do that...<br>

<br>Help?<br><br>Thanks,<br>Ian<br>