Главная страница
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.48 MB
Время: 0.029 c
2-1124105228
alex-drob
2005-08-15 15:27
2005.09.25
Как завершать поток


2-1124186969
Пантелеев Иван
2005-08-16 14:09
2005.09.25
Работа с реестром


2-1123704374
serko
2005-08-11 00:06
2005.09.25
Qreport


2-1124205803
Ксардас
2005-08-16 19:23
2005.09.25
Как програмно удалить файл?


3-1124081213
Rentgen
2005-08-15 08:46
2005.09.25
ограничение размера для фильтра в таблице ADO