OpenVR for Lazarus (Программирование VR на паскале)

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

Модератор: Модераторы

OpenVR for Lazarus (Программирование VR на паскале)

Сообщение Alex2013 » 25.09.2019 14:01:55

И так думаю "время VR" пришло думаю и вполне разумным будет начать собирать информацию и делать первые эксперименты по ВиАр программированию на паскале под FPC + Lazarus .
На сегодняшний день информации не густо !
1 openVR_header.pas Хедер библиотеки openvr_api.dll
2 Где-то в дебрях интернета есть проект "PasOpenVR - Virtual Reality with Object Pascal"
https://youtu.be/-oOcRxIj9t4 (Исходников пока не нашел... )
Изображение
Alex2013
долгожитель
 
Сообщения: 1534
Зарегистрирован: 03.04.2013 11:59:44

Re: OpenVR for Lazarus (Программирование VR на паскале)

Сообщение Vadim » 25.09.2019 16:24:41

Alex2013 писал(а):Где-то в дебрях интернета есть проект "PasOpenVR - Virtual Reality with Object Pascal"
https://youtu.be/-oOcRxIj9t4 (Исходников пока не нашел... )

Можно у автора ролика спросить. Он кроме ю-туба ещё и в твиттере сидит.
Vadim
долгожитель
 
Сообщения: 3749
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: OpenVR for Lazarus (Программирование VR на паскале)

Сообщение Alex2013 » 25.09.2019 16:39:05

Пытался уже пока тщетно ... (В принципе на гагахабе есть много проектов на С++ можно просто найти несколько достаточно простых для конверсии в Лазарус - операция временами нудная но ничего особо страшного в ней нет )

Добавлено спустя 2 часа 50 минут 29 секунд:
Хм ! Внезапно даже не виснет ... (Интерфейс openVR ->SteamVR->WMR при запуске загружается )

(DLL брал от сюда https://github.com/ValveSoftware/openvr/tree/master/bin )
Все прочее стандартная "обвеска" из SteamVR и "Протала смешанной реальности" из Виндовс 10 .
КСТАТИ "Шлем виртуальной реальности" для запуска ВиАр приложений в Виндовс 10 необязателен
Код: Выделить всё
program project1;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  openVR_header ;
Const overlayHandle :longint = 0;
  E:PEVRInitError=nil;
Var  HOverlay:Pointer;
P2: UInt32;
//  CVROverlay overlay = OpenVR.Overlay;
begin

  Writeln('Test!');
{ Код на Си....
  long overlayHandle = 0;
EVRInitError eError = EVRInitError.None;

OpenVRInterop.GetGenericInterface(OpenVR.IVROverlay_Version, ref eError);
CVRSystem system = OpenVR.Init(ref eError, EVRApplicationType.VRApplication_Overlay);

CVROverlay overlay = OpenVR.Overlay;
overlay.CreateOverlay("textureOverlay", "Picture Overlay", ref overlayHandle);
overlay.SetOverlayFromFile(overlayHandle, OverlayPath);
overlay.ShowOverlay(overlayHandle);
}
//Код на Паскале....
New(E);

E^:=TEVRInitError.EVRInitError_VRInitError_None;
HOverlay:=VR_GetGenericInterface(IVROverlay_Version,E);
P2:=VR_InitInternal(E,TEVRApplicationType.EVRApplicationType_VRApplication_Overlay);
Writeln('OpenVR RUN !!');
ReadLn;
VR_ShutdownInternal;
end.

Правда как картинку загрузить пока не понял ... (Как вот этот кусок переписать под openVR_header ? )
Код: Выделить всё
CVROverlay overlay = OpenVR.Overlay;
overlay.CreateOverlay("textureOverlay", "Picture Overlay", ref overlayHandle);
overlay.SetOverlayFromFile(overlayHandle, OverlayPath);
overlay.ShowOverlay(overlayHandle);

Тупо написать что-то вроде
Var Bitmap:TBitmap;
..
Bitmap:=TBitmap.Create;
Bitmap.Handle:=HOverlay;
Bitmap.LoadFromFile('test.bmp');
Bitmap.Refresh;
что ли ?

Добавлено спустя 20 минут 36 секунд:
ИзображениеИзображение
(Пока все еще "голый лимб" SteamVR но запускается он моей программой ....)
Кстати прога автоматически завершается при закрытии SteamVR наплевав ReadLn; :shock:

Добавлено спустя 16 часов 49 минут 14 секунд:
Обнаружил вот этот похоже что ныне заброшенный проект (Там есть какие-то попытки использовать OpenVR и библиотеки для Oculus )
https://github.com/Relfos/TERRA-Engine
Alex2013
долгожитель
 
Сообщения: 1534
Зарегистрирован: 03.04.2013 11:59:44

Re: OpenVR for Lazarus (Программирование VR на паскале)

Сообщение Alex2013 » 10.10.2019 01:14:10

Короче оказалось что нужная мне библиотека давно лежит в моих архивах ...
Называется (кто бы мог подумать!.. но только не я... :wink: ) PasVulkan.VirtualReality.OpenVR.pas
Разумеется похоже придётся её "девулканизовать " но это уже ерунда !
Зы
Вообще апи вулкана тоже интересная штука тем более что у тов BeRo1985 есть полная поддержка лазаруса . :idea:
:arrow: https://github.com/BeRo1985/pasvulkan
Alex2013
долгожитель
 
Сообщения: 1534
Зарегистрирован: 03.04.2013 11:59:44


Вернуться в Разное

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

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

Рейтинг@Mail.ru
cron