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

Вниз

Наложение текстур OpenGL   Найти похожие ветки 

 
LAnd   (2004-06-30 19:21) [0]

Я недавно начал изучения OpenGl, дошел до наложения текстур. В интернете в основном все для С++ написано (читаю Nehe)...
Я написал программу вращается куб, наложил тектстуру, но она не вращается...

Вот процедура загрузки текстур:

procedure TForm1.LoadGLTextures;
var i,j: integer;
begin
 Bit:=TBitmap.Create;
 Bit.LoadFromFile("trava.bmp");
 for i:=0 to 127 do begin
   for j:=0 to 127 do begin
     bits[i,j,0]:=GetRValue(Bit.Canvas.Pixels[i,j]);
     bits[i,j,1]:=GetGValue(Bit.Canvas.Pixels[i,j]);
     bits[i,j,2]:=GetBValue(Bit.Canvas.Pixels[i,j]);
     bits[i,j,3]:=255;
   end;
 end;

 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Bit.Height, Bit.Width,
               0,GL_RGBA, GL_UNSIGNED_BYTE, @bits);
 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

end;

И сама процедура прорисовки

procedure TForm1.WMPaint(var Msg: TWMPaint);
var
 ps : TPaintStruct;
begin

 BeginPaint (Handle, ps);

 glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
 glPushMatrix;
 glRotatef(a,1.0,1.0,1.0);
if a>360 then a:=0 else a:=a+0.5;

glBegin(GL_QUADS);

glTexCoord2f(0.5, 0.5);glVertex3f(-1.0, -1.0,  1.0);
glTexCoord2f(1.0, 0.5);glVertex3f( 1.0, -1.0,  1.0);
glTexCoord2f(1.0, 1.0);glVertex3f( 1.0,  1.0,  1.0);
glTexCoord2f(0.5, 1.0);glVertex3f(-1.0,  1.0,  1.0);

glTexCoord2f(1.0, 0.0); glVertex3f(-1.0, -1.0, -1.0);
glTexCoord2f(1.0, 1.0); glVertex3f(-1.0,  1.0, -1.0);glTexCoord2f(0.0, 1.0); glVertex3f( 1.0,  1.0, -1.0);
glTexCoord2f(0.0, 0.0); glVertex3f( 1.0, -1.0, -1.0);

glTexCoord2f(0.0, 1.0); glVertex3f(-1.0,  1.0, -1.0);
glTexCoord2f(0.0, 0.0); glVertex3f(-1.0,  1.0,  1.0);
glTexCoord2f(1.0, 0.0); glVertex3f( 1.0,  1.0,  1.0);
glTexCoord2f(1.0, 1.0); glVertex3f( 1.0,  1.0, -1.0);

glTexCoord2f(1.0, 1.0); glVertex3f(-1.0, -1.0, -1.0);
glTexCoord2f(0.0, 1.0); glVertex3f( 1.0, -1.0, -1.0);
glTexCoord2f(0.0, 0.0); glVertex3f( 1.0, -1.0,  1.0);
glTexCoord2f(1.0, 0.0); glVertex3f(-1.0, -1.0,  1.0);

glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0, -1.0);
glTexCoord2f(1.0, 1.0); glVertex3f( 1.0,  1.0, -1.0);
glTexCoord2f(0.0, 1.0); glVertex3f( 1.0,  1.0,  1.0);
glTexCoord2f(0.0, 0.0); glVertex3f( 1.0, -1.0,  1.0);

glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0, -1.0);
glTexCoord2f(1.0, 0.0); glVertex3f(-1.0, -1.0,  1.0);
glTexCoord2f(1.0, 1.0); glVertex3f(-1.0,  1.0,  1.0);glTexCoord2f(0.0, 1.0); glVertex3f(-1.0,  1.0, -1.0);

glEnd();

 glPopMatrix;
 SwapBuffers (DC);
 EndPaint (Handle, ps);
 InvalidateRect(Handle, nil, False);
end;

Подскажите в чем ошибка или дайте ссылку на работающий исходник под Delphi. Заранее благодарен.


 
jb   (2004-07-02 09:44) [1]

Почту проверь!


 
diaz   (2004-07-12 16:49) [2]

Куча примеров по OpenGL на разные темы : www.sulaco.co.za



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

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

Наверх




Память: 0.47 MB
Время: 0.048 c
4-1092993787
Adil
2004-08-20 13:23
2004.10.03
Как блокировать клавиатуру и мышку


1-1095609224
Елис
2004-09-19 19:53
2004.10.03
StrinGrid


14-1095317193
080D:07BBh
2004-09-16 10:46
2004.10.03
Intel vs AMD


1-1095223010
Ruslan_1986
2004-09-15 08:36
2004.10.03
копирование поврежденного файла


1-1095379519
Knapp
2004-09-17 04:05
2004.10.03
как сделать так, чтобы при нажати на клавишу Tab ...