PMG

Форумы по созданию игр
Текущее время: 25 июл 2021 16:45

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: урок 10, вопрос по положению камеры и коорд. текстур
СообщениеДобавлено: 24 июл 2013 14:51 
Не в сети
Новичок

Зарегистрирован: 23 июл 2013 17:33
Сообщения: 3
1) вопрос:
Подскажите пож., как программа узнаёт начальное положение камеры в уроке 10 от Nehe?
Я так понимаю эта часть кода отвечает за позицию:
Код:
GLfloat xtrans = -xpos;       // Проекция игрока на ось X
GLfloat ztrans = -zpos;       // Проекция игрока на ось Z
glTranslatef(xtrans, ytrans, ztrans);

но инициализация начальных значений не указана:
Код:
float xpos;
float zpos;

Если я добавляю дополнительные части мира, как сместить нач. позицию на другое место?

Код:
gluLookAt (0.0f, 0.0f, 7.0f, 0, 0, 0, 0, 100, 0);

в InitGL не реагирует, а в ReSizeGLScene она портит вращение камеры вверх/вниз, т.к. вращается вся сцена, относительно указанной позиции.

-------------------------------------------
2) вопрос:
Как в файле с описанием коорд. наложения текстур понять позиции переменных u и v?
в описании к уроку сказано, что:
Цитата:
Каждый треугольник в нашем файле данных имеет следующую структуру:
X1 Y1 Z1 U1 V1
X2 Y2 Z2 U2 V2
X3 Y3 Z3 U3 V3

с коорд. никаких проблем не возникло, но вот u,v - если чесно, для новых текстур я наугад подбирал комбинацию, чтобы они были расположены так как я хотел. Можно ли по подробнее описать механизм того, что и за что в каждой с 3-х точек треугольника отвечает для текстуры?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: урок 10, вопрос по положению камеры и коорд. текстур
СообщениеДобавлено: 29 июл 2013 11:51 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
xpos и ypos по умолчанию нуль. Но лучше бы конечно, если бы они были явно инициализированы.
В DrawGLScene, есть строки:
Код:
glRotatef(lookupdown,1.0f,0,0);
glRotatef(sceneroty,0,1.0f,0);

glTranslatef(xtrans, ytrans, ztrans);

Вот они и задают позицию при каждом выводе изображения. Т.е. надо задать xtrans, ytrans, ztrans ...
Код:
typedef struct tagVERTEX         // Создаём стр-ру нашей вершины

{

      float x, y, z;    // 3D координаты

      float u, v;                // Координаты на текстуре

} VERTEX;                        // Обзовём это VERTEX

Т.е. каждая вершина привязана к точке в пространстве и имеет привязку к точке на текстуре. Про текстуру лучше почитать урок 6:http://pmg.org.ru/nehe/nehe06.htm

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: урок 10, вопрос по положению камеры и коорд. текстур
СообщениеДобавлено: 29 июл 2013 17:37 
Не в сети
Новичок

Зарегистрирован: 23 июл 2013 17:33
Сообщения: 3
по 1) добавил инициализацию в начало:
float zpos=8.0f;
и камера сдвинулась туда куда нужно было :)
по 2) относительно урока 6 - левый нижний угол 2D текстуры считался за (0, 0), и накладывался на 4-х угольник, а в уроке 10 он разбивался на 2 примитива - и эти треугольники меня запутали.
спс MagicWolf, найдя в уроке 6 и перечитав ещё раз этот кусочек текста, разобрался:
Цитата:
glTexCoord2f(0.0f, 1.0f); // Верх лево
glTexCoord2f(0.0f, 0.0f); // Низ лево
glTexCoord2f(1.0f, 0.0f); // Низ право
glTexCoord2f(1.0f, 1.0f); // Верх право


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: урок 10, вопрос по положению камеры и коорд. текстур
СообщениеДобавлено: 30 июл 2013 11:52 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Лучше всего думать о текстуре, как о снятой коже ;). Которую растянули на прямоугольник. Соответствено разные части текстуры будут отображены на разные грани объекта, когда эту текстуру будут натягивать на объект.

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

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


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

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


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

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