PMG

Форумы по созданию игр
Текущее время: 14 июл 2026 14:47

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: 22 урок
СообщениеДобавлено: 14 июн 2006 22:26 
Не в сети
Постоянный

Зарегистрирован: 14 июн 2006 21:30
Сообщения: 53
Откуда: Из Сахары
Здровствуйте, дорогие друзья!
Прошу пращения за ламерский вопрос, но всеже, никак не могу понять, для чего нужны s и t координаты и как их подсчитать для произвольной сетки из треугольников ...

Попробовал реализовать без этих координат, но картинка получилась неестественная, т.к. сдвиг координат всегда был по x и по y одинаков.

И еще. Почему нельзя чтобы текстура повторялась многократно?
Код:
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);  // Не укладывать паркетом

    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);


Последний раз редактировалось Weise 14 июн 2006 22:57, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 июн 2006 22:56 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Цитата:
// Выполнение сдвига текстуры

// n : нормаль к поверхности. Должна иметь длину 1

// c : текущая вершина на поверхности (координаты местоположения)

// l : положение источника света

// s : направление s-координаты текстуры в пространстве объекта

// (должна быть нормализована!)

// t : направление t-координаты текстуры в пространстве объекта

// (должна быть нормализована!)

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 июн 2006 22:59 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Цитата:
Попробовал реализовать без этих координат, но картинка получилась неестественная, т.к. сдвиг координат всегда был по x и по y одинаков.

Ну для этого и нужны s,t что б картинка была не кривой.
Цитата:
Прошу пращения за ламерский вопрос

Ламерский вопрос на неламерский(даже очень неламерский) урок. :D
P.S:В вобще я сильно незалазил в Bump-Mapping.

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 июн 2006 23:06 
Не в сети
Постоянный

Зарегистрирован: 14 июн 2006 21:30
Сообщения: 53
Откуда: Из Сахары
Это все понятно. Попробую задать вопрос по-другому:
Есть треугольник, его нормали к каждой вершине извесны, известны и сами вершины, и их текстурные координаты. Также мы знаем координату источника света. Какие будут s и t к каждой вершине? К чему привязывать (0;0)?
Цитата:
Ламерский вопрос на неламерский(даже очень неламерский) урок.

Если б этот урок был-бы ламмерским, я бы туда не полез )))
Цитата:
P.S:В вобще я сильно незалазил в Bump-Mapping.

А зря... Лично я не представляю себе сцену без Бампмеппинга )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 июн 2006 23:13 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Цитата:
P.S:В вобще я сильно незалазил в Bump-Mapping.

Яже говорю это очень обьёмный урок и может тебе помочь только тот кто в нём копался и уже подобное делал.
P.S:Но я попробую тебе помочь я всё таки прочитаю этот урок и попробую найти ответ.Но это будет не сегодня а возможно завтра.

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 июн 2006 23:18 
Не в сети
Постоянный

Зарегистрирован: 14 июн 2006 21:30
Сообщения: 53
Откуда: Из Сахары
Спасибо. Буду очень благодарен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 июн 2006 10:51 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Цитата:
Это все понятно. Попробую задать вопрос по-другому:
Есть треугольник, его нормали к каждой вершине извесны, известны и сами вершины, и их текстурные координаты. Также мы знаем координату источника света. Какие будут s и t к каждой вершине? К чему привязывать (0;0)?

Обьясни поконкретнее что ты хочеш этим добится какой эфект хочеш сделать ;/

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 июн 2006 14:13 
Не в сети
Постоянный

Зарегистрирован: 14 июн 2006 21:30
Сообщения: 53
Откуда: Из Сахары
Помоему вопрос должен быть должен быть понятен... Определить s и t для произвольного треугольника...

Эффект? Тоже самое что и впримере...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 июн 2006 17:17 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Цитата:
Эффект? Тоже самое что и впримере...

Так нафига тибе что нить узнавать если то чего ты хочешь добится написано в примере. ;/

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 июн 2006 20:21 
Не в сети
Постоянный

Зарегистрирован: 14 июн 2006 21:30
Сообщения: 53
Откуда: Из Сахары
Да. ужас прям какой-то...

Эффект который я хочу сделать - Bump-Mapping.
Что мне для этого нужно - просчитать s и t для треугольника ))), ВСЕ!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 22 урок
СообщениеДобавлено: 17 июн 2006 12:21 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Weise писал(а):
Здровствуйте, дорогие друзья!
Прошу пращения за ламерский вопрос, но всеже, никак не могу понять, для чего нужны s и t координаты и как их подсчитать для произвольной сетки из треугольников ...


