Форум: "Игры";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];
ВнизТекстура на пяти квадратах... Найти похожие ветки
← →
Кефир87 (2005-05-27 20:50) [0]Вот я тут решил что я самый умный и решил доделать таки скайбокс. Я решил сделать так: Куб без дна (оно мне не нужно т.к. никогда видимо не будет.). И вот (как я уже говорил) я решил что я самый умный и попытался наложить на все это дело всего одну текстуру. То есть центр (треть текстуры) является верхом куба. И все остальные части текстуры накладываются на остальные 4 квадрата. Но получилось отвратительно криво! Текстуры (части текстуры) сошлись только в одном углу, остальные части просто переколбасило. Есть ли способ эту задумку осуществить без раздиления текстуры на несколько файлов? Или может сделать куб треугольниками? А может я просто натупил в коде?...
glBindTexture(GL_TEXTURE_2D, image.point);
glBegin(GL_QUADS);
{TOP}
glTexCoord(1/3, 1/3); glVertex3f(-siz, siz, -siz);
glTexCoord(2/3, 1/3); glVertex3f(siz, siz, -siz);
glTexCoord(2/3, 2/3); glVertex3f(siz, siz, siz);
glTexCoord(1/3, 2/3); glVertex3f(-siz, siz, siz);
{RIGHT}
glTexCoord(2/3, 1/3); glVertex3d(siz, siz, -siz);
glTexCoord(1, 0); glVertex3d(siz, -siz, -siz);
glTexCoord(1, 1); glVertex3d(siz, -siz, siz);
glTexCoord(2/3, 2/3); glVertex3d(siz, siz, siz);
{LEFT}
glTexCoord(0, 0); glVertex3f(-siz, -siz, -siz);
glTexCoord(1/3, 1/3); glVertex3f(-siz, siz, -siz);
glTexCoord(1/3, 2/3); glVertex3f(-siz, siz, siz);
glTexCoord(0, 1); glVertex3f(-siz, -siz, siz);
{BACK}
glTexCoord(1/3, 1/3); glVertex3f(siz, siz, -siz);
glTexCoord(2/3, 1/3); glVertex3f(-siz, siz, -siz);
glTexCoord(1, 0); glVertex3f(-siz, -siz, -siz);
glTexCoord(0, 0); glVertex3f(siz, -siz, -siz);
{FRONT}
glTexCoord(1/3, 2/3); glVertex3f(siz, siz, siz);
glTexCoord(2/3, 2/3); glVertex3f(-siz, siz, siz);
glTexCoord(1, 1); glVertex3f(-siz, -siz, siz);
glTexCoord(0, 1); glVertex3f(siz, -siz, siz);
glEnd;
← →
XProger © (2005-05-27 22:46) [1]Вырезать из файла текстуры нужный тебе кусок и создать для него текстуру.
Какие плюсы:
+ Не надо париться с текстурными координатами
+ Размер текстуры является степенью двойки
P.S. А зачем ты в одну текстуру то пихнул?
Хидеры графических форматов для трёх текстур максимум полкило скушают.
А переклюючение текстур 5 раз за отрисовку не есть узкое место в твоей программе ;)
← →
keal (2005-05-28 16:01) [2]почему бы текстурам не перекривится? если ты на квадрат накладываешь текстуру в виде трапеции.
← →
Кефир87 (2005-05-28 21:26) [3]
> P.S. А зачем ты в одну текстуру то пихнул?
не знаю... Не люблю когда много файлоф... 8)
> Вырезать из файла текстуры нужный тебе кусок и создать для
> него текстуру.
Да. Это идея хорошая. Буду использовать ее в дальнейшем 8) Но вот только как вырезать трапецию из массива? Это ж придется одну сторону трапеции подгонять под другую... Жуть.
> почему бы текстурам не перекривится? если ты на квадрат
> накладываешь текстуру в виде трапеции.
Я это понимаю. Я просто думал что все нормально расчитается. Скажем как трансформ в фотошопе...
← →
П7 (2005-05-28 22:07) [4]А не проще ли все квады просто слить в один прямоугольник. Полдучилась бы 1 вытянутая текстура и координаты нормально расчитывались бы и ничего не перекашивалось... (:
← →
Кефир87 (2005-05-29 21:12) [5]Ну можно конечно. Выходов полно. Но я то решил что я самый умный 8)
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c