Понедельник, 02 Декабря 2024, 07:56

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Конвертирование экранных координат мыши в трехмерные
netskulДата: Понедельник, 01 Июля 2013, 16:30 | Сообщение # 1
был не раз
Сейчас нет на сайте
Всем привет! Пишу свою 3д игру на своем движке и тут возникла проблема с конвертированием экранных координат мыши в трехмерные и решил писать свой скрипт:
Цитата

double xx=ObjectGetAbsolutePosition(camera,0);
double yy=ObjectGetAbsolutePosition(camera,1);
double zz=ObjectGetAbsolutePosition(camera,2);
double dx=ObjectGetDirection(camera,0);
double dy=ObjectGetDirection(camera,1);
double dz=ObjectGetDirection(camera,2);
double tfov=0.41421356237;
double ux=ObjectGetUpVector(camera,0)*tfov;
double uy=ObjectGetUpVector(camera,1)*tfov;
double uz=ObjectGetUpVector(camera,2)*tfov;
double vx=ObjectGetLeftVector(camera,0)/2.2;
double vy=ObjectGetLeftVector(camera,1)/2.2;
double vz=ObjectGetLeftVector(camera,2)/2.2;
double mouse_x=MouseGetX();
double mouse_y=MouseGetY();
double width=2*mouse_x/s_width-1;
double height=1-2*mouse_y/s_height;
double mx = dx+ux*height-vx*width;
double my = dy+uy*height+vy*width;
double mz = dz+uz*height+vz*width;
double place_x=xx-yy*mx/my;
double place_z=zz-yy*mz/my;

этот скрипт рабочий и я поначалу им пользовался, но когда добавил в игру функцию обзора мыши понял что он не точный и его можно только использовать только если камеры будет неподвижной.
решил что нужно сделать это с помощью луча. Есть ли у кого скрипт конвертирования экранных координат мыши в трехмерные с помощью луча?
язык и движок не имеет значению я смогу переписать. Заранее спасибо!
ArchidoДата: Вторник, 02 Июля 2013, 02:33 | Сообщение # 2
Сэнсэй
Сейчас нет на сайте
Если движок и правда свой, то используй встроенные в GAPI ф-ции, для DX - D3DXVec3Unproject, для OpenGL - gluUnProject

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
netskulДата: Среда, 03 Июля 2013, 09:26 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата (Archido)
Если движок и правда свой, то используй встроенные в GAPI ф-ции, для DX - D3DXVec3Unproject, для OpenGL - gluUnProject
движок реально мой и я использую DirectX 9 а это просто выведенные функции для более удобного использования
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг