Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: CL | DM;

Вниз

Пропадает сфера   Найти похожие ветки 

 
Qwertyk ©   (2005-05-10 16:16) [0]

Здравствуйте! Задавал этот вопрос с теме про небо. Все же решил вынести в оидельный топик :)
Значит ресую я сферу. Работает нормально, но как я вставляю модель, то сфера пропадает. Почему?

glPopMatrix;
 Angle := 0.03;
 glRotatef (Angle, 0.0, 0.0, 1.0);
 glFogCoordfEXT(KFog);

 glBindTexture(gl_texture_2d,Textures[texcount+1]);
 glEnable (GL_BLEND);
  glCallList(Inside);
  glDisable (GL_BLEND);
glPushMatrix;
                            //После вставки нижестоящего кода появился такой баг
glPopMatrix;
  MyMesh.Draw;
glPushMatrix;


 
П7   (2005-05-10 16:34) [1]

Ты что-то неправильно делаешь! (:

Код полный давай, а то я тоже могу спросить:
Почему у меня игра не работает? Вот код:
var
 Game : TGame;
begin
 Game.Exec();
end;


 
petya-kurochkin   (2005-05-10 17:51) [2]

А может тебе туман обозрение подрывает?


 
хм ©   (2005-05-10 20:17) [3]

П7   (10.05.05 16:34) [1]
дык :D
var
Game : TGame;
begin
Game:=TGame.Create;
try
  Game.Exec();
finally
  Game.Free;
end;
:)


 
Qwertyk ©   (2005-05-10 20:50) [4]

Вот основной код

 procedure OnRender();
  var
     i,j:integer;
     t:tvector;
     t1:longint;
  begin

 
     glBindTexture(gl_texture_2d,Textures[1]);
   
  {Ландшафт}
     for j:=0 to H-2 do
        begin
          glBegin(GL_TRIANGLE_STRIP);
          for i:=0 to W-1 do
            begin
              glTexCoord2f(i/W,1-j/H);
              with MapArr[i,j] do glVertex3f(x,y,z);
              glTexCoord2f(i/W,1-(j+1)/H);
              with MapArr[i,j+1] do glVertex3f(x,y,z);
            end;
          glEnd;
        end;

  KFog:=KFog+0.0001;

  glcolor3f(0,1,1);

  glPopMatrix;
  Angle := 0.03;
  glRotatef (Angle, 0.0, 0.0, 1.0);
  glFogCoordfEXT(KFog);

 {Sky BOX}

 glBindTexture(gl_texture_2d,Textures[texcount+1]);//texcount+1
  glEnable (GL_BLEND);
   glCallList(Inside);
  glDisable (GL_BLEND);
 glPushMatrix;

 {--- Sky----}

glPopMatrix;

   glTranslated(10,10,10);
   glRotatef(90,-1,-1,-1);
   MyMesh.Draw;

glPushMatrix;

     SwapBuffer();
     inc( framec);
  end;
procedure InicialiseOpenGLProgramm;
  var
     i,j:integer;
      Quadric : GLUquadricObj;
  begin
     Tss:=10;
     F:=true;
     tt:=1;
     time := GetTickCount;
     First:=true;
 
     MyMesh := TGLMultyMesh.Create;    Создание модели
     MyMesh.LoadFromFile( "ManRun.gms" );
     MyMesh.Extent := true;

     if not InitOpenGL( GrWindow ) then  exit;
     // FONT
     wglUseFontBitmaps( GetDC( GrWindow ), 0, 255, GLF_START_LIST );
     glListBase( GLF_START_LIST );
     //SOME PARAMETRES
     glClearColor( 0.0, 0.0, 0.2, 0.0 );
     glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL );
     // VIEWPORT
     glViewport( 0, 0, Screen_Width,Screen_Height);
     glMatrixMode( GL_PROJECTION );
     glLoadIdentity();
     gluPerspective( 65.0, Screen_Width/Screen_Height, 0.5, 500.0 );
     glMatrixMode( GL_MODELVIEW );
     glLoadIdentity();
     glEnable( GL_DEPTH_TEST );
     glDepthFunc( GL_LESS );
     //Loading textures,models and other actions

     LoadMap("map.txt");
     glEnable(gl_texture_2d);
     TargetCamera.Create;

     HMAP := TBitmap.Create;
     HMAP.LoadFromFile("map.bmp");
     W:=HMAP.Width;
     H:=HMAP.Height;
     SetLength(MapArr,W+2,H+2);
     for i := 0 to H-1 do
       for j := 0 to W-1 do
         begin
           MapArr[j,i].X:=j;
           MapArr[j,i].Y:=GetBValue(HMAP.Canvas.Pixels[j,i])/10;
           MapArr[j,i].Z:=i;
         end;
     HMAP.free;
    {Fog}
          glEnable(GL_FOG);
     glFogi(GL_FOG_MODE, GL_LINEAR);
     glFogfv(GL_FOG_COLOR, @fogColor);
     glFogf(GL_FOG_START,  0.0);
     glFogf(GL_FOG_END,    1.0);
     glHint(GL_FOG_HINT, GL_NICEST);
     // "крепим" туман на координатах вершин
     glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT);

Quadric := gluNewQuadric;
gluQuadricTexture (Quadric, TRUE);

glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glNewList (Inside, GL_COMPILE);        Фот и сфера!
   glEnable(GL_CULL_FACE);
   glCullFace(GL_FRONT);
   gluSphere (Quadric, 100.99, 24, 24);
   glDisable(GL_CULL_FACE);
glEndList;

gluDeleteQuadric (Quadric);

glEnable(GL_DEPTH_TEST);

    {--}
  end;


 
П7   (2005-05-10 21:49) [5]


> хм ©   (10.05.05 20:17) [3]

5 баллов!!! (:


 
Qwertyk ©   (2005-05-10 22:12) [6]

П7   (10.05.05 21:49) [5]
А если по делу :)


 
П7   (2005-05-11 01:11) [7]

Почитай подробнее про glPopMatrix и glPushMatrix и поймёшь, где ты ошибся (:


 
Darth   (2005-05-11 14:30) [8]

glPopMatrix и glPushMatrix везде местами поменяй


 
Qwertyk ©   (2005-05-11 16:09) [9]

Ой блин .... Спасибо :)



Страницы: 1 вся ветка

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
4-1121430528
JohnSmith
2005-07-15 16:28
2005.09.04
Работа с Mutex


14-1123747026
Ilya___
2005-08-11 11:57
2005.09.04
Как думаете сколько мне можно попросить за мою програмку?


3-1122314456
Оран Гутангович
2005-07-25 22:00
2005.09.04
Доступ к ADO таблице


4-1121495804
Михаил(Киров)
2005-07-16 10:36
2005.09.04
Запуск процесса


1-1124116629
Бобров Илья
2005-08-15 18:37
2005.09.04
Имитация нажатия клавиш