Всем привет! Пишу свою 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;
этот скрипт рабочий и я поначалу им пользовался, но когда добавил в игру функцию обзора мыши понял что он не точный и его можно только использовать только если камеры будет неподвижной.
решил что нужно сделать это с помощью луча. Есть ли у кого скрипт конвертирования экранных координат мыши в трехмерные с помощью луча?
язык и движок не имеет значению я смогу переписать. Заранее спасибо!