here is the code I’m using to display the terrain currently. It basically just draws the triangles for each texture. what do I need to do from here to get splating working. I want to use multitexturing and render it in 1 pass if possible.
void Terrain::GenerateLandL()
{
int tt=1;
srand((unsigned int) time(0));
g_land = glGenLists(1);
//float ms=1/MAP_X;
glNewList(g_land, GL_COMPILE);
for (tt=0; tt<=2;tt++)
{
if (tt==0)
{
glBindTexture(GL_TEXTURE_2D, rocks);
glColor4f(0.3f, 0.3f, 0.1f, 1.0f);
glBegin(GL_TRIANGLES);
}
else if (tt==1)
{
glEnd();
glBindTexture(GL_TEXTURE_2D, land);
glColor4f(0.6f, 0.6f, 0.6f, 1.0f);
glBegin(GL_TRIANGLES);
}
else if (tt==2)
{
glEnd();
glBindTexture(GL_TEXTURE_2D, rocks2);
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glBegin(GL_TRIANGLES);
}
for( int z=0; z < MAP_Z-1; z++ )
{
for( int x=0; x<MAP_X-1; x++ )
{
if(detailmap[x][z]==tt)
{
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
//for each vertex we load a point from our terrain file insert that code here
glColor3f(terrain[x][z][1]/255.0f, terrain[x][z][1]/255.0f, terrain[x][z][1]/255.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(terrain[x][z][0], terrain[x][z][1], terrain[x][z][2]);
glColor3f(terrain[x+1][z+1][1]/255.0f, terrain[x+1][z+1][1]/255.0f, terrain[x+1][z+1][1]/255.0f);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(terrain[x+1][z+1][0], terrain[x+1][z+1][1], terrain[x+1][z+1][2]);
glColor3f(terrain[x][z+1][1]/255.0f, terrain[x][z+1][1]/255.0f, terrain[x][z+1][1]/255.0f);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(terrain[x][z+1][0], terrain[x][z+1][1], terrain[x][z+1][2]);
glColor3f(terrain[x][z][1]/255.0f, terrain[x][z][1]/255.0f, terrain[x][z][1]/255.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(terrain[x][z][0], terrain[x][z][1], terrain[x][z][2]);
glColor3f(terrain[x+1][z][1]/255.0f, terrain[x+1][z][1]/255.0f, terrain[x+1][z][1]/255.0f);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(terrain[x+1][z][0], terrain[x+1][z][1], terrain[x+1][z][2]);
glColor3f(terrain[x+1][z+1][1]/255.0f, terrain[x+1][z+1][1]/255.0f, terrain[x+1][z+1][1]/255.0f);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(terrain[x+1][z+1][0], terrain[x+1][z+1][1], terrain[x+1][z+1][2]);
}
}
}
}
glEnd();
glEndList();
}