Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 29.06.2016, 09:12   #1
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Трансфорации

Не знал куда написать, сделал тему.

У меня такая задача:
Есть openCV, которая распознает объект и выдает нам RotateRect, который имеет center, Size, angle, все относительно изображения (mat) openCV. Мне нужно трансформировать это все в глобальную область.

Делаю так:
public static MotionVector TransformRotateRectToMV(RotatedRect rectTransform screenSize resolution){
        
MotionVector ret;

        
Vector3 localPos PointToVector (rect.center);
        
localPos./= resolution.width;
        
localPos./= resolution.height;

        
ret.Pos screen.TransformPoint (localPos);

        
//TODO rescale size!!
        
ret.Size.Set (rect.size.widthrect.size.height);
        
//ret.Dir =;
    

Не знаю как трансформировать направление с учетом того, что screen, объект с которого идет трансформация, может быть сам повернут.

Или нужен другой метод перевести ориентацию с учетом поворота.( С кватернионами плохо дружу, так что решил на векторах, но лучше наверное они)
Поворот должен быть относительно screen.up вектора с учетом angle по оси Y.
Как это?
Картинка:
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 29.06.2016, 10:37   #2
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Трансфорации

Эти функции смотрел?
http://docs.unity3d.com/ScriptRefere...formPoint.html
http://docs.unity3d.com/ScriptRefere...oRotation.html
На счёт повёрнутости самого screen - можно rotatedrect приаттачить к пустышке, и далее
1. сбрасываем поворот пустышки в нули
2. поворачиваем прямоугольник в глобал (функция выше)
3. поворачиваем пустышку на угол как у screen.

(Если я правильно понял суть задачи)
(Offline)
 
Ответить с цитированием
Старый 29.06.2016, 11:22   #3
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Трансфорации

Сообщение от Жека Посмотреть сообщение
Эти функции смотрел?
http://docs.unity3d.com/ScriptRefere...formPoint.html
http://docs.unity3d.com/ScriptRefere...oRotation.html
На счёт повёрнутости самого screen - можно rotatedrect приаттачить к пустышке, и далее
1. сбрасываем поворот пустышки в нули
2. поворачиваем прямоугольник в глобал (функция выше)
3. поворачиваем пустышку на угол как у screen.

(Если я правильно понял суть задачи)
Я не могу его приатачить никак Это просто структура OpenCV оносительно изображения, которое в виде текстуры на плейне.

Чуток другое. Как перевести текстурные координаты в Мировые, если текстура лежит на плейне (со скейлом и поворотом).

UPD. Положение я определять научился. Осталось направление.



Т.е cиняя стрелка кубика должна быть по красной стрелке элипса, как собственно и размеры.
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 29.06.2016, 12:42   #4
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Трансфорации

У OpenCV система координат отличается от юнити тем, что Y направлен вниз.

Для позиций трансформация очевидна - инвертируем Y и будет щастье.
Для кватернионов, если правильно помню, трансформация требует инверсии .y и .w

А вообще посмотри на EmguCV. C#-обёртка с нормальным интерфейсом под юнити, с уже готовыми конверсиями из Mat в массивы, текстуры; с конверсией систем координат. Правда, пребилт у них довольно старый, там OpenCV 3.x не было (а мне надо было), а чтобы руками это собрать я где-то с неделю посношался. Но оно того стоит
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 29.06.2016, 12:48   #5
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Трансфорации

Сообщение от Taugeshtu Посмотреть сообщение
У OpenCV система координат отличается от юнити тем, что Y направлен вниз.

Для позиций трансформация очевидна - инвертируем Y и будет щастье.
Для кватернионов, если правильно помню, трансформация требует инверсии .y и .w

А вообще посмотри на EmguCV. C#-обёртка с нормальным интерфейсом под юнити, с уже готовыми конверсиями из Mat в массивы, текстуры; с конверсией систем координат. Правда, пребилт у них довольно старый, там OpenCV 3.x не было (а мне надо было), а чтобы руками это собрать я где-то с неделю посношался. Но оно того стоит
Угу, и стоит эта байдень 400$, и привязана ка винде. Мне нужно кросплатформ (миниум мак). Спер OpenCVforUnity (порт с Java), ее юзаю. Тут тоже пару плюшек есть подобных (перегон текстур и все)
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 29.06.2016, 17:20   #6
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Трансфорации

Сообщение от RegIon Посмотреть сообщение
и привязана ка винде. Мне нужно кросплатформ (миниум мак).
У меня тот же кейс, вин+мак нормально работают. Нужно только разные либы пометить флагами для использования в разных осях/билдах Но про $400 это да, может быть проблемой.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 08:22.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com