Slammer22 Posted July 25, 2024 Posted July 25, 2024 (edited) Hi everyone, dear ED. Please let me elaborate on my findings on MFCD export in VR during my ongoing journey to create a low budget mixed reality cockpit (journey that was quite successful, minus few things that need solving within DCS I will write here about). So in short, while I successfully exported 3 MFDs while in VR, these are issues that were produced in the process: 1. Incorrect Display of VR Mirror VR mirror spans across the full/total resolution of my main monitor together with MFD screens. Thus, since MFD exports displayed on MFD screens have "rounded corners" which are transparent, I can see this VR mirror moving behind MFD overlays displayed on MFD sreens. Please see picture of MIP with MFDs below, middle one (F-18 AMPCD) is fine. L and R MFDs have the corner problem.... Further investigating this issue brings me to a conclusion, that in 2D we have 3D render on the main monitor, while we have black background on the MFD screens. Thus, corners cannot be seen. Please see in next two pictures difference between 2D and 3D screenshot (PrintScreen). VR Mirror Screenshot: 2D Display Screenshot: Monitor .LUA file code that is used with above VR mirror screenshot: _ = function(p) return p end name = _('WinWing') description = 'My WinWing Profile' VR_allow_MFD_out_of_HMD = true FA_18C_LEFT_MFCD = { x = 1898, y = 236, width = 802, height = 802 } FA_18C_RIGHT_MFCD = { x = 3440, y = 236, width = 802, height = 802 } FA_18C_CENTER_MFCD = { x = 2696, y = 256, width = 752, height = 762 } Viewports = { Center = { x = 0, y = 0, width = 1920, height = 1080, aspect = 1.77777777777778, dx = 0, dy = 0 } } UI = { x = 0, y = 0, width = 1920, height = 1080 } UIMainView = UI GU_MAIN_VIEWPORT = Viewports.Center Conclusion is that DCS in VR is ignoring Viewport.Center and UI resolution settings in Monitor .LUA file, unlike in DCS 2D. In VR we have DCS game's 3D render spanned across all monitors, while in 2D, DCS game's 3D render is limited to main monitor only, thanks to Viewport.Center resolution settings. So this sums up the 1st issue. Suggested solutions: - Force DCS to display VR DCS 3D game render on Viewport.Center somehow, like in 2D, and that way we get fixed black background and the shallow corner problem is gone. - Make round corners go away, and make sharo 90 degree corners (just like on AMPCD) and the physical MFD frame will do the rest. 2. Limited Mouse Movement in VR Because of Monitor Layout Second issue I've come across, is the limited mouse movement in VR, because of which, I am unable to e.g. click on OK button in Options/System tab (graphics settings). So I have to work around this by changing tabs back and forth and hitting Enter button to OK a settings change. Further analysis made me come to a conclusion that for some reason mouse movement in VR is limited by monitor layout, which in my case looks like this: Vertical axis of my main monitor is 1080 while it's 1024 for my MFD screens. What happens, is that this resolution limitation is also applied on mouse movement while in VR. OK button I mentioned above is blocked by MFD screen resolution, because mouse movement is happening on VR mirror, which spans across all monitors, and although VR mirror is on full resolution which has 1080 pixels for vertical axis, mouse movement is still limited by MFD screen's resolution, Suggested solutions: - Force DCS to display VR DCS 3D game render on Viewport.Center somehow, like in 2D, and that way we will hopefully limit mouse movement to VR mirror that is displayed only on main monitor. FINAL WORD: By watching few videos on YouTube, I've noticed that they don't have shallow corners on F18 MFDs. So at least this was possible back in the day, and updates of DCS made that go away, or they are doing something differently than the rest of us. Few screenshots from those videos: This about sums up my findings, and from what I've learned by talking to DCS community on DCS discord, I am definitely not the only one experiencing these issues. I thank you for reading through and I hope you will address these issues in timely manner. However, if there are workarounds for the described issues, or if I have done something wrong, please do advise! Thank you again. Cheers! Edited November 19, 2024 by Slammer22 Fixed! :)
John Paesano Posted August 25, 2024 Posted August 25, 2024 I have a workaround using the UIMask in Reshade that works in VR without affecting what you see in the HMD. It’s based on the same concept explained in the video below in the youtube tutorial, he is using this to brighten his MFDs, but you can use the same general concept to block out certain parts of the MFD spaces that you don't want to see. You just need to ensure that the mask is built to encapsulate only the areas of those MFDs or screen, that you want to block out. Hopefully, that makes sense. Feel free to reach out if you need further instructions! I’ve also included an example of my UIMask. The black areas are the only parts that get manipulated by Reshade. It’s important when you install Reshade that you don't install any of the VR options—just use the DirectX options and don’t select OpenXR. Watch the tutorial below and this will explain the general concept, you just need to make the right type of Mask for you setup and the rest is just using the settings explained in the tutorial to turn parts of the created mask solid black, so it blocks the game from those MFD's
Slammer22 Posted November 19, 2024 Author Posted November 19, 2024 Haha Thanks for this. I really appreciate it. I have done the same, and actually got around on my own to realize how to do it. Kind of gave up on following up on this topic... THOUGH good news! This is solved! Eagle Dynamics (not sure when) has added a parameter for Monitor LUA file called "VR_MIRROR" You can see my LUA code below for the correct way of using it. Finally got rid of UI.Mask from Reshade Cheers and thanks again! _ = function(p) return p end name = _('winwing'); Description = 'Auto script by winwing,please no changes.' VR_MIRROR = { x = 0, y = 0, width = 1920, height = 1080 } LEFT_MFCD = { x = 1898, y = 236, width = 802, height = 802 } RIGHT_MFCD = { x = 3440, y = 236, width = 802, height = 802 } CENTER_MFCD = { x = 2696, y = 256, width = 752, height = 762 } Viewports = { Center = { x = 0; y = 0; width = 1920; height = 1080; aspect = 1.7777777777777777; } } UIMainView = Viewports.Center GU_MAIN_VIEWPORT = Viewports.Center VR_allow_MFD_out_of_HMD = true
cmata68 Posted November 19, 2024 Posted November 19, 2024 hace 1 hora, Slammer22 dijo: Jaja, gracias por esto. Realmente lo aprecio. Yo hice lo mismo y, de hecho, me las arreglé para darme cuenta de cómo hacerlo. Dejé de intentar seguir con este tema... ¡AUNQUE hay buenas noticias! ¡Esto está solucionado! Eagle Dynamics (no estoy seguro de cuándo) agregó un parámetro para el archivo LUA del monitor llamado "VR_MIRROR" Puedes ver mi código LUA a continuación para saber cómo usarlo correctamente. Finalmente me deshice de UI.Mask de Reshade ¡Saludos y gracias de nuevo! _ = function(p) return p end name = _('winwing'); Description = 'Script automático de winwing, no realizar cambios.' VR_MIRROR = { x = 0, y = 0, ancho = 1920, alto = 1080 } LEFT_MFCD = { x = 1898, y = 236, ancho = 802, alto = 802 } RIGHT_MFCD = { x = 3440, y = 236, ancho = 802, alto = 802 } CENTER_MFCD = { x = 2696, y = 256, ancho = 752, alto = 762 } Ventanas gráficas = { Centro = { x = 0; y = 0; ancho = 1920; alto = 1080; aspecto = 1.77777777777777777; } } UIMainView = Ventanas gráficas.Centro GU_MAIN_VIEWPORT = Ventanas gráficas.Centro VR_permitir_MFD_fuera_de_HMD = verdadero Thank you very much for your contribution. From what I see it is an F-18, because it has three MFCDs, and the resolution of your main monitor is 1920x1080. I fly an F-16 and it only has 2 MFCDs. Could you help me configure my lua file, because I have been doing the passthrough with openkneeboard for two weeks, but I cannot see the MFCD screens. Muchas gracias por la aportación, por lo que veo es un F-18, por que tiene tres MFCD, y la resolución de tu monitor principal es 1920x1080. Yo vuelo un F-16 y solo lleva 2 MFCD, me podría ayudar a configurar mi archivo lua, por que llevo dos semanas y ya he conseguido con el openkneeboard hacer el passthrough, pero no puedo ver las pantallas de los MFCD.
Slammer22 Posted November 19, 2024 Author Posted November 19, 2024 If you are using WinWing just add these two lines to the LUA file generated by WinWing software: VR_MIRROR = { x = 0, y = 0, width = 1920, height = 1080 } VR_allow_MFD_out_of_HMD = true ... and keep in mind to add your main monitor resolution instead of 1920x1080 if needed.
Recommended Posts