Форум: "Игры";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
ВнизНаложение текстуры на трехмерный объект произвольной формы Найти похожие ветки
← →
VasRog (2005-07-19 11:59) [0]Создал трехмерную поверхность произвольной формы (через связанные треугольники). Теперь нужно наложить текстуру, загружаемую из файла на весь этот объект. Размер текстуры - 512 - 512. Размер отображаемой поверхности - 477 - 497. Пытаюсь сделать как в предлагает нам товарищ Краснов:
procedure BmpTexture;
var
i_t, j_t: Integer;
Row_t: pRGBTripleArray;
beGin
Bitmap_t := TBitmap.Create;
Bitmap_t.LoadFromFile("egyptsandbig.bmp"); // загрузка текстуры из файла
{--- заполнение битового массива ---}
For j_t := 0 to 511 do
beGin
Row_t:= Bitmap_t.ScanLine[j_t];
For i_t := 0 to 511 do
beGin
bits [j_t, i_t, 0] := Row_t[i_t].rgbtRed;
bits [j_t, i_t, 1] := Row_t[i_t].rgbtGreen;
bits [j_t, i_t, 2] := Row_t[i_t].rgbtBlue;
end;
end;
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
512, 512 , // здесь задается размер текстуры
0, GL_RGB, GL_UNSIGNED_BYTE, @Bits);
// чтобы цвет объекта не влиял на текстуру
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glEnable(GL_TEXTURE_2D);
end;
Но возникает ошибка: Stream Read Error. Помогите, пожалуйста, разобраться. И еще: как в моем случае определить s и t координать для заданной поверхности.
← →
MeF Dei Corvi © (2005-07-19 12:41) [1]
> Но возникает ошибка: Stream Read Error.
очевидно косяк какой-то с форматом и содержимым файла.
← →
XProger © (2005-07-19 12:48) [2]
s = x/Width;
t = y/Height;
Что есть bits?
← →
VasRog (2005-07-19 12:59) [3]Bits: Array [0..511, 0..511, 0..2] of GLubyte;
Это битовый массив.
> s = x/Width;
> t = y/Height;
Здесь Width и HeiGht - это ширина и длина поверхности?
← →
A22 © (2005-07-19 13:38) [4]угу, только X и Y от 0 считай
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c