20 Мая 2024, 06:55:59
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > База исходников (cgr/igr) > исходник, для выделения объектов.
исходник, для выделения объектов.
(Прочитано 8042 раз)
  [1]
Печать
→|๖ۣۜDen|← | ***** | Администратор | Ветеран | Сообщений: 570 | « 04 Апреля 2010, 14:30:39 »
исходник, для выделения объектов. |
0
На данном этапе реализована обычная область выделения (прямоугольник) ۜQ 4.3
Немаловажный вопрос: а, собсно, как выделять? В 3D max реализовано два способа выделения: по первому пересечению с выделяемой областью и с полным выделением объектов, входящих в область выделения.

* T.B.v.1.0.JPG (7.33 Кб, 436x318 - просмотрено 1394 раз.)

* selection_types.JPG (1.62 Кб, 84x41 - просмотрено 1503 раз.)
* Tipa_Bbldelenie.v.1.0.cgr (141.71 Кб - загружено 752 раз.)
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #1 04 Апреля 2010, 14:46:53 »
Re: исходник, для выделения объектов. |
1
Ден привет!
у тебя на данном этапе, рамка выделения в мировых координатах, будет ли режим «в экранных»?
по поводу вопроса, лучше, конечно же, если будет возможность и так и так, но в большинстве случаев, на мой взгляд, достаточно первого варианта.
→|๖ۣۜDen|← | ***** | Администратор | Ветеран | Сообщений: 570 | «Ответ #2 04 Апреля 2010, 14:53:24 »
Re: исходник, для выделения объектов. |
2
Цитировать
будет ли режим «в экранных»?
Почему бы и нет Улыбающийся
Сейчас пробую намутить само выделение.
Вообщем сделаю несколько версий. Раздолье для всех Веселый
С Праздником! Смеющийся

Итак, на данном этапе реализовано выделение объектов, исходя из положения pivot pointo'в объектов, без какого-либо пересечения выделяемой области и объектов. Одна математика.
Для простоты нужные параметры засунул в массив, поэтому при добавлении нового объекта следует занести лишь 2 координаты объекта.

* Tut.v.1.1.JPG (216.76 Кб, 1280x1607 - просмотрено 1393 раз.)
* Tipa_Bbldelenie.v.1.1.cgr (195.6 Кб - загружено 742 раз.)
« Последнее редактирование: 04 Апреля 2010, 16:54:49 от →|๖ۣۜDen|← »
→|๖ۣۜDen|← | ***** | Администратор | Ветеран | Сообщений: 570 | «Ответ #3 05 Апреля 2010, 23:32:54 »
Re: исходник, для выделения объектов. |
3
Следующая версия: Крутой пока что те же мировые координаты, с одним лишь отличием от предыдущей версии: выделение происходит сразу, как только область выделения захватывает объект. Происходит просчёт коллизии баунд бокса, образованного областью выделения, и самих объектов с помощью CollisionBoxCheck.
Теперь достаточно протягивать мышью лишь до первого пересечения выделяемой области и объекта.
зы. дабы случайно не выделить объекты, проводя операции с нажатием на кнопку мыши, выделение теперь производится комбинацией LCtrl+ лкм.

* selection_1.jpeg (2.25 Кб, 41x41 - просмотрено 1070 раз.)

* Tut.v.1.2.JPG (208.85 Кб, 1280x1279 - просмотрено 1418 раз.)
* Tipa_Bbldelenie.v.1.2_fixed.cgr (180.75 Кб - загружено 738 раз.)
« Последнее редактирование: 06 Апреля 2010, 14:06:41 от →|๖ۣۜDen|← »
→|๖ۣۜDen|← | ***** | Администратор | Ветеран | Сообщений: 570 | «Ответ #4 08 Апреля 2010, 23:21:05 »
Re: исходник, для выделения объектов. |
4
Обычная область выделения в экранных координатах.
Существует некоторый квестобаг, при котором, будучи в камере - одна матрица просмотра, а в камере редактора - другая, всвязи с этим, некоторые расхождения в считывании координат мыши, вернее проблемы в самих матрицах, не пойму почему они различаются..но это не глобальная проблема, в конечном счёте на выходе будет скомпилированные файл, который не будет знать, что такое камера редактора Показает язык
Чтобы не было страшно, подогнал "выделение" под размер и под обычную камеру, и под редакторовскую. Смена режимов пробелом.
* Tipa_Bbldelenie.v.2.0.cgr (151.26 Кб - загружено 780 раз.)
→|๖ۣۜDen|← | ***** | Администратор | Ветеран | Сообщений: 570 | «Ответ #5 09 Апреля 2010, 20:12:47 »
Re: исходник, для выделения объектов. |
5
Полноценный селекш объектов, по их пивотам в экранных координатах.
Теперь умеем выделять объекты по центру объекта Подмигивающий

* Tut.v.2.1.jpg (247.01 Кб, 1280x1065 - просмотрено 1437 раз.)
* Tipa_Bbldelenie.v.2.1.cgr (132.92 Кб - загружено 801 раз.)
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #6 09 Апреля 2010, 22:29:22 »
Re: исходник, для выделения объектов. |
6
то что надо!  Подмигивающий
→|๖ۣۜDen|← | ***** | Администратор | Ветеран | Сообщений: 570 | «Ответ #7 09 Апреля 2010, 22:50:57 »
Re: исходник, для выделения объектов. |
7
Ага, осталось допереть, как жэ это сделать по первому касанию. По поводу CollisionBoxCheck пока мыслей нет.

Появились некоторые мысли относительно такого интересного величинного оператора как Check AABB visible: подсоединяется матрица-потомок 3д объекта, которая служит проверкой - является ли объект видимым для текущей камеры (будь то редакторова или обычная), - и выдаётся соответсвенно 0/1.
Вот здесь вся проблема - для текущей камеры.
Имхо, если бы было возможно проверять видимость для определённой камеры, которая не выбрана в качестве основной, то можно было бы соорудить нехитрую схему (см. скрин):
Суть в том, чтобы создать целевую камеру, у которой центр будет совпадать с центром основной камеры просмотра(1), а её цель находится в центре выдеяемой области(2).
Мы имеем дли́ны выделяемой области => по некоторой формуле можно будет получить размер окна просмотра целевой камеры.
Таким образом мы проверяем видимость объекта по целевой камере, а следовательно и по области выделения.
Главный вопрос - возможно ли проводить проверку ААББ для произвольной камеры Непонимающий

* new_things.JPG (21.47 Кб, 520x176 - просмотрено 1368 раз.)
« Последнее редактирование: 23 Апреля 2010, 21:26:07 от →|๖ۣۜDen|← »
 
  [1]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > База исходников (cgr/igr) > исходник, для выделения объектов.
Перейти в: