Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.29;
Скачать: CL | DM;

Вниз

Пересечение 3D объектов и лучей в GLScene   Найти похожие ветки 

 
pasha676   (2003-07-17 09:52) [0]

Сейчас попробую сформулировать вопрос.
Довольно стардантная функция - кликаем на сцене, показывается где кликнули на трехмерном объекте (как в примере с мухомором например в стандартной поставке ГЛСцене)

Такая фишка встречается часто и часто нужна. Выбор объектов. растановка на карте и т.д.
Мне бы хотелось узнать ее физическую и математическую подоплеку. Иными словами как это делается и по какому принцыпу работает.
В принцыпе я понимаю, что мы даем луч (отрезок) и ентот луч идет до пересечения с объектом. Но как это делается?

Так же хотелось бы, что бы кто-нибудь просветил меня по факту что именно делают функции

1) GLSceneViewer1.Buffer.PixelRayToWorld(x, y);
2) GLSceneViewer1.Buffer.ScreenToVector
3) GLObject.RayCastIntersect(Start, Vector, @iPoint, @iNormal);

Смысл последнего я еще просекаю (поправтье если не прав) находиться точка пересечения(вектор iPoint) и нормаль (вектор iNormal) в точке пересечения 3D объекта (GLObject) и луча (задается векторами положения - start и направления - vector). А вот смыслы первых двух от моего скудного разума ускальзают напрочь :(.


 
Darthman ©   (2003-07-17 10:26) [1]

Никаких лучей Вам не нужно. Нужно использовать буфер выбора Opengl.


 
pasha676   (2003-07-17 10:37) [2]

да просто хотелось бы разобраться. А что есть буфер выбора? И как это работает. Это и есть GLSceneViewer1.Buffer.PixelRayToWorld(x, y);?


 
Darthman ©   (2003-07-17 11:05) [3]

C GLscene не знаком... Как там все сделано не ведаю, однако в OpenGL есть W-buffer, соответственно и в GLScene тоже должен быть, как у наследника.
Буфер выбора позволяет проиндексировать все треугольники сцены и при "тычке" на форме получить индекс треугольника (-ков) оказавшегося под курсором.


 
pasha676   (2003-07-17 11:31) [4]

Пасибо. Буду искать.



Страницы: 1 вся ветка

Текущий архив: 2004.01.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
3-93365
Marina_S
2004-01-02 19:11
2004.01.29
Обновление формы в при нажатии кнопки


6-93597
Andrey V.
2003-11-25 13:30
2004.01.29
Прием-отправка файла


7-93704
Balkon
2003-11-13 10:01
2004.01.29
Как определить коорд. видимой части экрана, не закрытой Taskbar?


1-93451
ИМХО
2004-01-16 07:55
2004.01.29
Как оптимизировать работу с типизированным файлом?


3-93405
dtm
2003-12-29 18:56
2004.01.29
хранение данных в виде XML в СУБД FireBird