Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2008, 19:57   #1
N!ckeL
Форумчанин
 
Регистрация: 29.03.2008
Сообщений: 300
Печаль OpenGL и текстуры

Второй день не получается нормально наложить текстуры( Делаю землю, накладываю текстуру 32х32, появляются полосы, как исправить незнаю, подскажите, вот код:
OnCreate:
Код:
glNewList(1,GL_COMPILE);
    glBegin(GL_QUAD_STRIP);
      glColor3f(0.7,1.0,0.7);

      glTexCoord2d (0, 0);
        glVertex3f(-50,-1,-50);

     glTexCoord2d (100, 0);
        glVertex3f(50,-1,-50);

     glTexCoord2d (0, 150);
        glVertex3f(-50,-1, 50);

     glTexCoord2d (100, 100);
        glVertex3f(50,-1, 50);
    glEnd;
  glEndList;
Накладываю:
Код:
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
 glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL);
 glTexImage2d(GL_TEXTURE_2D,0,3,TextureW,TextureH,0,GL_RGB,GL_UNSIGNED_BYTE,@Texture);

 glEnable(GL_TEXTURE_2D);
 glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);
 GetTexture;

  glCallList(1);

    glDisable(GL_TEXTURE_2D);
Процедура GetTexture
Код:
procedure TForm1.GetTexture;
const
 siz = 32;
var
 BMInfo      :TBitmapInfo;
 I,ImageSize :Integer;
 Temp        :Byte;
 Bitmap      :Graphics.TBitmap;
 TempImage   :TBitmap;
 MemDC       : HDC;
begin
 Bitmap:=TBitmap.Create;
 TempImage:=TBitmap.Create;
 TempImage.Width:=siz;
 TempImage.Height:=siz;
 TempImage.LoadFromFile('map.bmp');
 Bitmap.Width:=RoundUpToPowerOf2(TempImage.Width);
 Bitmap.Height:=RoundUpToPowerOf2(TempImage.Height);
 Bitmap.Canvas.CopyRect(Rect(0,0,Bitmap.Width,Bitmap.Height), TempImage.Canvas,
                        Rect(0,0,siz,siz));
 MemDC:=CreateCompatibleDC(0);
 try
  with bitmap do
   begin
    ImageSize:=bitmap.Width*bitmap.Height;
    TextureW:=bitmap.Width;
    TextureH:=bitmap.Height;

    GetMem(Texture,ImageSize*3);
    MemDC:=CreateCompatibleDC(0);
    FillChar(BMInfo,SizeOf(BMInfo),0);
    With BMInfo.bmiHeader do
     begin
      biSize:=sizeof(TBitmapInfoHeader);
      biBitCount:=24;
      biWidth:=bitmap.Width;
      biHeight:=-bitmap.Height;
      biPlanes:=1;
      biCompression:=BI_RGB;
     end;
    GetDIBits(MemDC,Bitmap.Handle,0,bitmap.Height,Texture,BMInfo,DIB_RGB_COLORS);
  {$R-}
    for i:=0 to ImageSize-1 do
     begin
      Temp:=Texture^[i*3];
      Texture^[I*3]:=Texture^[I*3+2];
      Texture^[I*3+2]:=Temp;
     end;
  {$R-}
    glPixelStorei(GL_UNPACK_ALIGNMENT,0);
    glPixelStorei(GL_UNPACK_ROW_LENGTH,0);
    glPixelStorei(GL_UNPACK_SKIP_ROWS,0);
    glPixelStorei(GL_UNPACK_SKIP_PIXELS,0);
   end;
 finally
  Bitmap.Free;
  TempImage.Free;
  DeleteDC(MemDC);
 end;
end;
Что получается в приложении.. Заранее спасибо.
Изображения
Тип файла: jpg screen.jpg (24.8 Кб, 195 просмотров)
Карп преодолевший водопад становится драконом.
N!ckeL вне форума Ответить с цитированием
Старый 03.02.2009, 19:55   #2
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

В алгоритм загрузки не вникал, попробуй вот это, можт сработает:

glTexParameteri(GL_TEXTURE_2D,GL_TE XTURE_WRAP_S,GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D,GL_TE XTURE_WRAP_T,GL_REPEAT);
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 05.04.2009, 09:09   #3
zk1992
Новичок
Джуниор
 
Регистрация: 05.04.2009
Сообщений: 1
По умолчанию

Здравствуйте!

Вот ,встретился с проблемой с наложением текстур.
При наложении текстур на glutSolidCube( ) возникает следующий прикол,верхняя и нижняя грани нормально текстурируются,а боковые просто исполосованы.
Как избавится от этой проблемы?
zk1992 вне форума Ответить с цитированием
Старый 06.04.2009, 20:12   #4
IvaniuS
Форумчанин
 
Аватар для IvaniuS
 
Регистрация: 16.04.2007
Сообщений: 225
По умолчанию

вы используете стандартные библиотеки гл или сторонних разработчиков? в любом случае выложите плз
GLUtils.dcu это она у меня лайт версия делфи много библиотек нету а нужны

Последний раз редактировалось IvaniuS; 06.04.2009 в 20:15.
IvaniuS вне форума Ответить с цитированием
Старый 26.03.2010, 17:46   #5
FLEX_NST
 
Регистрация: 30.11.2008
Сообщений: 3
По умолчанию

У меня почему-то ругается на:
Код:
      Temp:=Texture^[i*3];
      Texture^[I*3]:=Texture^[I*3+2];
      Texture^[I*3+2]:=Temp;
Кричит что: "Class does not have a default property" и тыкает пальцем в Texture^[]... Texture наколько я понимаю указатель... но какого типа?? TBitmap насколько я понимаю!? Или нет?
FLEX_NST вне форума Ответить с цитированием
Старый 28.03.2010, 21:24   #6
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

А мы откуда знаем, что у вас там за Texture..? Попробуйте поменяйть индекс и ^ местами.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 05.05.2010, 14:42   #7
peredozer
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 16
По умолчанию

Так серьезно, какая переменная Texture?
peredozer вне форума Ответить с цитированием
Старый 05.05.2010, 15:46   #8
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Что ж это за оплот некромантии такой? Не пора ли прикрыть лавочку?
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3D и OpenGl Dj_smart Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 29.10.2017 11:31
Текстуры, картинки, анимации Doom4eg Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 02.08.2008 21:35
OpenGL prizrak1390 Свободное общение 2 07.04.2008 13:43
Неправильное считывание текстуры. Все размытою GamerSuper Gamedev - cоздание игр: Unity, OpenGL, DirectX 15 08.02.2008 12:37
OpenGL текстуры NoName_emaNoN Win Api 3 29.11.2007 20:11