· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.DIRECTX.OPENGL —› Помогите понять

Посл.отвђт Сообщенiе


Дата: Мар 31, 2004 15:39:44

Видимо я туп, как пробка
Не судите строго, вопрос ламерский.
1. Каким проклятым образом задаются трехмерные координаты в OGL?
пример: рисую линию
[skip]
invoke glVertex3f,dword ptr[n0],dword ptr[n0],dword ptr[n0]
invoke glVertex3f,dword ptr[n1],dword ptr[n0],dword ptr[n0]
n0 n1 - координаты FP
понятно, что первые две - x и y. А третья? задаю параметр - нет изменений! Подскажите ламеру ( признаю, признаю!!! я только начал!!!) в чем я не прав?
PS: "введение в OGL" прочитал. Толку мало.


Дата: Мар 31, 2004 16:06:45

tihon

Ну не стоит так себя недооценивать, имхо.


Координаты - x, y, z.
Возьмем карандаш и посмотрим на него одним глазом (второй закроем). Как бы мы не крутили карандаш в 3Д - он будет выглядеть линией + (точкой в некоторых случаях). Как бы Вы не меняли координаты линии она всё равно останется линией (или станет точкой). Какие изменения Вы хотели увидеть?


Дата: Мар 31, 2004 16:17:37 · Поправил: tihon

Какие изменения Вы хотели увидеть?
Да вот что интересно: Если моя камера стоит параллельно оси z, то если я рисую линию по оси z она должна выглядеть как точка, это понятно. Но у меня так не происходит, это раз, то есть не видно НИЧЕГО.
Второй вопрос:
Как мне сменить координаты камеры (то бишь порта просмотра) и угол просмотра? Через какую функцию при инициализации это задается?
Допустим, что я нарисовал:
invoke glTranslatef,dword ptr [n0],dword ptr [n0],dword ptr [nm6]
invoke glBegin,GL_LINE_STRIP
invoke glVertex3f,dword ptr[n0],dword ptr[n0],dword ptr[n0]
invoke glVertex3f,dword ptr[n0],dword ptr[n1],dword ptr[n0]
invoke glVertex3f,dword ptr[n1],dword ptr[n1],dword ptr[n0]
invoke glVertex3f,dword ptr[n0],dword ptr[n0],dword ptr[n0]
invoke glVertex3f,dword ptr[n0],dword ptr[n0],dword ptr[n1]
invoke glVertex3f,dword ptr[n0],dword ptr[n1],dword ptr[n0]
invoke glVertex3f,dword ptr[n1],dword ptr[n1],dword ptr[n0]
invoke glEnd
Должно это быть обьемным треугольником, но видимо из за того, что камера смотрит параллельно оси z я вижу на экране треугольник 2D. математика работает, то есть если перемещаю систему координат (glTranslatef)по оси Z мой объект увеличивается или уменьшается. Как мне терперь взглянуть на него "сбоку"? Или я что-то недопонял в самой структуре OpenGL?


Дата: Мар 31, 2004 18:20:42 · Поправил: Black_mirror

tihon
Как мне терперь взглянуть на него "сбоку"?
Самый простой вариант это использовать gluLookAt. Первые три числа это координаты камеры, вторая тройка это координаты точки на которую напрвлена камера, и последние три числа это вектор, который указывает где у камеры верх.
Хотя матрицу проецирования вычислить самому. Но это путь для маньяков.

740148063__gllab.zip


Дата: Апр 2, 2004 15:02:49

в вычислении матрицы проецирования нет ничего маньячного.
а tihon советую посмотреть для начала примеры Nehe.gamedev.net, сходить на gamedev.ru


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.090