PMG

Форумы по созданию игр
Текущее время: 18 апр 2024 21:42

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Позиционирование камеры
СообщениеДобавлено: 06 май 2007 12:01 
Не в сети
Новичок

Зарегистрирован: 06 май 2007 11:44
Сообщения: 3
В Красной Книге OpenGL говорится,если gluLookAt в коде не встречается,то устанавливаются значения по умолчанию:камера в точке (0.0,0.0,0.0) и направлена вдоль отрицательного направления оси z
Так вот если я строю 2D объекты, а область вывода ограничена кубом со сторонами 1 ,почему я вижу их в случае
1)z>0,камера же смотрит в -z
2)z=0,по идее камера должна смотреть сквозь фигуру(их позиции совпадают)


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

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Xtreme, Ну так это же 2Д обьекты! Они всегда приклеены к камере!

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 май 2007 15:32 
Не в сети
Новичок

Зарегистрирован: 06 май 2007 11:44
Сообщения: 3
Assassin, просто получается камера в точке (0,0,0) и фигура тоже.К примеру,
если я возьму куб,а z координате камеры присвою z координату ближней к
точке (0,0,0) грань куба,то эта грань останется за камерой.В случае ,как в
след проге этого не происходит:



wglMakeCurrent(Canvas.Handle, hrc);
glViewPort (0, 0, ClientWidth, ClientHeight);
glClearColor (0.5, 0.5, 0.75, 1.0);
glClear (GL_COLOR_BUFFER_BIT);

glColor3f (1.0, 0.0, 0.5);
glBegin (GL_TRIANGLES); //треуг-ик
glVertex3f (-1, -1, H);
glVertex3f (-1, 1, H);
glVertex3f (1, 0, H); // Этот H я увеличиваю,если нажата левая кнопка мыши
// и уменьшаю ,если нажата вторая кнопка.Но не это важно,важно то,что когда H=0
// фигура видна,хотя в коде не встречается glLookAt(....) и в следствие
// этого камера установлена в точке (0.0,0.0,0.0) и направлена по
// оси -OZ.Напомню ещё,что объём видимости фигуры ограничен((-1,-1), (1,1)) .Поясните ещё случай, когда H=-1.

glEnd();

SwapBuffers(Canvas.Handle);
wglMakeCurrent(0, 0);


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

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - непробовал! ))

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


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

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Xtreme, А вобще как тебя это смущает,или тебе нужен какой то определённый эфект??

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 май 2007 17:03 
Не в сети
Новичок

Зарегистрирован: 06 май 2007 11:44
Сообщения: 3
Да нет,просто читаю щас книгу Краснова"Графика в проектах Delphi" и честно
говоря ****ался уже с gluPerspective,gluOrtho,gluFrustum,совсем запутался,
какая плоскость отсекает,в каких пределах изм зн-ия,какая аналогия
между рисованием 2D и 3D фигур...Но ничего,самое главное было понять ,что
где бы ни стояла камера,2D фигуры она покажет,т.к она,по твоим словам,приклеена к ним.
Да,кстати,
glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) попробовал,
не помогло...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 май 2007 18:31 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Xtreme, Да покажет если конечно эти 2Д фигуры ненаходятся с зади камеры,в этом случаи их естевственно небудет видно! Но вобщето для 2Д фигур неиспользуют Z координату!

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


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

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


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

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


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

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