Jump to content

OpenOVR - OpenComposite Fork for Sim Racing!


Alfred ita

Recommended Posts

[Oculus Rift Utility]

OpenComposite - Gioca i tuoi simulatori di guida preferiti SteamVR senza SteamVR!

ATTENZIONE: Se non siete molto pratici di informatica evitate di farvi del male, la modifica non e' difficile ma senza una minima base e' meglio lasciar perdere. 

Di cosa si parla:

OpenComposite e' un'implementazione delle API di SteamVR (OpenVR) con inoltro diretto delle chiamate al "runtime" di Oculus, questo permette di giocare a giochi basati su SteamVR su un Oculus Rift come se fossero titoli nativi ma senza l'uso di SteamVR. Ma Perche'? OpenComposite nasce dall'idea di utilizzare i games che girano in VR sotto Steam ma senza utilizzare SteamVR dato che quest'ultimo e' in grado di portare via una considerevole parte di risorse che potrebbero invece essere utilizzate per i games stessi. Nel nostro caso pero' parliamo di un "fork" ovvero di un'alternativa in grado di ottimizzare al meglio i nostri sim sfruttando questa utility per recuperare qualche frames e come ben si sa' in VR non bastano mai. 

Questo fork e' basato su una versione ridotta di Open Composite, con due obiettivi in mente:

Concentrarsi sul simulatore rFactor 2
Stabilita', qualità e aggiornamenti regolari.

Come funziona:

OpenComposite una volta installato a livello di sistema tutti i giochi basati su SteamVR lo useranno automaticamente, per ogni singolo game va sostituita una libreria .dll e questo purtroppo deve essere fatto ogni volta che il gioco viene aggiornato. La compatibilita' al momento in cui scrivo e' buona ma non ottima per cui potreste riscontrare problemi. Dal Launcher si puo' selezionare se il game che stiamo per far partire debba utilizzare SteamVR o OpenComposite, ovviamente funzione molto utile se usiamo anche altri games in VR oltre ai nostri amati simulatori.  

======================================================================================

Installazione:

1) Download OpenComposite:

https://gitlab.com/znixian/OpenOVR

Scaricate il launcher, all'interno dell'archivio: OpenComposite.zip trovate una cartella con all'interno 6 files (ad oggi 1 gennaio 2019), posizionatela a vostro piacere sul disco fisso e per comodita' fate un collegamento sul desktop del file: OpenComposite.exe, in maniera tale da poter accedere al launcher velocemente.   

------------------------------------------------------------

2) Download fork con la libreria personalizzata:

https://gitlab.com/TheIronWolfModding/OpenOVR

Latest 64-bit v1.0.0.0 AVX2+PGO

DLL compilata personalizzata per Haswell o successivi processori Intel + ottimizzazioni guidate del profilo.

Al'interno dell'archivio: OpenComposite_tiwm_1.0.0.0_ReleaseAVX2.zip trovate 3 files: la libreria openvr_api.dll, un file di config opencomposite.ini e le istruzioni readme.txt.

---------------------------------------

3) Rinominate il file openvr_api.dll gia' presente nella cartella del game in maniera tale che se ci sono problemi lo potete rispristinare al volo, io l'ho rinominato: openvr_api.dll.old 

La cartella di rfactor 2 di default e':

Steam\SteamApps\common\rFactor 2\Bin64\

Adesso posizionate dentro la cartella Bin64 i files dello zip che avete appena scaricato ovvero:

opencomposite.ini

openvr_api.dll

ATTENZIONE: In molti games ci sono 2 versioni della libreria openvr_api.dll, una a 32 bit e una a 64 bit, regolatevi in base al sistema operativo che avete.

----------------------------------------

4) Personalizziamo la chiamata alla libreria openvr_api.dll modificando il file opencomposite.ini.

Aprite con il blocco note il file opencomposite.ini (a default va bene per rfactor 2), qui si possono modificare:

supersampleRatio=1.0          (questo e' il supersampling e lo regolate in base alla potenza del vostro PC)
enableLayers=false                (converte le chiamate di creazione dell'overlay di SteamVR in Oculus layers)
enableCubemap=true             (converte le chiamate di creazione skybox di SteamVR in Oculus cubemap)
threePartSubmit=true             (segue le linee guida di Oculus "frame submission pacing" attendendo su ovr_WaitToBeginFrame)
useViewportStencil=true        (abilita la funzione sperimentale per nascondere le aree di texture invisibili, potrebbero migliorare le prestazioni)
dx10Mode=false                      (Solo su RaceRoom lo mettete su "true" perche' utilizza ancora le directx 10)

questo e' il mio per rfactor2:

supersampleRatio=1.2
enableLayers=true
enableCubemap=true
threePartSubmit=true
useViewportStencil=true
dx10Mode=false

================================================================

questo e' il mio per Raceroom:

supersampleRatio=2.0
enableLayers=true
enableCubemap=true
threePartSubmit=true
useViewportStencil=true
dx10Mode=true

=================================================================

Indirizzo di default per Raceroom:

Steam\steamapps\common\raceroom racing experience\Game\x64

Nota bene: enableLayers e dx10Mode devono essere su "true" o Raceroom va in crash.

=================================================================

5) Lanciate l'eseguibile di OpenComposite che avete sul desktop e cliccate su "Switch to OpenComposite", se volete tornare su Steam VR vi bastera' cliccare su "Switch to SteamVR" e avviare SteamVR direttamente da Steam.

Ho testato per qualche giorno e almeno con i sim che ho provato va bene, solo un paio di volte mi si e' chiuso Steam ma stavo facendo prove su prove e dopo svariati crash di Raceroom ovviamente non ha gradito. Raceroom e' il piu' rognoso perche' in directx 10 e il tutto viaggia nativo su directx 11, . rFactor 2 e' quello che ha meglio gradito la modifica, soprattutto su circuiti tipo Sebring le prestazioni sono aumentate e in linea di massima consiglio la modifica.

---------------------------------------------------------------------------------------------------------

NOTA BENE:

Questa modifica funziona solo sui games che girano in OpenVR, quindi sui titoli che girano in modalita' nativa Oculus non funziona dato che in questo caso la libreria usata e' la LibOVR e non la OpenVR. Ma come riconoscere se un games e' stato programmato in modalita' nativa per Oculus? Di solito quando fate partire un game che usa la libreria OpenVR si avvia in automatico SteamVR anche se purtroppo ci sono giochi dove SteamVR parte ugualmente a causa di programmatori "poco attenti" a cio che scrivono/programmano quindi la maniera migliore e' quella di prendere il controller touch sinistro dell'Oculus Rift e premere il bottone per aprire la dash di SteamVR, se si apre vuol dire che il game e' OpenVR.

La spiegazione alle problematiche con OpenVR.

Il problema di SteamVR con Oculus è che giochi scritti in OpenVR (che come libreria supporta il Rift) non sono proprio perfetti nell'uso del sistema di riproiezione dell'Oculus Rift, vedi games come Fallout4 o The Forest, soprattutto i programmi piu' esosi non dialogano bene nel passaggio:

Game --> OpenVR --> LibOVR e si perdono info sull'attivazione della modalita' ASW.

Tutto funziona meglio in questa maniera:

Game --> OpenVR wrapper OpenComposite --> LibOVR

-----------------------------------------------------------------------------------------------------------

Sim di guida compatibili:

rFactor 2 e Raceroom

Sim di guida che non ne hanno bisogno perche' nativi Oculus Rift:

Assetto Corsa - Assetto Corsa Competizione - Project Cars - Project Cars 2 - Dirt Rally

P.S.

Non consiglio la modifica a tutti quelli che hanno PC in cui la VR crea problemi, ne aggiungerebbero di altri in quanto andiamo a toccare dei file di config e a complicarci la vita, prima di intasare il thread di richieste di aiuto vi anticipo che i passaggi per tale modifica sono cosi pochi che se non vi funziona non vi puo' dare una mano nessuno! OpenComposite e' in perenne beta e non ha il supporto ne di Oculus ne di Steam ne tantomeno di questo forum dove l'unico scopo e' quello di fare informazione. Qualsiasi danno o malfunzionamento arrecato dalla lettura di questo documento non e' da imputarsi a drivingitalia.net ne al sottoscritto che ha solo tradotto le guide gia' presenti nei rispettivi siti degli sviluppatori interessati.

https://gitlab.com/TheIronWolfModding/OpenOVR

https://gitlab.com/znixian/OpenOVR

History Update:

https://ci.appveyor.com/project/ZNix/openovr/history

Come al solito powered by ADB_ITA 🙂 

   

 

Edited by Alfred ita
Link to comment
Share on other sites

Piccolo update della guida e un grazie all'utente Daws (Programmatore) del Discord di VR Italia per le precisazioni tecniche sull'uso del programma OpenComposite.

NOTA BENE:

Questa modifica funziona solo sui games che girano in OpenVR, quindi sui titoli che girano in modalita' nativa Oculus non funziona dato che in questo caso la libreria usata e' la LibOVR e non la OpenVR. Ma come riconoscere se un games e' stato programmato in modalita' nativa per Oculus? Di solito quando fate partire un game che usa la libreria OpenVR si avvia in automatico SteamVR anche se purtroppo ci sono giochi dove SteamVR parte ugualmente a causa di programmatori "poco attenti" a cio' che scrivono/programmano quindi la maniera migliore e' quella di prendere il controller touch sinistro dell'Oculus Rift e premere il bottone per aprire la dash di SteamVR, se si apre vuol dire che il game e' OpenVR.

La spiegazione alle problematiche con OpenVR.

Il problema di SteamVR con Oculus è che giochi scritti in OpenVR (che come libreria supporta il Rift) non sono proprio perfetti nell'uso del sistema di riproiezione dell'Oculus Rift, vedi games come Fallout4 o The Forest, soprattutto i programmi piu' esosi non dialogano bene nel passaggio:

Game --> OpenVR --> LibOVR e si perdono info sull'attivazione della modalita' ASW.

Tutto funziona meglio in questa maniera:

Game --> OpenVR wrapper OpenComposite --> LibOVR

-----------------------------------------------------------------------------------------------------------

Sim di guida compatibili:

rFactor 2 e Raceroom

Sim di guida che non ne hanno bisogno perche' nativi Oculus Rift:

Assetto Corsa - Assetto Corsa Competizione - Project Cars - Project Cars 2 - Dirt Rally

Link to comment
Share on other sites

Basta che provi e' gratis, ti ci vuole 5 minuti, per comodita' rinomini la vecchia .dll cosi puoi ripristinare il tutto in un attimo.

Link to comment
Share on other sites

13 hours ago, Alfred ita said:

Basta che provi e' gratis, ti ci vuole 5 minuti, per comodita' rinomini la vecchia .dll cosi puoi ripristinare il tutto in un attimo.

Per via di un trasloco non ho il pc che utilizzo con l'Oculus attaccato e quindi volevo informarmi se con questo sistema rFactor2 avesse prestazioni migliori.

Tu hai notato miglioramenti?

Link to comment
Share on other sites

3 hours ago, MarcoR1 said:

Tu hai notato miglioramenti?

Si i miglioramenti ci sono e non solo lato prestazionale ma anche visivo in quanto finalmente si vedono le immagini del caricamento dei tracciati al centro del visore, sempre durante i caricamenti si vede anche la clessidra di Oculus questo ad indicare che il game viene visto come nativo anche se non lo e'. Il problema e' che essendo una modifica fatta da appassionati e SteamVR che e' in beta viene aggiornato di frequente la compatibilita' potrebbe venire meno, ma non solo, quando attivi OpenComposite la modifica lato sistema potrebbe influenzare altri game VR o SteamVR stesso e da qui dei crash random di Steam, va a fortuna, c'e' chi non ha problemi e chi come me gli chiude Steam senza preavviso. La situazione e' in continua evoluzione e difatti voglio riprovare di nuovo in quanto OpenComposite e' in continua evoluzione.  

Edited by Alfred ita
Link to comment
Share on other sites

Ottimo anche perché la progress bar dei caricamenti la posizionava dietro e per vedere a che punto ero dovevo girare la testa continuamente.

Caricamenti infiniti (a volte anche di 5 minuti, probabilmente per la creazione delle mesh ad ogni aggiornamento o cambio impostazioni visive)  e altre piccole cose che di rFactor2 mi facevano cadere le braccia.

Appena rimonto tutto semmai aggiorno il thread con le differenze prestazionali che ho notato.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.