Конференция "Media" » OpenGL: Z-буфер, не могу вывести [D6, D7, WinXP]
 
  • KingMax (23.06.10 19:30) [0]
    Имеется:
    type
     TCoord = record
       x: real;
       y: real;
       z: real;
       h: real;
     end;

    и 2 массива:
    MCoord: array of TCoord; - массив координат
    MSurface: array of array of integer; - двумерный массив [i, j], где i - номер плоскости, j - номер координаты (индекс массива координат)

    нужно вывести сцену (вывожу на TImage), используя Z-буфер, т.е. каждая грань будет иметь свой цвет

    OpenGL подключил, пробую выводить так:

    n,e: integer;
    dc: HDC;
    hrc: HGLRC;
    TPS: TPaintStruct;



     dc:=GetDC(Form1.Image1.Picture.Bitmap.Handle);
     hrc:=wglCreateContext(dc);
     BeginPaint (dc, TPS);
     wglMakeCurrent(dc, hrc);
    // glViewPort (0,0,505,505);
    // glClearColor (0.1,0.5,0.5,1.0);
     glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
     glEnable(GL_DEPTH_TEST);
       for n:=0 to Length(MSurface) - 1 do
         begin
           glBegin(GL_POLYGON);
             for e:=0 to Length(MSurface[n]) - 1 do
               begin
                 glColor3f(Random,Random,Random);
                 glVertex3f((MCoord[MSurface[n,e]].x+300),(300-MCoord[MSurface[n,e]].y),(MCoord[MSurface[n,e]].z));
               end;
               glEnd;
         end;


    ничего не выходит...
 
Конференция "Media" » OpenGL: Z-буфер, не могу вывести [D6, D7, WinXP]
Есть новые Нет новых   [120157   +156][b:0][p:0.001]