Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вопрос по openlG


nuflin ©   (2006-12-22 17:14:00) 

как найти проекцию точки на экран
например есть точка
 glBegin(GL_POINTS);
       glvertex(0,0,0);
   glEnd();
как найти её координаты на экране


ors_archangel   (2006-12-22 22:52:00) [1]

А декларации такие:
 
mv,pm:array[0..15] of Double;
vp:array[0..15] of Integer;

есть?


nuflin   (2006-12-22 22:45:00) [2]

пишу
glGetDoublev(GL_MODELVIEW_MATRIX,@mv);
glGetDoublev(GL_PROJECTION_MATRIX,@pm);
glGetIntegerv(GL_VIEWPORT,@vp);

 gluProject(x1,y1,z1,@mv,@pm,@vp,x2,y2,z2);

но x2,y2,z2 всегда одинаковые


ors_archangel   (2006-12-22 20:07:00) [3]

Из OpenGL-движка моего друга, который называется 3gon-engine:

procedure GetMatrices;
begin
 glGetDoublev(GL_MODELVIEW_MATRIX,@mv);
 glGetDoublev(GL_PROJECTION_MATRIX,@pm);
 glGetIntegerv(GL_VIEWPORT,@vp);
end;
gluProject(v.x,v.y,v.z,@mv,@pm,@vp,x,y,z);

Но учти, что gluProject написан очень плохо, я как-то написал функцию, которая делала аналогичную работу, но работала на 400% быстрее, приводить не буду, потому что её использование зависит от того, как ты устанавливаешь камеру и т.д., а gluProject более универсален


Наверх

Титульная страница Поиск, карта сайта Написать письмо