Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

Текстура на пяти квадратах...   Найти похожие ветки 

 
Кефир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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.034 c
3-1123757311
Marat
2005-08-11 14:48
2005.09.25
Долгий поиск


14-1125546723
NewWonder
2005-09-01 07:52
2005.09.25
С днём знаний!


1-1125495154
Erik1
2005-08-31 17:32
2005.09.25
Вызов API функции после CoInitializate?


4-1122368758
Чапаев
2005-07-26 13:05
2005.09.25
LPT-порт. Чтение/запись.


1-1125756087
MAVr
2005-09-03 18:01
2005.09.25
Удалить файлы с определенными атрибутами...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский