Название: исходник, для выделения объектов. Отправлено: →|๖ۣۜDen|← от 04 Апреля 2010, 14:30:39 На данном этапе реализована обычная область выделения (прямоугольник) ۜQ 4.3
Немаловажный вопрос: а, собсно, как выделять? В 3D max реализовано два способа выделения: по первому пересечению с выделяемой областью и с полным выделением объектов, входящих в область выделения. Название: Re: исходник, для выделения объектов. Отправлено: Ruslan от 04 Апреля 2010, 14:46:53 Ден привет!
у тебя на данном этапе, рамка выделения в мировых координатах, будет ли режим «в экранных»? по поводу вопроса, лучше, конечно же, если будет возможность и так и так, но в большинстве случаев, на мой взгляд, достаточно первого варианта. Название: Re: исходник, для выделения объектов. Отправлено: →|๖ۣۜDen|← от 04 Апреля 2010, 14:53:24 Цитировать будет ли режим «в экранных»? Почему бы и нет :)Сейчас пробую намутить само выделение. Вообщем сделаю несколько версий. Раздолье для всех :D С Праздником! ;D Итак, на данном этапе реализовано выделение объектов, исходя из положения pivot pointo'в объектов, без какого-либо пересечения выделяемой области и объектов. Одна математика. Для простоты нужные параметры засунул в массив, поэтому при добавлении нового объекта следует занести лишь 2 координаты объекта. Название: Re: исходник, для выделения объектов. Отправлено: →|๖ۣۜDen|← от 05 Апреля 2010, 23:32:54 Следующая версия: 8) пока что те же мировые координаты, с одним лишь отличием от предыдущей версии: выделение происходит сразу, как только область выделения захватывает объект. Происходит просчёт коллизии баунд бокса, образованного областью выделения, и самих объектов с помощью CollisionBoxCheck.
Теперь достаточно протягивать мышью лишь до первого пересечения выделяемой области и объекта. зы. дабы случайно не выделить объекты, проводя операции с нажатием на кнопку мыши, выделение теперь производится комбинацией LCtrl+ лкм. Название: Re: исходник, для выделения объектов. Отправлено: →|๖ۣۜDen|← от 08 Апреля 2010, 23:21:05 →Обычная область выделения в экранных координатах.
Существует некоторый квестобаг, при котором, будучи в камере - одна матрица просмотра, а в камере редактора - другая, всвязи с этим, некоторые расхождения в считывании координат мыши, вернее проблемы в самих матрицах, не пойму почему они различаются..но это не глобальная проблема, в конечном счёте на выходе будет скомпилированные файл, который не будет знать, что такое камера редактора :P Чтобы не было страшно, подогнал "выделение" под размер и под обычную камеру, и под редакторовскую. Смена режимов пробелом. Название: Re: исходник, для выделения объектов. Отправлено: →|๖ۣۜDen|← от 09 Апреля 2010, 20:12:47 →Полноценный селекш объектов, по их пивотам в экранных координатах.
Теперь умеем выделять объекты по центру объекта ;) Название: Re: исходник, для выделения объектов. Отправлено: Ruslan от 09 Апреля 2010, 22:29:22 то что надо! ;)
Название: Re: исходник, для выделения объектов. Отправлено: →|๖ۣۜDen|← от 09 Апреля 2010, 22:50:57 Ага, осталось допереть, как жэ это сделать по первому касанию. По поводу CollisionBoxCheck пока мыслей нет.
Появились некоторые мысли относительно такого интересного величинного оператора как Check AABB visible: подсоединяется матрица-потомок 3д объекта, которая служит проверкой - является ли объект видимым для текущей камеры (будь то редакторова или обычная), - и выдаётся соответсвенно 0/1. Вот здесь вся проблема - для текущей камеры. Имхо, если бы было возможно проверять видимость для определённой камеры, которая не выбрана в качестве основной, то можно было бы соорудить нехитрую схему (см. скрин): Суть в том, чтобы создать целевую камеру, у которой центр будет совпадать с центром основной камеры просмотра(1), а её цель находится в центре выдеяемой области(2). Мы имеем дли́ны выделяемой области => по некоторой формуле можно будет получить размер окна просмотра целевой камеры. Таким образом мы проверяем видимость объекта по целевой камере, а следовательно и по области выделения. Главный вопрос - возможно ли проводить проверку ААББ для произвольной камеры ??? |