У меня проблема с рендерингом opengl.
with pfd do
begin
nSize := SizeOf(PIXELFORMATDESCRIPTOR);
nVersion := 1;
dwFlags := PFD_DRAW_TO_WINDOW
or PFD_SUPPORT_OPENGL
or PFD_DOUBLEBUFFER;
iPixelType := PFD_TYPE_RGBA;
cColorBits := colorBits;
cRedBits := 0;
cRedShift := 0;
cGreenBits := 0;
cGreenShift := 0;
cBlueBits := 0;
cBlueShift := 0;
cAlphaBits := 0;
cAlphaShift := 0;
cAccumBits := 0;
cAccumRedBits := 0;
cAccumGreenBits := 0;
cAccumBlueBits := 0;
cAccumAlphaBits := 0;
cDepthBits := 16;
cStencilBits := 0;
cAuxBuffers := 0;
iLayerType := PFD_MAIN_PLANE;
bReserved := 0;
dwLayerMask := 0;
dwVisibleMask := 0;
dwDamageMask := 0;
end;
glMaterialfv(GL_FRONT, GL_AMBIENT, @matAmbient);
glMaterialfv(GL_FRONT, GL_SPECULAR, @matSpecular);
glMaterialf(GL_FRONT, GL_SHININESS, 50.0);
glLightfv(GL_LIGHT0, GL_POSITION, @lightPosition);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, @lmAmbient);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);
Рендеринг OpenGl очень хорош, если угол между двумя гранями большой, и очень плох, если угол между 2 гранями мал, он выглядит серым:
Это мой полный код и двоичный файл:
OpenglDelphiTest
Я хочу исчезнуть серым цветом. Пожалуйста, помогите мне