PMG
https://forum.pmg.org.ru/

Позиционирование камеры
https://forum.pmg.org.ru/viewtopic.php?f=1&t=2476
Страница 1 из 1

Автор:  Xtreme [ 06 май 2007 12:01 ]
Заголовок сообщения:  Позиционирование камеры

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

Автор:  Assassin [ 06 май 2007 15:00 ]
Заголовок сообщения: 

Xtreme, Ну так это же 2Д обьекты! Они всегда приклеены к камере!

Автор:  Xtreme [ 06 май 2007 15:32 ]
Заголовок сообщения: 

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);

Автор:  Assassin [ 06 май 2007 15:45 ]
Заголовок сообщения: 

glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - непробовал! ))

Автор:  Assassin [ 06 май 2007 15:46 ]
Заголовок сообщения: 

Xtreme, А вобще как тебя это смущает,или тебе нужен какой то определённый эфект??

Автор:  Xtreme [ 06 май 2007 17:03 ]
Заголовок сообщения: 

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

Автор:  Assassin [ 06 май 2007 18:31 ]
Заголовок сообщения: 

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

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/