Вверх ↑
Ответов: 2057
Рейтинг: 28
#1: 2007-02-10 23:12:40 ЛС | профиль | цитата
nesco, всё это находеться в в процедуре
procedure TViewerForm.Use3DSData(const Reader: TFile3DS);

она как главный процессор. Всё подготавливает и заносит все данные об модели туда куда надо. И по моему нам остаёться только выполнить дисплейный список.

[size=-2]------ Добавлено в 23:12
nesco,
FCameraChanged := False;
// set up projection
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
if NavPanel.Visible then
ApplyPerspective(FViewport, ClientWidth - NavPanel.Width, ClientHeight, FDPI)
else
ApplyPerspective(FViewport, Width, ClientHeight, FDPI);
end;
это компонент GL_Perspective

#pas
Scale := ScaleUpDown.Position / 1000;
if FLightSourcesChanged then
begin
glScalef(Scale, Scale, Scale);
SetupLights;
glLoadIdentity;
end;
...
// objects
if Abs(1 - Scale) > 0.1 then
begin
glEnable(GL_NORMALIZE); // this will half the frame rate but is necessary for changing overall
// scale on the fly and still get the correct lighting
glScalef(Scale, Scale, Scale);
end
else glDisable(GL_NORMALIZE);
это компонет Gl_Scale

#pas
// camera
gluLookAt(0, 0, 50,
0, 0, -10,
0, 1, 0);
такой компонент тоже есть моего сопственного производства. Лежит в Уплоад. Но его можно вообще не использовать.
карма: 1

0