Форум: "Media";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизНаложение текстур 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 вся ветка
Форум: "Media";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c