Войти
Уголок tool-программФорум

создание 3d редактора

#0
21:49, 18 фев. 2007

Делаю 3d-редактор карты высот.... как осуществить выбор вершин в перспективе?


#1
11:24, 3 мар. 2007

1. Находим в какой треугольник указываем
2. Находим указываемую точку на этом треугольнике
3. Выделяем ближайшую к этой точке вершину

#2
20:41, 3 мар. 2007

Black Angel
При каждом щелчке вертекс будет выделяться, а надо чтобы при близком щелчке вертекс выделялся...

#3
2:46, 4 мар. 2007

dex
3'. Ищем ближайшую к этой точке вершину
4. Проецируем ее на экран, смотрим на расстояние до точки щелчка, если оно <N пикселей (N=4, например) - выделяем.

#4
7:50, 11 июля 2007

Или так.

Определяем луч, проходящий от центра камеры через проекцию курсора, скажем на горизонтальную нулевую плоскость.
Ищем растояние от вершины до луча. Если растояние не превосходит некоторую константу эпсилон, выбираем вершину. Если таких вершин несколько, выбираем ближайшую... или при каждом клике выбираем из них по очереди.
Не забудь про оптимизацию. Чтобы не все вершины перебирать, а только потенциально возможные кандидаты.

В дальние вершины сложно будет попасть, но вот тебе перспективное выделение :-D

По сути - выбираешь точки попадающие в некий цилиндр, с радиусом эпсилон.

Или можешь воспользоваться конусом, с подобраными угловыми характеристиками.
Тогда избавишься от влияния перспективы. И на любом растоянии точки будут выделяться одинаково легко.

А определять пересечения луча с треугольниками - более накладно.
Тем более, если хочешь попасть по верхней вершине холмика, и щелкаешь чуть выше - без вариантов промахнешься, выделив вершину поближе к горизонту.

#5
11:30, 11 июля 2007

grea
спасибо конечно, но проблема уже давно решена ;)

Уголок tool-программФорум

Тема в архиве.