The code below is a function to draw a '3d' version of the Sierpinski sieve at the moment it just draws a 2d scene with 3dperspective, the plotting of the points is all there to create a 3d model but i have no idea what needs to be implemented to get this going, should i be creating more surfaces or something? and lighting direction i suppose but maybe running before can walk.

i have posted a screenshot of how it looks after a couple of iterations so you get an idea

thanks for any suggestions.

Code:void DrawScene(SDL_Surface *screen) { int count; int maxrand = 5; int num; // verticies of the "3d" triangle int v1acr = 200; int v1dwn = 25; // top middle point int v2acr = 360; int v2dwn = 250; // right corner int v3acr = 40; int v3dwn = 250; // left corner int v4acr = 200; int v4dwn = 300; // bottom middle point int v5acr = 200; int v5dwn = 250; // back middle point int plotacr, plotdwn; // variables to store x & y coordinates // int currentacr = 275; int currentdwn = 112; srand(time(NULL)); SDL_WM_SetCaption("3D-ish Sierpinski Gasket","3D-ish Sierpinski Gasket" ); for (count = 0; count < 20000; count++) { num = rand() % maxrand; switch(num) { case 0: plotacr = v1acr + currentacr / 2; plotdwn = v1dwn + currentdwn / 2; break; case 1: plotacr = v2acr + currentacr / 2; plotdwn = v2dwn + currentdwn / 2; break; case 2: plotacr = v3acr + currentacr / 2; plotdwn = v3dwn + currentdwn / 2; break; case 3: plotacr = v4acr + currentacr / 2; plotdwn = v4dwn + currentdwn / 2; break; case 4: plotacr = v5acr + currentacr / 2; plotdwn = v5dwn + currentdwn / 2; break; } DrawPixel(screen, plotacr,plotdwn,100,50,50); currentacr = plotacr; currentdwn = plotdwn; //set last point to new start point } Sulock(screen); SDL_Flip(screen); }