Имеется:
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);
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;
ничего не выходит...