Выделение полигона, на который наведен курсор

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

SergeyZuzic
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 20.03.2009 (Пт) 14:36

Выделение полигона, на который наведен курсор

Сообщение SergeyZuzic » 12.12.2010 (Вс) 17:45

Прочитал столько тем по Intersect, но так ничего и не вышло... Вообще требуется следующие есть несколько объектов и надо распознать другого игрока или моба. + Если делать программу для создания карт, то надо по этому индексу передвигать объект - как в 3d max. Если у кого есть время вышлю проект 183кб, чтобы мне объяснили куда и что впихнуть, а пока копаю сам...


Уменьшил до 60кб все файлы присутствуют - текстуры модели и т.д.

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Re: Выделение полигона, на который наведен курсор

Сообщение lellel » 12.12.2010 (Вс) 23:16

у тебя меши? что конкретно с интерсект не получается?
на счет редактора.. самое простое это проверить все объекты интерсектом и из тех что пересекает луч выбрать тот что ближе к камере. его и двигать.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Выделение полигона, на который наведен курсор

Сообщение Mikle » 13.12.2010 (Пн) 9:27

Для быстродействия можно предварительно отсеить объекты через интерсект луча с баундсферой объекта.

SergeyZuzic
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 20.03.2009 (Пт) 14:36

Re: Выделение полигона, на который наведен курсор

Сообщение SergeyZuzic » 13.12.2010 (Пн) 18:13

Выделение идет, но снова не там где надо :(
У вас нет доступа для просмотра вложений в этом сообщении.

SergeyZuzic
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 20.03.2009 (Пт) 14:36

Re: Выделение полигона, на который наведен курсор

Сообщение SergeyZuzic » 16.12.2010 (Чт) 17:58

Почему отрезок прямой всегда получается направленым в начало координат, я же его инвертирую от положения камеры? Из-за этого как раз и получается выделение неверным :(
Код: Выделить всё
With Vertices(0): .X = CamPos1.X: .Y = CamPos1.Y - 0.08: .z = CamPos1.z: End With
With Vertices(1): .X = CamPos1.X * -1: .Y = CamPos1.Y * -1 - 0.08: .z = CamPos1.z * -1: End With
У вас нет доступа для просмотра вложений в этом сообщении.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Re: Выделение полигона, на который наведен курсор

Сообщение DirectXManiac » 16.12.2010 (Чт) 19:14

И что это за код ты привел? Зачем отрезок инвертировать. Да и потом он проходит через начало координат твой отрезок... :)
Да и зачем * -1, не проще:
Код: Выделить всё
.X = -CamPos1.X
:wink:
#define ROFL 0xDDDD

SergeyZuzic
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 20.03.2009 (Пт) 14:36

Re: Выделение полигона, на который наведен курсор

Сообщение SergeyZuzic » 16.12.2010 (Чт) 20:01

Да проще =) разумеется, но уже просто крыша едит...
Вот доработал теперь не через начало координат и уже выделяется правильно, но надо подводить камеру вплотную к стене. Уже половину с проги чей-то "pricel" стянул.
Можешь посмотреть :D ?
У вас нет доступа для просмотра вложений в этом сообщении.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Re: Выделение полигона, на который наведен курсор

Сообщение DirectXManiac » 16.12.2010 (Чт) 21:29

К сожелению сейчас нет, ВБ6 не установлен. Кинь скрин, интересно глянуть, код смотрел - все вроде правильно :)
#define ROFL 0xDDDD

SergeyZuzic
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 20.03.2009 (Пт) 14:36

Re: Выделение полигона, на который наведен курсор

Сообщение SergeyZuzic » 17.12.2010 (Пт) 13:28

Вчера весь вечер код по стандартам оформлял =)

Вот я рисую примую (она на скринах) специально смещаю на 0.01, что бы её было видно:
Код: Выделить всё
With Vertices1(0): .X = CamPos.X: .Y = CamPos.Y + 0.01: .z = CamPos.z: End With
With Vertices1(1): .X = CamPos.X + Pov.X: .Y = CamPos.Y + Pov.Y: .z = CamPos.z + Pov.z: End With


На последнем скрине наведен курсор на 4 треугольник, а выделение на 3..


>>>Кстати я уже писал, что стянул часть программы с "pricel" там камера инвертирована, я не делал никаких изменений у меня камера нормально движется (мышь в верх - камера вверх, а в том проекте инверсия). Может из-за этого?
У вас нет доступа для просмотра вложений в этом сообщении.

SergeyZuzic
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 20.03.2009 (Пт) 14:36

Re: Выделение полигона, на который наведен курсор

Сообщение SergeyZuzic » 17.12.2010 (Пт) 18:03

******* Нет слов просто... все дело было в том, что направление задается вектором с координатами
Начало) камера+направление в паре
Конец) только направление

И это я заметил только, через 5 часов просмотра кода =)\



Тему можно закрыть, а почему нет опции "Закрыть тему"? Или есть?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Выделение полигона, на который наведен курсор

Сообщение iGrok » 17.12.2010 (Пт) 19:03

SergeyZuzic писал(а):а почему нет опции "Закрыть тему"?

А зачем? Здесь принято закрывать только темы, которые вырождаются в потоки флуда/флейма или как-то ещё нарушают правила.
label:
cli
jmp label


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList