PMG https://forum.pmg.org.ru/ |
|
урок 10, вопрос по положению камеры и коорд. текстур https://forum.pmg.org.ru/viewtopic.php?f=1&t=9460 |
Страница 1 из 1 |
Автор: | wolver [ 24 июл 2013 14:51 ] |
Заголовок сообщения: | урок 10, вопрос по положению камеры и коорд. текстур |
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-х точек треугольника отвечает для текстуры? |
Автор: | MagicWolf [ 29 июл 2013 11:51 ] |
Заголовок сообщения: | Re: урок 10, вопрос по положению камеры и коорд. текстур |
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 |
Автор: | wolver [ 29 июл 2013 17:37 ] |
Заголовок сообщения: | Re: урок 10, вопрос по положению камеры и коорд. текстур |
по 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); // Верх право |
Автор: | MagicWolf [ 30 июл 2013 11:52 ] |
Заголовок сообщения: | Re: урок 10, вопрос по положению камеры и коорд. текстур |
Лучше всего думать о текстуре, как о снятой коже . Которую растянули на прямоугольник. Соответствено разные части текстуры будут отображены на разные грани объекта, когда эту текстуру будут натягивать на объект. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |