Hi, On Thu, Jun 3, 2010 at 12:35 AM, Rob Nelson <nexisentertainm...@gmail.com> wrote: > I am working on the rendering code in the SL viewer at the moment, > having completed the server-side code and some of the client-side > packet-handling classes. However, I have zero familiarity with OpenGL, > so bear with me. > > My viewer needs to construct a terrain surface (a mesh) for display. I > have completed an LLViewerObject to this end, except for: > > ::getGeometry(LLStrider<LLVector3> &verticesp, > LLStrider<LLVector3> &normalsp, > LLStrider<LLColor4U> &colorsp, > LLStrider<LLVector2> &texCoords0p, > LLStrider<LLVector2> &texCoords1p, > LLStrider<U16> &indicesp) > > What is confusing me is indicesp. I think it has something to do with > connecting vertices, but I'm not sure how.
I think you should find it's a list of indexes into the vertex, normal, etc arrays that's later passed to glDrawElements, but I'm not 100% sure. > The example code I am > working with uses a mess of lookup tables in the following loop for each > voxel: > > //Draw the triangles that were found. There can be up to five per cube > for(iTriangle = 0; iTriangle < 5; iTriangle++) > { > if(a2iTriangleConnectionTable[iFlagIndex][3*iTriangle] < 0) > break; > > for(iCorner = 0; iCorner < 3; iCorner++) > { > iVertex = > a2iTriangleConnectionTable[iFlagIndex][3*iTriangle+iCorner]; > > vGetColor(sColor, asEdgeVertex[iVertex], > asEdgeNorm[iVertex]); > glColor4f(sColor.fX, sColor.fY, sColor.fZ, 0.6); > glNormal3f(asEdgeNorm[iVertex].fX, > asEdgeNorm[iVertex].fY, asEdgeNorm[iVertex].fZ); > glVertex3f(asEdgeVertex[iVertex].fX, > asEdgeVertex[iVertex].fY, asEdgeVertex[iVertex].fZ); > } > } So, for example, you would convert this code by appending each iVertex used to indicesp in turn rather than rendering the corresponding vertex immediately. It appears there's a slight complication in that all the arrays could contain items that have already been added previously and these may affect your indices, but you should be able to figure this out from the existing code. Aidan _______________________________________________ Policies and (un)subscribe information available here: http://wiki.secondlife.com/wiki/OpenSource-Dev Please read the policies before posting to keep unmoderated posting privileges