Quadric- , .
gluQuadricDrawStyle (SphereObj, GLU_FILL)
gluQuadricDrawStyle (SphereObj, GLU_LINE) ;
, OpenGL, . , :
glBegin(GL_LINES).
, . , .
glPolygonMode(
GLEnum face,
GLEnum mode)
mode [15]:
GL_POINT | , . GL_POINT_SMOOTH. |
GL_LINE | . (GL_LINE_WIDTH) (GL_LINE_SMOOTH). |
GL_FILL | . (GL_POLYGON_SMOOTH). |
face , , mode:
GL_FRONT ;
GL_BACK ;
GL_FRONT_AND_BACK .
SetupCommpns.
procedure TfrmGL.SetUpCommons;
const
LC = 53.0;
begin
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
Case RGProj.ItemIndex of
0: glOrtho (-LC,LC,-Panel1.height/Panel1.width*LC,
Panel1.height/Panel1.width*LC, 3, 1000);
1: glFrustum (-1,1,-Panel1.height/Panel1.width,
Panel1.height/Panel1.width, 3, 1000); //
end;//case
//
if CBAlphaTest.Checked then
glEnable(GL_ALPHA_TEST)
else
glDisable(GL_ALPHA_TEST);
//
if CBBlending.Checked then
begin
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
end
else
glDisable(GL_BLEND);
//
Case RGFlatSm.ItemIndex of
0: glShadeModel(GL_FLAT);
1: glShadeModel(GL_SMOOTH);
end;//case
Case RGVisEdges.ItemIndex of
0:begin
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
end;
1:begin
glEnable(GL_CULL_FACE);
glCullFace(GL_FRONT);
end;
2:begin glDisable(GL_CULL_FACE)end;
end;//case
//
if CBColorMaterial.Checked then//
glEnable(GL_COLOR_MATERIAL)
else
|
|
glDisable(GL_COLOR_MATERIAL);
if CBoxLightOn.Checked then
begin
//
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, @lmodel_ambient);
//
glLightfv(GL_LIGHT0, GL_AMBIENT, @ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, @diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, @Specular);
end
else
begin
glDisable(GL_LIGHTING);
glDisable(GL_LIGHT0);
end;
//
if CBoxLockViewer.Checked then
// - ,
glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, @glTrue) //1.0
else
glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, @glFalse);//0.0
///
if CBoxDoubSided.Checked then
// 0 -
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 1)
else
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0);
//
glMaterialfv(GL_FRONT,GL_AMBIENT,@fr_Mat_Amb);
glMaterialfv(GL_FRONT,GL_DIFFUSE,@fr_Mat_Diff);
glMaterialfv(GL_FRONT,GL_SHININESS,@fr_Mat_Shine);
glMaterialfv(GL_FRONT,GL_SPECULAR,@fr_Mat_Spec);
glMaterialfv(GL_FRONT,GL_EMISSION,@fr_Mat_Emit);
glMaterialfv(GL_BACK,GL_AMBIENT,@back_Mat_Amb);
glMaterialfv(GL_BACK,GL_DIFFUSE,@back_Mat_Diff);
glMaterialfv(GL_BACK,GL_SHININESS,@back_Mat_Shine);
glMaterialfv(GL_BACK,GL_SPECULAR,@back_Mat_Spec);
glMaterialfv(GL_BACK,GL_EMISSION,@back_Mat_Emit);
end;//procedure TfrmGL.SetUpCommons;