NeHe урок N6 писал(а):
Для того чтобы правильно отобразить текстуру на четырехугольник, вы должны отобразить правый верхний угол текстуры на правую верхнею вершину четырехугольника. Левый верхний угол текстуры отображается в левую верхнею вершину четырехугольника, правый нижний угол текстуры отображается в правую нижнею вершину четырехугольника, и в завершении, левый нижний угол текстуры отображается в левую нижнею вершину четырехугольника. Если углы текстуры не совпадают с углами четырехугольника, изображение может быть сдвинуто вниз, в сторону, или вообще отсутствовать.

Первый аргумент glTexCoord2f - координата X. 0.0f - левая сторона текстуры. 0.5f - середина текстуры, и 1.0f - правая сторона текстуры. Втрое значение glTexCoord2f - это Y координата. 0.0f - низ текстуры. 0.5f - середина текстуры, и 1.0f - верх текстуры.

Теперь мы знаем, что левая верхняя координата текстуры 0.0f по X и 1.0f по Y, и левая верхняя вершина четырехугольника -1.0f по X, и 1.0f по Y. Теперь осталось сделать так, чтобы оставшиеся три координаты совпали с тремя углами четырехугольника.

Попробуйте поиграться со значениями x и y в glTexCoord2f. Изменение 1.0f на 0.5f будет только рисовать левую половину текстуры от 0.5f (середина) до 1.0f (право).


Т.е. s,t - это координаты на текстуре! Как x,y в пространстве. Можно было бы писать вместо s,t = xt, yt!

Weise писал(а):
И еще. Почему нельзя чтобы текстура повторялась многократно?
Код:
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);  // Не укладывать паркетом

    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);


Заместо GL_CLAMP используй GL_REPEAT и при увеличении текстурных координат больше 1 текстура будет повторяться.[/quote]

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июн 2006 15:20 
Не в сети
Постоянный

Зарегистрирован: 14 июн 2006 21:30
Сообщения: 53
Откуда: Из Сахары
MagicWolf, спасибо за ответ.
Но меня смущает следующее:
s и t - это верктора, там 3 числа ))) Там еще написано что они нормализованы.
Там еще кртинка нарисована, но я никак не могу понять, почему там в векторе 3 числа )))
Изображение
Код:
void SetUpBumps(GLfloat *n, GLfloat *c, GLfloat *l, GLfloat *s, GLfloat *t) {

  GLfloat v[3];                // Вектор от текущей точки к свету

  GLfloat lenQ;                // Используется для нормализации

  // Вычислим и нормализуем v

  v[0]=l[0]-c[0];

  v[1]=l[1]-c[1];

  v[2]=l[2]-c[2];

  lenQ=(GLfloat) sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]);

  v[0]/=lenQ;

  v[1]/=lenQ;

  v[2]/=lenQ;

  // Получим величины проекции v вдоль каждой оси системы текстурных координат
  c[0]=(s[0]*v[0]+s[1]*v[1]+s[2]*v[2])*MAX_EMBOSS;

  c[1]=(t[0]*v[0]+t[1]*v[1]+t[2]*v[2])*MAX_EMBOSS;
}

Обратите внимание на две последние строчки в коде. Там 3 числа в массиве s и t - они вектора по-видимому )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 июн 2006 15:40 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
В данном случае идет речь о другом! Обычно s&t это координаты текструры. А здесь s&t два вектора, которые определяют местоположение грани куба. При этом по направлению этих векторов можно получить и текстурные координаты.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 июл 2006 22:57 
Не в сети
Постоянный

Зарегистрирован: 14 июн 2006 21:30
Сообщения: 53
Откуда: Из Сахары
Да, но третий вектор-то откуда брать? )))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 июл 2006 23:07 
Не в сети
Постоянный

Зарегистрирован: 14 июн 2006 21:30
Сообщения: 53
Откуда: Из Сахары
Да, кстати, у меня возник еще один вопрос, немного не в тему, но все-же...

Самое высокое количество полигонов, которое я отрендерил на 6600GT, составило 90 000 полигонов, далее уже менее 24 fps. Все это после поверхностной оптимизации. Рендерил так:
есть список вершин, список нормалей, материалов и мешей.
прохожу по всем мешам:
если надо менять материал, меняю
рендерю все вершины
Целью экспиремента было выявить максимальное количество треугольников, которое я могу на своей машинке отрендерить.

Так вот, вопрос, 90 000 полигонов, это нормально для моей машины (P4 2.8, 1024, GeForce 6600GT)?
Ответьте хотя-бы примерно... за одно может и расскажете, сколько сами отрендерили...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB