Название: как оформить выбор и нажатие 3d объекта? Отправлено: ded от Август 29, 2021, 15:38 Приветствую!
На сцене нужно организовать несколько 3d объектов и при нажатии на них организовать какое либо действие. Подскажите куда смотреть и как правильно организовать? Название: Re: как оформить выбор и нажатие 3d объекта? Отправлено: Igors от Август 30, 2021, 04:38 На сцене нужно организовать несколько 3d объектов и при нажатии на них организовать какое либо действие. Не стоит нарываться на "какой-либо" ответ :) Лучше уточнить, типа "например переместить объект(ы) в сцене"Подскажите куда смотреть и как правильно организовать? Опять нужна конкретика: "на чем" (на какой либе, API) Вы собрались это делать? Напр на голом/чистом OpenGL - это работа на месяцы, с упрощениями - на недели. Название: Re: как оформить выбор и нажатие 3d объекта? Отправлено: qtkoder777 от Август 30, 2021, 17:24 Напр на голом/чистом OpenGL - это работа на месяцы, с упрощениями - на недели. В самом старом OpenGL был механизм "selection", позволяющий определить на какой полигон щёлкнули.Название: Re: как оформить выбор и нажатие 3d объекта? Отправлено: __Heaven__ от Август 31, 2021, 10:05 Я подобную задачу решаю на плюсовом коде. Клик пользователя преобразую в линию, ищу пересечение этой линии с параллелепипедами, которые описывают объекты. Если таких больше 1, то ищу пересечения с треугольниками в объектах
Название: Re: как оформить выбор и нажатие 3d объекта? Отправлено: Igors от Август 31, 2021, 15:30 Да, ответ на (первый взгляд) простой вопрос - обширнвя тема :)
В самом старом OpenGL был механизм "selection", позволяющий определить на какой полигон щёлкнули. "Было да сплыло" как началась котовасия с шейдерами. Можно протолунуться через "compatibility profile" но это бесперспективноЯ подобную задачу решаю на плюсовом коде. Клик пользователя преобразую в линию, ищу пересечение этой линии с параллелепипедами, которые описывают объекты. Если таких больше 1, то ищу пересечения с треугольниками в объектах Говорят просто "куб" или "bounding box", всем ясно что он может иметь разные размеры по осям. И точнее "луч" вместо "линия". И фейс - не только треугольник. Да, если выбор только объектов целиком - то можно отделаться bounding box'ом. Впрочем и тут .. такие милые задачки как пересечение луча с кубом многих раздражают, ведь хочется "взять готовое и не париться", но так не выходит :) А вот с выбором фейсов или вертексов - мрачно. Sofware реализация несложна, но может оказаться недостаточной по скорости. Популярный совет - рендерить каждый фейс своим цветом и потом читать картинку. Лично мне такой способ не кажется хорошим - возможности ограничены, а возни с шейдерами все равно немало Название: Re: как оформить выбор и нажатие 3d объекта? Отправлено: ssoft от Сентябрь 02, 2021, 08:15 На сцене нужно организовать несколько 3d объектов и при нажатии на них организовать какое либо действие. Подскажите куда смотреть и как правильно организовать? Если имеется в виде QGraphicsScene, то смотреть нужно в сторону QGraphicsItem и его методов. Если самостоятельная реализация событий на OpenGL, то в сторону http://www.prog.org.ru/index.php?topic=32756 Название: Re: как оформить выбор и нажатие 3d объекта? Отправлено: ded от Сентябрь 09, 2021, 09:57 Спасибо за понимание и сдержанность =)
В общем на QML получилось выделать 3d обьекты на view3d с помощью включения свойства pickable, есть пример. Но появился новый вопрос - я вращаю обьект мышью по mousearea, которая настроена на область обьекта.. Для выбора обьекта mousearea должна быть растянута на весь view3d, но тогда не вращается обьект по событию мыши... В общем mousearea для pick перекрывает mousearea для вращения объекта и не работают кнопки расположенные под этим mousearea. Как поступают в данном случае? Название: Re: как оформить выбор и нажатие 3d объекта? Отправлено: Igors от Сентябрь 10, 2021, 10:04 Типичные проблемы "высокоуровневого" API. Да, оно вроде "все делает" и экономит массу времени и сил, но... с др стороны...
Для выбора обьекта mousearea должна быть растянута на весь view3d, но тогда не вращается обьект по событию мыши... Ничего не знаю про QML, но с точки зрения здравого смысла - бред собачий. При одном view выбор работает, при другом - нет. С какого перепугу ??? Откуда взялось такое ограничение?В общем, связались с этой свисто-перделкой - вот в разделе QML и спрашивайте Название: Re: как оформить выбор и нажатие 3d объекта? Отправлено: ded от Сентябрь 10, 2021, 13:21 Типичные проблемы "высокоуровневого" API. Да, оно вроде "все делает" и экономит массу времени и сил, но... с др стороны... Для выбора обьекта mousearea должна быть растянута на весь view3d, но тогда не вращается обьект по событию мыши... Ничего не знаю про QML, но с точки зрения здравого смысла - бред собачий. При одном view выбор работает, при другом - нет. С какого перепугу ??? Откуда взялось такое ограничение?В общем, связались с этой свисто-перделкой - вот в разделе QML и спрашивайте все что вы сказали, к сожалению правда... но так это хобби, то сойдет. подскажите пожалуйста тогда верный путь Название: Re: как оформить выбор и нажатие 3d объекта? Отправлено: Igors от Сентябрь 10, 2021, 14:37 подскажите пожалуйста тогда верный путь Ну такой путь необязательно должен быть/существовать, ларчик может просто "не открываться" :) В рамках хобби - не знаю, есть смысл еще поковыряться с QML, может и проскочите |