Вопрос с 3д Камерой и мышью

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

Модератор: Mikle

MamoN2
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 96
Зарегистрирован: 19.12.2004 (Вс) 5:11
Откуда: Genichesk, UA

Вопрос с 3д Камерой и мышью

Сообщение MamoN2 » 03.10.2005 (Пн) 20:18

Дано:
камера вращаемая по сфере, короче как в Варкрафте.
Задача:
узнать точку в которую на земле(Y=0) указала мышь.

Камера устанавливаеться по формулам:

Camera.Y = CamGroundXY.Y + camDist * Sin(CPosY)
Camera.X = CamGroundXY.X + camDist * Cos(CPosY) * Sin(CPosX)
Camera.Z = CamGroundXY.X + camDist * Cos(CPosY) * Cos(CPosX)
CAMERA.Set_Rotation -CPosY, -3.14 - CPosX, 0

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 03.10.2005 (Пн) 22:04

DX SDK тебе в руки. Смотри функции с MousePick.
ХЎ

MamoN2
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 96
Зарегистрирован: 19.12.2004 (Вс) 5:11
Откуда: Genichesk, UA

Сообщение MamoN2 » 04.10.2005 (Вт) 6:35

Нет я использую движок, так что мне нужны именно формулы или ссылка на статью!

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 04.10.2005 (Вт) 21:06

какой движок? в движке должны быть соотв. ф-ции.
ХЎ

MamoN2
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 96
Зарегистрирован: 19.12.2004 (Вс) 5:11
Откуда: Genichesk, UA

Сообщение MamoN2 » 05.10.2005 (Ср) 1:08

Ну нет там такой функции!
Я что совсем дятел-светоч-тупости?
Была бы не справшивал!

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 06.10.2005 (Чт) 19:27

какой двиг? телепаты все в Трепе сидят :lol:
ХЎ

MamoN2
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 96
Зарегистрирован: 19.12.2004 (Вс) 5:11
Откуда: Genichesk, UA

Сообщение MamoN2 » 07.10.2005 (Пт) 7:32

NemoX - да это не важно! Я жговорю чито математическим путём надо выщитывать! А искать что то типа ScreenToWorld в нете бесполезно, там только обсуждение этой функции, а не её переписывание! :(

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

Сообщение Mikle » 07.10.2005 (Пт) 9:54

Я когда-то в этом форуме уже отвечал, даже делал демку, поищи.
А вообще-то это школьная геометрия, может стоит подучить?

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 07.10.2005 (Пт) 19:37

Mikle, дело в том, что бесполезно что-то придумывать, если двиг не предоставляет доступ к геометрии объектов. Поэтому я и спрашивал, что за двиг.

MamoN2, скачай iRender с сайта http://irender3d.com . Двиг явно не хуже, при этом нужная тебе функция там есть.
ХЎ

MamoN2
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 96
Зарегистрирован: 19.12.2004 (Вс) 5:11
Откуда: Genichesk, UA

Сообщение MamoN2 » 08.10.2005 (Сб) 7:35

Все двиг предоставляет! Мне нужны формулы(математические) и ничего более!
Айрендер отстой!

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 08.10.2005 (Сб) 11:16

ну вот, обосрали...
ХЎ

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 08.10.2005 (Сб) 16:08

MamoN2
и что же тогда не отстой?

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 08.10.2005 (Сб) 17:05

А у меня сайтик чето не пашет

MamoN2

ну я думаю у тебя есть точка нахождения камеры и то место куда она смотрит
нужно найти место но экране где был клик и передвинуть этот вектор

затем нужно проверить где этот вектор пересечет землю

:roll:

MamoN2
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 96
Зарегистрирован: 19.12.2004 (Вс) 5:11
Откуда: Genichesk, UA

Сообщение MamoN2 » 09.10.2005 (Вс) 7:24

iRender - херовый движ, потому, что на него даже примеров нормальных нет! Если человек неможет написать нормальные примеры, то и двиг он нормальный написать не может!
И нечего его хвалить потому, что "его Орбит написал"!

Нет нужно просто написать функцию ScreenToWorld(название аналога в некоторых движах), которая преобразует координаты мыши на экране, в мышь в мировых координатах!
Без ДХ, чистой математикой!

MamoN2
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 96
Зарегистрирован: 19.12.2004 (Вс) 5:11
Откуда: Genichesk, UA

Сообщение MamoN2 » 09.10.2005 (Вс) 7:30

"Дело в том, что бесполезно что-то придумывать, если двиг не предоставляет доступ к геометрии объектов. Поэтому я и спрашивал, что за двиг."

Что значит не предоставляет доступ к геометрии: Х,Y,Z- вот мои документы!

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

Сообщение Mikle » 09.10.2005 (Вс) 9:24

MamoN2
Оценивать iRender будем, когда будет с чем сравнить.

Если твой мир, это Mesh или несколько Mesh-ей, можно использовать D3DX8.Intersect.
Есть самый общий способ - имея матрицы проекции и камеры, можно взять из Z-буфера в точке клика значение глубины и вычислить 3D координаты. Сам такое не пробовал, но проблем не вижу, кроме чтения Z-буфера.

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

D'alex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 08.05.2004 (Сб) 20:11
Откуда: Moscow

Сообщение D'alex » 09.10.2005 (Вс) 13:29

Вступлюсь за OrBit'а....
Заранее извеняюсь перед всеми, но накипело...
Хреновый движек у тебя в голове...
Если ты думаешь , что двиг написать очень просто, то не задавай вопросов-ПИШИ САМ...
Ты вообще не в праве его оценивать, т.к не работал с ним...
Далее по делу:
-Работа над iRender стоила человеку(причем одному) почти два года...
-Двиг абсолютно бесплатный и не претендует на звание супер-пупер,
а уж тем более не звание хреновый...
-В последнем SDK более 35 примеров использования функций движка...(разуй глаза) если тебя не устраивают возможности двига
то это не проблема автора- ты ему денег не платишь...
-Кроме того было полностью реализовано две простейшие игры...
-Были написаны ,по одному уровню в каждом , два 3D экшена-
один из которых был оценен , как самый популярный пример месяца
на ПланетСорче...
-После выпуска двига сайт iR был одним и самых популярных в рейтингах различный компаний...

А ты говоришь хреновый...

Удачи...
Последний раз редактировалось D'alex 09.10.2005 (Вс) 13:59, всего редактировалось 1 раз.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 09.10.2005 (Вс) 13:38

MamoN2 писал(а):iRender - херовый движ, потому, что на него даже примеров нормальных нет! Если человек неможет написать нормальные примеры, то и двиг он нормальный написать не может!
И нечего его хвалить потому, что "его Орбит написал"!

Нет нужно просто написать функцию ScreenToWorld(название аналога в некоторых движах), которая преобразует координаты мыши на экране, в мышь в мировых координатах!
Без ДХ, чистой математикой!


нда, а я чуть было не обиделся на замечания. без dx нихрена ты не сделаешь, потому что
1)двиг использует мировые координаты dx
2)двиг использует проекцию dx
3)двиг использует плоскости отсечения вида dx

