Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.036 c
4-1122590274
GrayFace
2005-07-29 02:37
2005.09.25
Раздел импорта


14-1125310284
Kerk
2005-08-29 14:11
2005.09.25
По какому календарю сегодня 1 апреля?


2-1124381569
_zx
2005-08-18 20:12
2005.09.25
компонент Chart


3-1123763422
Lenik
2005-08-11 16:30
2005.09.25
Как задать в DBGrid русские имена столбцов


1-1125599162
hgd
2005-09-01 22:26
2005.09.25
Внедрения google maps





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский