![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вопрос по 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 более универсален