это невозможно, так что забудь. А в iR такая возможность была :tongue:

тему про iR предлагаю закрыть, ибо ты, MamoN2, сам не знаешь о чем говоришь.
ХЎ

D'alex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 08.05.2004 (Сб) 20:11
Откуда: Moscow

Re: Вопрос с 3д Камерой и мышью

Сообщение D'alex » 09.10.2005 (Вс) 13:49

[quote="MamoN2"]Дано:
камера вращаемая по сфере, короче как в Варкрафте.
Задача:
узнать точку в которую на земле(Y=0) указала мышь.

Кстати iR выполняет данную задачу одной из функций для террайна... :D

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 09.10.2005 (Вс) 16:03

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

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 09.10.2005 (Вс) 17:13

Ноги тогда уж

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.10.2005 (Вс) 17:40

Ой, всё же скажу.

2 MamoN2

Я тебе предлагал писать на чистом DX или на BB. Решения там одинаковы. В BB поддержка и b3d, и bsp есть. NemoX писал не я, помочь ничем не могу (как и большинство с этого форума). Пиши на DX/BB, помогу.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

MamoN2
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 96
Зарегистрирован: 19.12.2004 (Вс) 5:11
Откуда: Genichesk, UA

Сообщение MamoN2 » 10.10.2005 (Пн) 7:46

Вы меня уже достали! До вас, что недоходит програмисты доморощеные? Я же говорю мне нужно решение проблемы чисто математически!
Посреди разработки движи не меняют! Никуда я переходить не буду! И если видети ли какой-то функции нет, то это не повод переходить на что-то другоге(так вообще никогда ничего не напишешь!)
И нечего защищать ИР - сколько б его не делал Орбит, мне абсолютно не нравиться:
1) его FPS;
2) его примеры!
И мне абсолютно побоку сколько он вложил в него денег, нервов и времени - мне нужен движ, когторый подходит для меня, а не русский (бесплатный).
-Тема про ир закрыта-

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 10.10.2005 (Пн) 10:12

нет. таким нужно вырезать остатки мозга. напихать ваты, и поставить в музее. Чтобы всё что он мог сделать это молча пускать слюни и икать. Чтоб из этой поганой пасти больше ни слова не вылетело.

А я бы подошёл с ноутбуком и поиграл бы перед ним в ку3.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 10.10.2005 (Пн) 16:55

nekeda писал(а):нет. таким нужно вырезать остатки мозга. напихать ваты, и поставить в музее. Чтобы всё что он мог сделать это молча пускать слюни и икать. Чтоб из этой поганой пасти больше ни слова не вылетело.

А я бы подошёл с ноутбуком и поиграл бы перед ним в ку3.


а мне просто хочется послать на xyй* данную персону. Ибо если его все достали, то нет смысла ему торчать здесь, средь "доморощенных программистов".

*первые две буквы слова - английские буквы "икс" и "игрек", ничего общего со словом, имеющим русский эквивалент, данное не имеет. Следует произносить его как "иксыгрекий".
ХЎ

_Brodyaga
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 104
Зарегистрирован: 11.09.2005 (Вс) 11:14
Откуда: Казахстан 70х83

Сообщение _Brodyaga » 24.10.2005 (Пн) 21:55

У каждого свои требования, нужно было бы закрыть тему при первом же посте, ответили на вопрос и усе, а демагогию разводить не надо...правда Мамонт погорячился дейстительно, но и вы насчет музея рук и ног тоже:)
Мораль сей басни такова, соблюдать такт необходимо даже при высказывании своего мнения...
Счастливых программистов очень мало на свете...


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

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

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

    TopList