#virtual-reality
1 messages Β· Page 226 of 1
i think it might be windows mixed reality... it thinks my center is higher up for some reason
i cant seem to find any information on why my headset wants to be so high above the initial camera position in my cutscene. has this not happened to anyone before?
The floor is getting detected incorrectly. I saw that problem a lot when I had a WMR device. A similar thing can happen very rarely on my Index.
IIRC WMR has some kind of room calibration you can do. See if running that solves your problem. Make sure your room is well lit. WMR drifts a lot in dark rooms.
hmm it seems to work ok when looking through the player camera. i guess its just the cine cameras that dont like vr
calibrating did help btw. my camera isnt off to the side like it was before lol
but its still floating above the point i set the camera to be in the sequencer
Is anyone building with 4.25.1 with Vulkan on the Quest? I'm getting flicker in my right eye that I wasn't getting 4.24.3.
Really? I didn't need the Oculus one for 4.24.3.
π€·ββοΈ
π€¦ββοΈ
one more thing to download...at pandemic crappy home network speeds. π¦
OC fork comes with current integration, which reflects current Quest OS and drivers
Epic's is always behind
Yeah, I just didn't think I needed to be at the latest and greatest since this worked fine in 4.24.
Switching back to ES3.1, it's fine, of course.
when devving for Quest you should stick with OC fork to ensure everything works, compatible and will pass TRC
I've just got this sinking feeling I'm going to get 4.25 cloned and built and run in to the same problem.
I am still on 4.24.3
yeah, maybe my time would be best spent downgrading again
Hey everyone, colleague at work tried to try the apollo project on the work HL2 but got this error message:
I don't have a HL2 so I couldn't problem solve it
But it feels like he needs to add some extra stuff to VS?
Except then, it wouldn't be saying fix it through the launcher?
They're all unity devs so any chance we get to woo them over to UE4... π
@celest basin Did they follow the setup docs? https://docs.unrealengine.com/en-US/Platforms/AR/HoloLens2/index.html
An introduction to getting started with Unreal and the Microsoft HoloLens 2.
hopefully once v18.0 (Integration 1.50) is done rolling out, they will release 4.25.1 + 1.50 @idle osprey
maybe 4.25.2 is out by then too π€
Provides instructions on packaging apps for the HoloLens 2.
I think this page is what they're looking for π
The thing about compiling Unreal...it gives you lots of time to do other things, like laundry, make dinner, take a shower, take a nap, and after all that, it might be done compiling shaders. π
Compiling Shaders... elebenty jillion to go...
Registering git hooks... (this will override existing ones!)
Running system mono/msbuild, version: Mono JIT compiler version 5.16.0.221 (2018-06/b63e5378e38 Mon Nov 19 18:08:09 EST 2018)
Checking dependencies...
Updating dependencies: 42% (29217/60564)``` going to be a long evening...
is it with MSVC?
me? no...this is a Mac
oh
this is the download step just after the git clone.
@mighty carbon Would you recommend by any means to go from 4.24.3 to 4.25.1 for Oculus Quest development at this point?
depends.. I use VRE, so I am eagerly waiting for 4.25.1 from Oculus so I could upgrade. Oculus recommends to keep up with integration updates. And I am in early stages of development anyway, so it makes sense for me to upgrade
and I am talking about OC fork, not vanilla launcher version
Sorry what's VRE?
VR Expansion plugin
I was trying to get VRE to work on the Quest. The Example project fails to start.
@idle osprey VRE is working fine on the Quest. Do you get any specific error?
I was trying to get the Example project to work, but there's something wrong when it deploys.
LogPlayLevel: Took 0.60427s to run adb, ExitCode=0
LogPlayLevel: Running: /Users/corysia/Library/Android/sdk/platform-tools/adb -s 1PASH********* uninstall com.YourCompany.VRExpPluginExample
LogPlayLevel: Exception occurred while dumping:
LogPlayLevel: java.lang.IllegalArgumentException: Unknown package: com.YourCompany.VRExpPluginExample
LogPlayLevel: at com.android.server.pm.Settings.isOrphaned(Settings.java:4135)``` Apparently something is going wrong with the APKs manifest file
I'm also having trouble with the right eye flickering with Vulkan in 4.25.1, but it's fine in 4.24.3 (Epic versions). The plugin compiles, but I haven't tried using it yet. I mostly just wanted to see the example project.
@idle osprey Did you add the Quest as Oculus Mobile device to package for?
Yes
Target SDK version?
21
I am using 26/28
Have you deployed the example project or just used the plugin?
Ok. I'll try 26 tomorrow. Nearly midnight here and I've pretty much burned up my wick for today.
Yep! Good night.
Thanks for the advice!
You are welcome. π
I have a really newbie question, im new to ue4 for years i only ever developed in Source and recently Source 2
how do i implement smooth locomotion with snap turning and collisions
ive tried getting it to work for about 2 days now and i havent been able to get it
ive gotten snap turning working, on a Pawn but when i try to add collision it breaks the snap turning
i got collisions working on a character but i cant get snap turning working
also how would i go about getting the collision box to stay synced with the hmd with roomscale?
maybe im just an idiot but ive combed through every guide, tutorial, plugin, documentation i could and i just couldnt get it to work
@real needle snap turn with room scale support needs to take into account the offset between the pawn position and the HMD position because of you moving in real life
I recently made a tutorial on it: https://youtu.be/1rQvPnKvlfk
Learn how to make a snap turn function for your VR projects which supports Room Scale movements. Even if your player moves in real life the rotation will always happen around the current HMD location.
Jump to 8:00 to skip the theory and go straight to the implementation
#vr ...
Collisions are trickier because by default the collision capsule,
which is the root of the character hierarchy, does not follow the HMD
Ah yes I watched your video, it was a huge help in learning about blueprint and itβs very clear and concise
Hence collisions are happening somewhere else when you move in real life. You have two options: 1. use the VR Origin to realign the capsule with the HMD after each move, 2. use a plugin which implements that out of the box (VR Expansion Plugin)
Thanks! π
I tried using the VR expansion plugin but I couldnβt figure it out, do you have an example of a working pawn that has all that stuff working I can look over and replicate?
Maybe this is uncommon for ue4 devs but I tend to learn best from creating my own personal documentation and learning from stuff that already works
@real needle The VR Expansion has a demo project which shows that functionality. Did you check it out?
Yes I did but Iβm on oculus and it seems to only support vive?
Maybe I missed something though
You need to tweak a bit the input mappings.
I'll send you my input mapping
I am also on Oculus
Thank you, I really appreciate it
Just need to rebuild the project, will send you a DM
Ok
@sonic lake tweak what inputs? it should have mappings already for oculus
@tired tree some of the input seems to be linked by default to the capacitive touch on the Oculus, which sometimes triggers some accidental movement. I will send you the modified input mapping if you would like to take a look.
yeah that would be apreciated, all the inputs got wrecked with 4.24 and i rebuilt them mostly from memory on oculus.
so it does have inputs, just not ideal
That explains it. I will DM you the ini file.
@sonic lake 26/28 seems too high. ```LogPlayLevel: Error: ERROR: minSdkVersion is higher than Android version installed on device, possibly due to NDK API Level
LogPlayLevel: Error: ERROR: Installation of apk '/Users/corysia/Dev/Projects/VRExpPluginExample/Binaries/Android/VRExpPluginExample-armv7.apk' failed: [INSTALL_FAILED_OLDER_SDK: Failed parse during installPackageLI: /data/app/vmdl2046665600.tmp/base.apk (at Binary XML file line #8): Requires newer sdk version #26 (current version is #25)]
@idle osprey Actually it seems to be wanting #26.
I have set my target to 28 and it works, so this is strange.
Which SKD/NDK do you have installed.
Let me check.
my ndk is 21.1.6352462
You are on a Mac, aren't you?
yes
So you're running 4.24.3
Oh wait are you on 4.25?
Yes. The VRE examples is a 4.25 project.
There is also 4.24
I tend to stay away from the latest UE version because that carries tons of issues. Unless they get to .3 or beyond.
oh gosh, I never even looked for the branches in that project.
ok, I still have 4.24.3 set up, I'll try that.
I am sure there is a way to make 4.25 work as well but I haven't tried it so far.
Everything else seems to work, I can deploy my own projects. Just not that one.
but mine are just tiny ones so far.
I will try it next week as soon as I am re-united with my Quest. Can only take one VR device with me while traveling and the Rift S won the lottery.
And I think I saw you said something about input mappings?
My Rift hasn't been used since this pandemic started. I turned my VR room in to my home office.
@idle osprey the input mapping which comes with the VR Expansion demo project needs some tweaking for the Oculus Touch controllers. I will DM you the modified input settings.
For me it was the opposite. Got stuck at home with just the Quest and my non-dev laptop (read slow + limited RAM) while the dev computer and the Rift S were stuck in another country. No fun at all.
My PC doesn't have a ton of RAM and is pretty much just for gaming. My MacBook dual-boots and has 32gb ram, but only a vega20 card, so Link is possible, but it can't be too complex. And Oculus nags me about it all the time.
Yeah. Had the same with my non-dev laptop. With only the Quest available I wanted to use the Oculus Link but it turns out the NVidia GPU doesn't talk with the video output and Oculus only sees the Intel GPU.
Had to Launch each and every time.
The PC is an i7 and this MacBook is an i9. It'll be my last one, tho, since they're going to an ARM chip.
Pretty beefy machines. Yes, herd about it. I moved back to Windows once I started developing with VR. Still have a MacBookPro 2010 which surprisingly enough still works just fine.
My day job isn't in VR and we use Macs at work. Except for the ctrl/cmd body memory of my fingers, I do OK switching back and forth, but I'm more comfortable in UNIX. I can't handle Windows without cygwin or mingw
You can always VM with Ubuntu or similar. Reality is Apple hasn't embraced VR yet. Rumors are that they are working on something (mixed AR/VR).
Yeah, a saw that. And set a few patents.
I heard they are "stealing" resources from Magic Leap.
Curious to see what that brings.
any idea why my mesh is going from this:
to this?
it didnt happen with any other meshes that i imported just now
i also imported it connected to the other parts of the gun im importing and it still distorted
@idle osprey You are welcome.
anyone else noticed a drastic perforamnce decrease in VR since the rendering update (i gues 4.22)? We switched from 4.19 to 4.23 a while ago, and definitely had better performance in 4.19.
I made a test with the default VR template in different engine versions and 4.19 is much better in the profiler
Dumb basic question coming up - How do you connect two attributes in UE? For instance if you wanted to drive the scale XYZ of one object by the translate XYZ of another
another dumb question, different person tho. im putting in an ar styled rifle (mk18 to be specific) and i want to add in a bolt release system. do i export the bolt release with the body, trigger, and selector switch? or do i give it its own mesh and skeleton
the bolt release is going to pop out like it does irl
if i simply use the motion controller in my pawn as a component and want some hand animation, when grabbing sth, can i simply inherit the motion controller class and and add this animation update part?
@pastel fern We noticed something similar and never found anything. Please let me know if you have better luck!
I found this behind a mesh in the content example project from Epic Games π
@pastel fern I don't remember which engine version switched to the new super sampling method for vr rendering, but make sure that you altered your logic to use it. It was around 4.19 so it may have been 4.20.
Mm NVM it was 4.19 itself that changed resolution settings for vr
Though 4.21 or 4.22 did introduce the scene capture component bug
@tired tree you created the VR Expansion Plugin correct?
yes
awesome, this is a super useful plugin
thank you
also, where are the blueprints for the autoposing physics hand in the example project?
im having trouble finding where they are located i wanted to see them so i could learn how you did it
@real needle in the animation blueprint that the hand uses
the one called GraspAnimBP?
yes
@tired tree do you mean '''New: VR Screen Percentage Refactor to support new upsample and Dynamic Resolution rendering features.'''?
yes, but if you were already on 4.19 that wouldn't be it, should have shown up already
Yeah,...
In specific the WaitGetPoses of OpenVr in FViewExtensionPreRenderCommand (or something like that, without code right now) seem to be the problem. There is lots of time still on the render thread, but that is seemingly problematic. I investigated it at some point and wrote in the forums about it. It seems that you need to call GetWaitPoses to retrieve the render poses for the head/hands and sync with steam vr to keep the 90hz (vive). Though as some threads in the steam dev forum say, there still is a timing of 3..4ms involved which you need to call it before the end of the frame, which is alot of time. Besides that, the command shows with more than 5ms in the profiler but still the renderthread causes lots of spikes in the simple vr template scene.
@pastel fern yeah that is the late updates poll
which is part of the steamvr input module for the controllers
which was entirely rewritten for 4.24
try setting the late updates off on the controllers and checking the perf then
@tired tree thanks, will try that on monday. Though I tested in 4.25 and spikiness of the RenderThread is the same
@pastel fern 4.25 still uses the rewrite
I assume that, but I expected it to get better... Will need to try some more stuff next week. Thanks
Anyone using the VR scouting tools yet?
With Virtual Scouting, filmmakers can scout a digital environment in virtual reality.
is there any good documentation on vr melee weapons?
i want to add add one to my level that does damage to another character actor
Anyone know why haptic feedback curves are missing from the add content > misc menu?
I searched a bit and people have been pointing this out for a month or so, 4.25
The editor will open curves already created but there is no way to make new ones.
do you guys think this collision is fine?
its made of a few boxes as i tried to have the least amount of actual collision things as possible
hey can someone help me with vr im a bit of a newbie to unreal
i set the play mode to vr preview but my rift s wont go into it
it'll just say loading unreal in my rift s
nvm got it lol
Hi, my translucent or additive Projectiles are seen behind StaticMesh Environnement... like if they are in front of them... How can i fix that? Is the only way to replace transparency by Dithered Pixel Mask?? (Oculus Quest/ Android ES3.1)
@devout compass is 4 box collision better that one simple collision shape?
Good point I may just edit it to be one collision box. But I donβt want your hand to not even be able to touch the stock. Iβm gonna add a socket so you can hold it by the stock I think.
@hard relic But the only shapes are boxes and sphyls. There arenβt any prisms or triangles available
@devout compass by default static mesh generates a simplified collision geometry. In your Mesh, scroll down to "Collision Complexity" and select one "Simple collision" in da listbox
i wanted to build my own so it was as optimized as i could get
@devout compass Use a convex shape instead of the 4 boxes. Or at least combine the second and third to a single box (do see no reason to make it two boxes). Not sure though if it is faster for the collision system to evaluate multiple boxes or a single convex shape, would go with the convex still.
@tired tree changing the late update did do nothing.
This is the frame graph from the VR Template MotionControllerMap UE4.23 with headset laying on table (steady)
I would expect much smother frame timing. The RenderThread is leading the spikes but all time wents into the frame synchronization.
(FViewExtensionPreDrawCommand)
though, problem for sure: PRE DRAW! means we wait for SteamVR (openVR) to return the poses with VSync and render afterwards? Sounds rediculous.
I had a look at the openVR example and they render first and then sync (openVR WaitGetPoses), last thing in the frame
open vr example
I copied the SteamVR plugin into the test project, changed some includes statements in the buid.cs and changed the WaitGetPoses in FSteamVRHMD::UpdatePoses to GetLastPoses
Also WaitGetPoses should be called after Rendering
* This is an optional call, which only needs to be used if you can't instead call WaitGetPoses immediately after Present.
* For example, if your engine's render and game loop are not on separate threads, or blocking the render thread until 3ms before the next vsync would
* introduce a deadlock of some sort. This function tells the compositor that you have finished all rendering after having Submitted buffers for both
* eyes, and it is free to start its rendering work. This should only be called from the same thread you are rendering on. */
virtual void PostPresentHandoff() = 0;```
@pastel fern one of the issues with this is that the renderer is behind the game thread, they aren't 1:1, so GetLastPoses could potentially return the previous positions there and throw out an entire frames positional changes for the camera
their example is likely a straight 1:1 game to render sync and wouldn't have to consider that
yeah... delay, but we can't block the entire Renderthread for nothing... Accoding to the docs of PostPresentHandoff, WaitGetPoses waits 3ms before the VSync. That means we only have 3ms for rendering?
at some point I came to a function that extrapolates poses to reduce the latency in rendering
they used to use that function in the controllers and it caused a ton of latency
they switched it out just prior to the input module being recoded
and wait get poses waits 3ms before return, you could still use more time to render
the data would just be older
i'm not saying that the rendering code is working correctly for you here, i'm saying that you likely threw out one of the more important features to patch your issue
and you might want to bring this all up directly with epic for more information on their choices
I don't realy understand what you mean, I'm not realy into the rendering stuff.
As far as I can tell, we need to Present the rendered image to the headset BEFORE the VSync. If we submit it to late, we basically loose an entire frame? WaitGetPoses waits UNTIL 3ms before the VSync and is executed in PreDraw. Thus we only have 3ms for rendering, post process and presenting the image?
I now execute WaitGetPoses AFTER rendering in FSteamVRHMD::BridgeBaseImpl::PostPresent() and here is frame result:
This seems pretty
sure, now we have the problem that our poses might be to old and the delay is big.
but that seems to be the only usefull thing to do
it should be calling WaitGetPoses in multiple places in engine
ah nvm its still doing it render and game seperate checks
ug
yeah you are definitely causing a full frame of delay on the camera there
its only sampling new pose in render
and render is a frame behind game
and probably delays by one more frame if the rendering takes to long
I can't remember off the top of my head where game is unblocked there, but its likely after the call so it shouldn't effect game any
with what you did
just the late adjustment on rendering
I now render first and then wait the vsync. Sounds better to me
I'll test this in our main project now. Will report
i mean...
i know what its going to do
the camera is going to be sluggish
if you are fine with that, thats fine
higher framerate headsets like index 120htz it would be less noticable with
I don't feel any lag with the change made in the test project. Even when moving the head fast I can't realy notice a delay. And for most applications it should not matter. BeatSaber maybe, but thats probably it.
And the "docs" of OpenVR define that WaitGetPoses should be called after rendering. Which also seems totally stupid. Why should I wait for better poses after rendering was done?
they want it to not block anything important while it retrieves them
you are already doing that with your change, the camera offset is applied prior to rendering
so its too late with the position that you put it in
it does not block to retrieve the poses, it blocks to make sure you are close to the VSync so the poses are best as probably can be and leave you with 3ms for rendering.
(if you call it before rendering)
ah yeah, just read it. The function predicts the poses already for the next frame
then my change is totally fine and the correct thing to do
?
its still returning poses after rendering
you are still a frame behind
if you moved it post render
/** Scene applications should call this function to get poses to render with (and optionally poses predicted an additional frame out to use for gameplay).
* This function will block until "running start" milliseconds before the start of the frame, and should be called at the last moment before needing to
* start rendering.
*
* Return codes:
* - IsNotSceneApplication (make sure to call VR_Init with VRApplicaiton_Scene)
* - DoNotHaveFocus (some other app has taken focus - this will throttle the call to 10hz to reduce the impact on that app)
*/
virtual EVRCompositorError WaitGetPoses( VR_ARRAY_COUNT( unRenderPoseArrayCount ) TrackedDevicePose_t* pRenderPoseArray, uint32_t unRenderPoseArrayCount,
VR_ARRAY_COUNT( unGamePoseArrayCount ) TrackedDevicePose_t* pGamePoseArray, uint32_t unGamePoseArrayCount ) = 0;```
the poses are used in the rendering thread
its how it knows where the cameras viewpoint should be
which is why they also state to have it called last moment before rendering
for the obvious vsync
its also intended
which is why they also state to have it called last moment before rendering
@tired tree where do they state that? As the official openVR source files say different
well right above in your direct quote it even states that...
ah yeah... something is realy confusing here
/* Call immediately after presenting your app's window (i.e. companion window) to unblock the compositor.
* This is an optional call, which only needs to be used if you can't instead call WaitGetPoses immediately after Present.
* For example, if your engine's render and game loop are not on separate threads, or blocking the render thread until 3ms before the next vsync would
* introduce a deadlock of some sort. This function tells the compositor that you have finished all rendering after having Submitted buffers for both
* eyes, and it is free to start its rendering work. This should only be called from the same thread you are rendering on. */
virtual void PostPresentHandoff() = 0;
^^
GetLastPoses would get the last compositors poses, so it guess if things sync'd up right it wouldn't have too much latency
but the WaitGetPoses waits until the new (hmd( frame, gets the very latest polled poses, and lets you do your thing
Ok, I just try the change in our main project now. Will report
Here is also some interesting read: https://github.com/ValveSoftware/openvr/issues/434
i guess there could be a case for GetLastPoses prior to render, render with latest known poses but without waiting for , then WaitGetPoses for vsync and presentation post rendering.
to make it called more like they intend, but still keep more current poses for late adjustment
@pastel fern didn't you say that you were on 4.19 originally though?
and your migration is what made it slow?
Yeah, we were on 4.19 before updating to 4.23. I know that the code, in that regard, is the same in 4.23, but does seems to ne an issue as well.
The actual problem (I was going to investigate) might be caused of the big Rendering changes they made. Already found some other stuff that I reported (AFAIR one thing was about occlousion culling), but cause of "awesome" bugreporting, I lost track of all the stuff
yeah this was all intact as is in 4.19
i'm pretty sure even in 4.18, even though it was not using the new scene extensions it was still doing it the same way as well
At least the profiler talks smoother lines with the change. Maybe the change allows me to ignore other issues
In the main application we now have another problem that prevents evaluating the change to WaitGetPoses. As I now noticed, we have a hugh time for submitting the left/right eye. I tested switching the submissions, always the second eye submitted takes MUCH longer
void FSteamVRHMD::D3D11Bridge::FinishRendering()
{
...
vr::EVRCompositorError Error;
{
SCOPE_CYCLE_COUNTER(STAT_SteamVR_PresentEyeRight);
Error = Plugin->VRCompositor->Submit(vr::Eye_Right, &Texture, &RightBounds);
}
{
SCOPE_CYCLE_COUNTER(STAT_SteamVR_PresentEyeLeft)
Error = Plugin->VRCompositor->Submit(vr::Eye_Left, &Texture, &LeftBounds);
}
...
}
drawing the scene is the smallest of the times (2,5ms) ... π’
what is going on...
another test right after shows good times for submitting both eyes but the GameThread is 27ms IDLE and the RenderThread is 28ms WaitGetPoses ... the ghost of Unreal is haunting me...
it shouldn't take that long for wait get poses
@pastel fern this may help with how things are intended (from 2015 though so everything has moved from extended mode to direct compositors)
http://media.steampowered.com/apps/valve/2015/Alex_Vlachos_Advanced_VR_Rendering_GDC2015.pdf
yeah ue4 does that automatically for you
@pastel fern dont bother with that crappy profiler
is not even good
use Insights
you can see the proper syncs beetween RHI threads and Game threads there
can i use a VR Splash Screen under 4.24?
@brisk spade I think so yes, if I remember correctly you can use it from 4.18
@little scaffold i just found a comment udner a yt video that says no, but i will try it out
getting a VR splash screen to work for loading levels
well thiis doc says it is from 4.17
https://docs.unrealengine.com/en-US/Platforms/VR/DevelopVR/SplashScreens/index.html
Setting up and working with VR Splash Screens and movies.
I think there might be new features from 4.24 that you can't use prior to that
ah ok yeah i will try it ou
nope the nodes arent visible in UE 24
@brisk spade I just dealt with an issue in 4.23. See: https://forums.unrealengine.com/development-discussion/vr-ar-development/1682877-how-to-set-splash-screen-location-in-vr
I'm struggling with the Splash Screen in VR, since it seams to show up in random positions (it even changes location by itself while changing maps). Is there a way to set up the location where the splash screen is shown in VR?
I'm just creating the loading screen this way (I...
@wicked oak using insights was the main reason for the update from 4.19 to 4.23. But every time I try to use it, it crashes when trying to read the data
Also the presentation of the tool only was "you see pattern, nice pattern". The video did not contain any usefull information regarding using the tool. Did not have a look at it since then
btw, even if you dont want to update your entire project, it might be a good idea to update it to 25 just for the profiling
on a branch
ah shit, i actually have a full presentation about using it
to profile and optimize things
but its in spanish
We cant just update cause of dependencies
I think I would get going with it, just the crashes...
its also possible to use the Microprofile integration Kite and Lighting opensourced... but thats much trickier to add
its basically like insights but not really
Though the profiler does not give as much insight as "Insights", I would assume timings it tells to be correct
Though telling me 2.5ms render time, but 33ms frame time is a bit off a weirdo
Hey guys, I'm using the VR Scouting tools in the latest version, currently I'm using the valve index but the default controller mappings are for something else which is meaning I cant do a lot of things. Is there an easy way I can remap these control and possibly replace the visual display of the controller for the valve index one?
By default you get this, I would guess you would change the valve input if needed to get the functionality you need but then once I jump back into VR it seems to re-add the original bindings
@sturdy coral Thanks for the images. Though they confuse only more and contradict themself.
The first image shows that you should start rendering directly after the vsync.
The second image that you should finish rendering directly before the vsync and present directly after.
Both is basically not possible with WaitGetPoses, if the docs of WaitGetPoses above PostPresentHandsoff (This is an optional call, which only needs to be used if you can't instead call WaitGetPoses immediately after Present. For example, if your engine's render and game loop are not on separate threads, or blocking the render thread until 3ms before the next vsync would introduce a deadlock of some sort) is still valid. Accoding to that docs, we present first and then call WaitGetPoses to block until 3ms before vsync (this is what the openVR demo does). Though this might be totally outdated and duplicate of an old documentation of WaitGetPoses that was not correct after an update, as the docs on WaitGetPoses says This function will block until "running start" milliseconds before the start of the frame, and should be called at the last moment before needing to start rendering.. Which tells to call WaitGetPoses before rendering (this is what unreal SteamVR plugin does), though the sentence contradicts itself by saying that the function blocks and thus defines the point of where we start rendering and directly afterwards talk about the users need to start rendering. I should have my own need, but the function overrides it with its behavior
And according to the frame timings meassured with the profiler, calling WaitGetPoses after Present is the better option (even though it might be the outdated behavior).
Also note that the last 2 profiling picks had WaitGetPoses at the original place (FSteamVR::UpdatePoses) and still the timings are nuts
anyone have experienced pixelated splash screens with oculus vr? are there any specs for the textures to use?
@tame stream try different compression settings for the texture. For steamVR at least, only one works
which one?
Setting up and working with VR Splash Screens and movies.
"If you are targeting SteamVR, you will need to make sure that you set the Compression Settings of the Texture you are using for the Splash Screen to UserInterface2D(RGBA) or it will not be displayed when the Splash Screen is called. "
yeah tried that already, didn't make a difference though π¦
also tried like all possible resolutions... still looking like crap
never tried oculus, sorry. Have tons of problems on my own I'm dealing with (steam vr)
Hi guys...
I am currently researching how too cook/ package my project for the first time...
when I eventually do, and I click on the exe to open the game, will it automatically loo for a headset to play ?
since it is a vr project
ProjectSettings->Project|Description->StartInVR
thank you @pastel fern !
seems like there is Mixed Reality Toolkit for Unreal as Unreal for Hololens
@alpine torrent yes, though I have to say I'm pretty disappointed in the HoloLens 2. It's hard to justify development for it
the ue4.25 is supported at least now for hololens2 and those should be shipping
@mighty carbon In many ways, I think the holograms from the first gen systems were better. At least cleaner. the HoloLens 2 has some artifacts on the screen that microsoft claims is because of the larger field of view. But they are insanely distracting to me. The "larger" field of view is still tiny. like, if you have a hologram in front of you and you manipulate it, you cut off the top and them bottom. There are more direct interactions with the holograms, but it doesn't do well. I'm constantly fighting with it to press buttons, and if you use the ray traced control which SHOULD be coming from your hand, it feels incredibly off.
I think the Quest has better hand tracking than the H-2
they continue to "sell" it with videos showing these holograms all around you but it still very limited
and the artifacts are just terrible
at least distracting for me
My manager felt the same ways on most things (he wasn't as distracted by the lenses) but we don't feel like we could put these on the head of leadership and tell them that was the future
The apollo 11 demo they show is cool, and remote rendering from Unreal is super easy. It would be great to show unaltered high poly models, but you woudln't be able to see them all
Overall, given how long we waited for this version, and given how well Microsoft usually does with hardware, we really expected more from them but are left with "really?" when we use them
Ultimately, I think AR has more use cases and will get there but we are not there yet. It has to be something like regular glasses. Holding up your phone or whatever just doesn't cut it
there is some optimizations you have to make
and improving field of view seems more challenging
hi guys, I'm rly desperate to get any help. I spend week on this and have no Idea what to do, except of asking people on internet for help ;] I added movie to show exacly what the problem is. was asking on forums and answer hub, and now You guys are my only hope . I describe everything here https://forums.unrealengine.com/development-discussion/vr-ar-development/1785074-cant-position-hands-when-i-move-and-rotate-actor-with-roomscale-steam-vr
Hi, I spend the whole week trying to figure this out.
I set up a character, added motion controllers, and added locomotion (using thumbstick), it worked, kind of... I spend some time trying to figure out why I'm colliding with things that I shouldn't be colliding with, after ...
https://www.youtube.com/watch?v=zlzBifkjXDk after following this tutorial, my character was only able to go left and right but not forward and back. How could I fix this? Using valve index
How to make advanced joystick locomotion for VR in Unreal Engine 4. This is a similar style of movement seen in games such as Pavlov, Zero Caliber and Skyrim:VR. Topics covered: Blueprint scripting, controller inputs. This tutorial was made using an Oculus Rift S headset, but ...
@finite ember look at the input event MotionControllerThumbLeft_Y (top left corner in your blueprint screenshot). The execution line (white line) out of it is not connected so the event is not triggering the execution of the code after it (the Branch and the Add Movement Input). That may explain it.
@wide crest it would be probably easier to handle room scale via a ready-made solution (like the VR Expansion plugin) rather than re-building your own. Of course the latter is also possible, but you will need to do quite some work to take the positional/rotational states from the HMD and the Tracking Devices (Motion Controllers) and transform each one so they work properly in room-scale. As an example, you can have a look at my tutorial on Snap Turn in VR with room-scale support. It shows how rotations can be handled in such case. https://youtu.be/1rQvPnKvlfk
Learn how to make a snap turn function for your VR projects which supports Room Scale movements. Even if your player moves in real life the rotation will always happen around the current HMD location.
Jump to 8:00 to skip the theory and go straight to the implementation
#vr ...
I started a couple of different versions of my packaged app and ended up with icons for them in my library when I put my headset on...
because they are named the same and I kept going into the wrong app I decided to remove them...
I was hoping that when I select the correct one in my PC it my return to my library, at least in the app history.
this isn't the case XD
Is there a way for me to get it back onto my oculus library so I can open it from within the headset ?
@eternal inlet you're probably looking for "r.SceneRenderTargetResizeMethod=2" and "r.SceneRenderTargetResizeMethodForceOverride=True"
@candid viper @sturdy coral Hi both, i just wanted to say thanks, those excact two settings seem to fix the insane performance hit i had with both my barebone test project, but also so far show good results in my game. Tested in both Packaged and PIE.
actually it does some hitching in PIE, but as long as Packaged works fine, i don't care hehe
@eternal inlet would this have any impact on a VR Game even if there is no SceneCaptureComponent in the scene?
i think one of the other guys can answer that. Im honestly not sure.
Does anyone know how to get a project you made in unreal into your library in oculus ?
to allow me to open it from within the headset ?
@covert ferry I think if you play it once and you have enabled unknown sources you should be able to see it
@eternal inlet thanks I'll see if they answer
the problem is I had several in there of the same name, it was confusing so I got rid of them, now the correct one doesnt appear in there despite using it several times XD
@little scaffold I suspect it may do, I'd like to know too. I've had performance problems with packaged SteamVR shipping builds that run poorly compared to VR preview with no capture component.
@blissful bear I think so too, I just read that it forces render target to not reallocate itself automatically which is good for the Rendertarget used for VR and would keep this away:
LogRenderer: Reallocating scene render targets to support 2720x1600 Format 10 NumSamples 1 (Frame:6985)
I noticed it on an old project and it really annoyed me to find that a shipping build ran noticeably slower than PIE. The client didn't notice (or care) so I didn't really investigate. I think I was having issues with behaviour with Vsync on/off at the time so I may be mixing up the cause for what I saw.
It bugged me though so would be useful to know for future VR projects.
@little scaffold and @covert ferry agree, i've seen that too, so behind the scene, it may be using the same code the Scenecapturecomponent does. Hope maybe @candid viper , @sturdy coral or @tired tree knows?
For Oculus, you would tend see "Reallocating scene render targets" in the log on a per frame basis when it was happening. Whether it caused hitches or not depended on the state of gpu memory - sometimes that reallocation was cheap enough to not be an issue. There are other cases where UE is rendering to a different target - Canvas/Slate being the ones from memory - but they don't try to re-use the camera render target, unlike scene captures, so didn't trigger the problem behaviour. (There are separate performance issues with Canvas/Slate you can hit, but they're really related to specific use cases).
something to look for if you are interested https://channel9.msdn.com/Shows/Docs-Mixed-Reality/Intro-to-Unreal--MRTK-for-HoloLens-2
Unreal Engine support for HoloLens 2 reached production-ready status with the release of UE 4.25 in May! Alongside UE 4.25, in response to the top ask we've been hearing from developers since Unreal's
Hello, I'm doing AR on IOS (iPad mini) with a Mac.
For some reason the app records and saves to disk the camera every frame (I have no blueprints telling it to do so and never have).
This makes the iPad's storage be full in half an hour. Absolutely hair pulling.
I've downloaded the "Documents and Data" from my app using xcode to inspect them. The screen shots are of the camera only, without my AR 3d models or user interface.
Any clue on what I might be missing?
@tired tree @sturdy coral @chrome elk After some further investigation into my WaitGetPoses problem, I came to the conclusion that it is the Render time (green bar) that is not directly visible in the profiler, but indirectly via the WaitGetPoses (or other stuff like Present if you remove WaitGetPoses entirely). The scene about 20 objects with 50.000 vertices each. I got confused with the low draw cost shown in the profiler, but thats basically just the blue bar "Submit D3D Calls", which is small as there is not much to submit, but much to render (green bar), which makes sense. Unreal does not profile the graphics card directly. Though SteamVR then seems to have need to access the graphics card in WaitGetPoses, but it is still rendering and needs more time. I tough that when calling Present, the rendering is done, but it seems only to enqueue the "Present" into a command chain on the graphics hardware/other software.
Still I keep to execute WaitGetPoses in FSteamVRHMD::BridgeBaseImpl::PostPresent() as that gives us a smoother graph.
The actual performance loss is thus still somewhere existing in the bowels of the engine
Thanks for the help
I also build a custom engine to get rid of that problem (see my posts): https://answers.unrealengine.com/questions/557636/view.html?sort=oldest
Inside FD3D11DynamicRHI::GetQueryData i just set bWait=false. Does not seem to cause issues and improves our performance.
@sonic lake thank You! VRExpansion will probably solve all my problems
Hi! Did anyone ever have the problem that when you use motion controllers and you shake them around that there seems to be some kind of distortion? I can't show it because it apparently only shows it inside the VR headset. I can't really seem to figure out what is causing this. I did notice that for some reason my VR preview seems to be stuck at around 45 FPS, can that be the cause?
I'm using Unreal 2.24.3 in a new project. I've simply created a pawn and put a camera along with the Motion Controller Components on 2 hands.
@wheat holly The distortion you're seeing is most likely your VR framework (Oculus or SteamVR) interpolating the missing frames for you, because you're only running at half the target framerate
As soon as you miss the vsync framerate (in your case 90 FPS), you will drop to the next possible sync rate, in this case half
Because low FPS leads to nausea, Oculus and SteamVR will automatically fill in the missing frames by extrapolating from the last rendered frame and the new HMD position and rotation
Thanks for the explanation. But what could be causing this? My CPU and GPU are not bottlenecked when running, yet I'm still not able to hit the 90FPS.
I also checked if fixed frame rate was on, which is not the case.
It's also a new scene, so there's barely anything to render.
what's it say in stat unit?
Sorry, I'm not familiar yet with stat unit. Is it something I can quickly google, or is it a bit more advanced?
ah, it's a console command
alternatively, you can click the little arrow in the top left corner of the viewport, then Stat > Engine > Unit
This is what it displays. https://gyazo.com/7f2e1aab9b88b980f3473de984728ef7
I am keeping eye on dev-vr branch commits and I see mostly iOS AR sh!t being committed.
Sad
@real needle 90 FPS = 11ms, so your game thread highly exceeds that
Same goes for your GPU timing
But how is that possible when the scene is almost empty? This is literally my entire scene. https://gyazo.com/ca3c3ed577b8db3a6b883a89207788c1
Is there anything else that could be dragging your PC's performance down? And on that topic, what are your specs and how well do VR games run on your system?
VR games are not really an issue, I've never had any fps issues. Sometimes a little stutter every now and then, but that's all.
My specs are this: https://gyazo.com/b17addc027d82d598eb342c0fb6ea4c0
Along with a R9 390 GPU.
I for example play The Forest with my little brother in VR, and that runs pretty smooth. But I do admit I never checked the FPS.
Potentially you're being helped out by the frame interpolation in those games as well
I'm not familiar with the AMD graphics cards anymore, so I don't know what's recent
still, the game thread being so slow is remarkable
Any way I can easily check if that's the case? Because now you mention it I did experience something similar in another VR game, but not in The Forest or something as simple as Beat Saber.
What headset are you using?
The original Oculus Rift
Ah then I don't quite know, only have experience with SteamVR myself. You should browse through the (developer) settings, there surely should be a way to turn on a performance overlay somewhere
I also have Steam VR, so if there's any option in there I can turn it on
Or to turn off asynchronous space warp (the interpolation method)
Yes, in the developer options there's an in-HMD performance overlay you can turn on
I think I found it, let me try it
Is this the one you were looking for? https://gyazo.com/c86124dfa936aeefde41c31238330897
The last bit is me putting of my headset
Seems like it's running fine there
This is Beat Saber btw
Maybe you'll have better luck with your project in Unity then π¬
:(
We can still take a profiler snapshot of your project and see if we learn anything there
Would love to try that first
Under Window > Developer tools > Session frontend, go to the Profiler tab and press "Data Capture" twice while playing in the editor
Alright, I have it.
I think this is the part you're looking for? https://gyazo.com/115860decff82b70134d9c2d8411c599
Right, can you click open the game thread? I assume there will be a "CPU stall - wait for event" at the top of it
Hmm, seems like that's all engine overhead from drawing the engine UI
Can you try running the game through "Standalone game" instead of VR preview and see if the distortion problem persists?
I tried to package it before and ran that, but I still saw the distortion. But let me try standalone game π
ah then it will be of no help
It also didn't want to show up in my headset, so there's that xd (The standalone game)
@wheat holly did you have a blueprint window up and active at the time
in some setups that can drag down performance a ton
I do not have one open, I have the editor open, along with the output log / details panel / project settings. EDIT: and the Session Frontend window
from those slate timings, the editor was processing
It also didn't want to show up in my headset, so there's that xd (The standalone game)
Did you enable Start in VR in the project settings?
While cleaning up our project, I try to track down a issue with scaling the player using both hands while pressing the grip buttons (like TiltBrush and other VR applications that allow that behavior). Using Oculus with the Oculus VR Plugin for Unreal the scaling works perfectly. Though using SteamVR Plugin (no matter if Oculus Touch or Vive), the scaling process is jittery and flashy like hell.
Unreal uses the same scaling behavior for their VR Editor. In there the problem is the same, jittery and flashy, absolutely not presentable to the enduser, as it also is nauseous. Our scaling logic is fine (distance between controllers when starting to scale compared to the current distance, applied as delta to WorldToMeterScale), as it works with Oculus. Anybody tackeld that at some point and can give a hint?
I logged the values of WorldToMeterScale in tick while scaling, and the values are fine. They are properly progressing in one direction (consistently higher or lower values, depending on scale direction). I also disabled WorldToMeterScale for the RenderThread for testing, and while the view is not adjuted to the scale, the scaling itself suddenly works fine. Thus its probably only a rendering issue.
Also WorldToMeterScale does not see to be a concept of openVR, but Unreal internal logic.
Not to push the question above away, but thanks for the help Thomas and MordenTral. I'll try to google some more, maybe that I'll find something I had not seen before. Either way thanks for the help! β€οΈ
Ah, you still have to check the GPU profiler @real needle
Enter profilegpu in the console and see if it is somehow taking longer than 11ms to render that very basic scene π€
@wheat holly as your profiling pick shows, you have a huge time PollGameDeviceState
TotalSlateTickTime is rendering the editor window
But even if I package the game, (which I just did again) then I still have that issue. I even closed all programs on my PC (including Unreal)
So no editor open at that moment
Also this is the GPU profiler https://gyazo.com/57f55524624a9b410925476b710319be
Thom what input deviced do you have? Its polling deviced for data
that is the problem
I have 2 Oculus Touch controllers which I use as motion controllers which have input
I also have a keyboard + mouse connected to my pc of course
SteeringWheels? Thirdparty music keyboards or what ever
Speakers, a webcam, the rift sensors and my cellphone are connected + a usb dongle for my controller, but the controller is offline
Give me a second π
maybe the controller usb dongle is the issue. As it might try to find the controller, but it cant
you can also check the Output log
@pastel fern are the valve controllers correctly using the world to meters scale in your engine version? They were not for awhile due to the new input module they have
the hmd should be unchanged and was working fine with it last i knew, so I guess if you are seeing the entire world jitter it would be outside of the input module
the jittering is still existing in UE4.25 VR Editor
which controllers do you mean? the MotionControllerComponents? Using your GripMotionControllerComp
no, i mean the input module
but 4.25 steamvr input module should be using world scale correctly
it was an earlier bug in it
after the scaling process, everything is fine. it just happens during the scaling
you tried this without your steamvr changes correct?
because that late update sample for the camera would actually have an effect here
polling the new position would use the new world to meters
Alright I unplugged everything except for one motion controller, the sensors, the headset and mouse + keyboard. But I still get that weird distortion. (Sorry that it took so long, I needed to grab a package that was delivered)
@wheat holly what does the profiler show now?
GPU profiler or the other one?
The other one
@tired tree yeah, the problem was existing beforehand
yeah looking at it, it stores the beginning of the frames world to meters
and re-uses it in the render thread
so changing it wont change it visually that frame
I put a CriticalSection around TrackingFrame.WorldToMetersScale = GameWorldToMetersScale; in hope that it helps, but nope
And this is the GameThread https://gyazo.com/0c7c324cd571037a1e6f87ae05f08897
Still the same effect
output log any usefull mentions?
I see 1 error, and a couple of warnings.
Warnings:
LogStats: Warning: OnCaptureFileProcessed: D:/UnrealEngine/TestProjects/VrTest/Saved/Profiling/UnrealStats/Received/UEDPIE_0_MainLevel-Windows-09-17.49.46
LogStats: Warning: TotalLoadTime: 0.08
LogStats: Warning: OnLoadStarted: D:/UnrealEngine/TestProjects/VrTest/Saved/Profiling/UnrealStats/Received/UEDPIE_0_MainLevel-Windows-09-17.49.46
LogStats: Warning: There is no thread with id: 8244. Please add thread metadata for this thread.
LogStats: Warning: There is no thread with id: 7112. Please add thread metadata for this thread.```
And the error:
```LogDirectoryWatcher: Warning: Failed to begin reading directory changes for D:/UnrealEngine/TestProjects/VrTest/Saved/Automation/Comparisons. Error: The system cannot find the path specified. (0x00000003)```
should not be related
did you try to restart after unpluggin everything except mouse/keyboard/headset? Maybe the drivers are still running
I'll try that
Also doesn't work, either way my father is here for dinner
So I have to go for now
@tired tree If you record a movie of the issue and go through it frame by frame, you can see that the hands are steady in the world, but the view position is jumping around
@pastel fern which tick group are you scaling it in
might want to put it post update
it shouldn't be reprojecting it if you are hitting frames
but that would cause a ton of artifacts too
logic is in player blueprint tick, but changing it to Post Update Work does not help.
The issue seems to be gone when running at 45hz
There is even more weired stuff to it. I had a talk to you about this I gues 2 years back in the Forum. The scaling also only works "properly" when attaching a Skeletal Mesh to the left and right GripMotionControllerComponents. There is no further logic, just the pure existance of the Skeletal Mesh comps as child make "it work properly"
And if the WorldToMeterScale values are progressing consistently during the scaling (as the prints have shown), I have no clue what would be so problematic, as the calculations that use WorldToMeterScale, are still the same. And the calculations work properly when not scaling.
And as unreal has the same problem with the VR Editor I would expect the problem in SteamVR Plugin
Ahoy! Anyone else found that activating ES 3.1 preview crashes the editor when using mobile multiview.
Checked issues but couldnt find anything.
I now tried to log the distance of the headset to the world origin. And the values are continous as WorldToMeter.
I also tried DrawDebugSphere in front of the headset every frame with the same distance and recorded the scaling process again. When looking at it frame by frame, the view suddenly gets further away from the sphere. So I gues the problem is with the projection info for the eyes or FOV or something like that
The issue perists when using a continous automatical scaling
executed in tick.
Thus my Grip Scaling code is out of question
I'm starting to think that VR and Unreal don't like each other xd
Can't they just make some love? dam it
In the next test I made, the GameThread values for the components are continous (WorldLocation). Stepping through the video, it now seems more like the view is correct, but the controllers don't get the transform update pushed to the render thread and render one frame with the previous transform. Though the same thing seems to be valid for the drawn DebugSphere in front of the headset which is only valid for one frame. Though the printed component values update and the sphere location is recomputed using the updated game thread values, the sphere is at the exact same location ... as if a render primitive update would get entirely lost/is skipped
The video shows the frame analysis of the recorded gameplay https://youtu.be/Sko0oczxnA8
Anyone have any recommendations or reference to existing solutions for LeapMotion (Ultraleap) teleportation/rotation for VR?
Anyone know how to avoid double vision in VR when looking at objects/widgets close to the eye?
@spiral marlin it could be due to lens distortion, but like it is an issue with 'vergence accommodation conflict'
you can look that up for some details, no real solutions except future hardware. You can blur close stuff with DOF just to discourage it but that isn't good for people who aren't affected (like people with strong glasses prescriptions and low range of focal range in their eyes)
thanks @sturdy coral. I'm currently just placing it far away and then trying to use tricks to make it feel close
Hey guys, is there anyone that develops using the Hololens 2 here?
I've got a few questions, I'm kind of desperate π¦
In case anyone stumbles by, this is my question: https://forums.unrealengine.com/development-discussion/vr-ar-development/1785701-windows-mixed-reality-holographic-remotiong-error
I'm trying to use the Holographic Remoting feature with a Hololens 2 device, but with no luck. I'm following the official guide: https://docs.unrealengine.com/en-US/...ing/index.html (https://docs.unrealengine.com/en-US/Platforms/AR/HoloLens2/QuickStartStreaming/index.html)
I ...
I'd really appreciate any help!
Does anyone here have experience using virtual desktop to play their project wirelessly on the quest ?
Once in VD I can go into my packaged game, it seems to work perfectly, but my controllers are not tracked for some reason...
The app I made and packaged works great in virtual desktop BUT
my hands do not track at all...
I would be MEGA greatful if anyone could advise me on this...
Hello!
need help with oculus quest profiling.
why in "initviews"=>"view relevance" can be too high - around 7-12 seconds. even on empty (10x10 plane + skysphere map )
what is "FandroidOpenGl_platformBlitToViewport_Custom Present"
what is this parameter? what is he responsible for and how can I reduce his time?
has anyone here ever managed to create a project which works on virtual desktop ?
@sonic lake very sorry to @ you, I just dont know who else I could ask,
I have tried in multiple forums..
when you get a moment could I ask you a couple of questions regarding this issue please..
@exotic halo Present means to Present what you got to the customer
in terms of rendering: You present your rendered image to the user.
What usualy swaps the FrontBuffer with the BackBuffer (SwapChain)
The Present can take long when the graphics card is not done rendering yet
at least that is one of the possible faults
The Present can take long when the graphics card is not done rendering yet
@pastel fern but almost 5s on empty map?
or it try to make render thread go to 72 fps (for quest native?), like kind of stall?
@exotic halo can you work with C++?
Maybe your skysphere is already to complex for quest?
create a completely new level
add a plane, a light and a player start
place the plane at 0,0,0 and the player start on top
see what happens
Maybe your skysphere is already to complex for quest?
@pastel fern it`s just emissive unlit blue and setup as "sky" in material editor. flat color.
place the plane at 0,0,0 and the player start on top
@pastel fern it was exactly this test map
any volumes? post process, relfection
@exotic halo can you work with C++?
@pastel fern nope - can`t into coding, but have coders near)
any volumes? post process, relfection
@pastel fern nope
search the code for the profiler stats in C++ and maybe a progammer can find the culprit in code. But timing is diffult to debug
ok. but why "initviews" is a high too? or it just oculus quest (android) specific?
i work with PC VR before and high init or hbz tells "bro - you have a bad game thread, optimize it"
dunno whats going on there. I trouble with tons off stuff in VR I would be happy if someone could just tell me whats the matter.
@covert ferry Sorry I have no experience with that, but if you share what doesn't work in relation to what you are trying to achieve the collective knowledge of the community may help you out.
@sonic lake it seems like an issue where my hands are not attaching to my motion contrllers somehow, and remanining on the spot.
they do teleport when i click the sticks though...
thank you for the reply though!
Looks like the motion of your controllers is not being tracked but the button input still works. You can verify that but logging their position a lower level and checking the results.
@covert ferry
What will happen if I enable the OpenXR plugin in my project ?
XD
@covert ferry Another thing you can try is to activate the debug HUD of your VR system. Not sure what you are using.
I am using the oculus quest.
What effect will activating the debug have ?
I haven't conciously activated it up to this point because its not something I have looked into.
@sonic lake very grateful for your time.
@covert ferry ok this is particular setup, Quest with virtual desktop, not sure what the implications could be or whether it should be fully supported. Maybe someone else has experience.
Hi, any idea why my display is suddenly black In "ES3.1 Preview" Mode when i'm previewing my game in selected viewport?
Hey guys, is it necessary to scale the HUD for different vr headsets? Any help is appreciated.
For the people that were helping me the other day, it turns out that my GPU was being bottlenecked, I found out when looking at my driver statistics (Windows apparently does a poor job at showing you how much is really used), so I removed the post processing, turned on Instanced Stereo and turned on Forward Shading and now I can hit the 90FPS at a steady rate and indeed the blurry / distortion effect has gone away :D
For any VR developers that have an Oculus Rift and did not know yet, you can very easily see your FPS / some more stats inside your headset if you use the Oculus Debug Tool. You can run it by going to C:\Program Files\Oculus\Support\oculus-diagnostics\OculusDebugTool and then selecting Performance under the Visible HUD option.
So, making VR scenes for rappers is a good side hustle for everyone if y'all need funding lmao
@misty halo could you elaborate lol?
Haha what kind of scenes did u do
Is anyone here able to explain to me (even if briefly)
What will happen if I enable the OpenXR in my project ?
In doing so should I be turning off other plugins ?
@wheat holly Nice!
I have recently made a climbing system using blueprints for vr in ue4. I am wondering how I can make it so when the player reaches the top, they can push themselves on top and step up onto the platform
@finite ember switch to a timeline animation and desactivate your climbing system?
Did something happen between 4.23 and 4.25 that changed default behavior of the print nodes to not display their messages while in stereo or in hmd? Upgraded my project and can't seem to get the print statements to display now in 4.25
@finite ember you need a kind of ground/platform detection to make that work.
Have a look at my climbing. You can still use your own climbing system and add my ground detection.
This step by step tutorial covers the implementation of my VR Climbing System.
Features:
- One/Two hands climbing
- Gravity falling
- Ground detection
- Fully compatible with the Standard VR template
- Teleport and Climb
- Climb while holding objects (single hand)
If you fin...
I'm looking for some advice regarding OpenXR...
I noticed when I disabled the plugin for steam that I could no longer package my game...
The hands disappeared from the mention controller...
I am hoping to experiment with OpenXR and I wanted to know if I can use that instead of the steam plugin or if I need to use them at the same time.
I have looked it up and I can't find any documentation explaining how to use OpenXR so I would be grateful for any advice!
Hi - what would be best practice for having a Flat Screen UI and a VR UI - I have basically the same buttons but the layout is quite different.
I'd like to not have to duplicate all the logic as far as what the buttons excecute.
Do I make a parent family for the widget which contains the functions?
Or do contain the function in a library - or interface?
@digital musk I did not fully understand the question you want to ask, but I can help.
@sonic lake At what time in the video do you explain the platform detection system?
Hi guys...
I have been asking on here for a couple of days now, looking online/reading documentation to no avail...
I Need to ask a few questions to someone who actually develops for VR
regarding controller tracking and API/ plugins.
I have come to a dead end, asked in multiple forums and I do not know what I can do to get some information at this point.
essentially my hands are stuck on the floor in my packaged projects...
I found a forum where someone had a very similar problem and this is how they fixed it...
However I do not know how to code (I exclusively use blueprints) and am unsure how I could test this fix in my own game
I've been really struggling with this issue. I posted this issue on the answer hub (https://answers.unrealengine.com/questions/953279/424-cant-get-motion-controller-location.html) and on stack overflow (https://stackoverflow.com/questions/61277064/4-24-motion-controllers-no-lo...
here is the link to the actual forum post
@finite ember that part starts at 14:30
Hi guys...
I have been asking on here for a couple of days now, looking online/reading documentation to no avail...
I Need to ask a few questions to someone who actually develops for VR
regarding controller tracking and API/ plugins.I have come to a dead end, asked in multiple forums and I do not know what I can do to get some information at this point.
essentially my hands are stuck on the floor in my packaged projects...
I found a forum where someone had a very similar problem and this is how they fixed it...
However I do not know how to code (I exclusively use blueprints) and am unsure how I could test this fix in my own game
Hi, I'm not some kind of expert in VR (by far not), but which engine version are you using and does the issue only exists that your hands are stuck on the floor when packaging or also in the editor?
So far I understand what the person is doing in your forum post is setting the hands when being spawned to be owned by the character (at least I think it's a character looking at the name) that spawns the hands.
only in the packaged version. I am using 4.242
@wheat holly
how might I do that in blueprint ?
How does your current set-up look like for getting your character or pawn to work?
This is from the VR template right?
yes
Did you modify anything, or does it just not work out of the box?
I don't believe i have midified it
when I play the packaged version through steam, the hands are stuck in the floor, through the editor it is fine
my best guess would be to parent ther motion controller to the pawn ?
Well, it's a bit weird that it does work in the editor but not when packaged. But you could try it, assuming Epic hasn't already done that somewhere.
I am not sure how else to make the hands spawned owned by the character.
Let me try starting the project as well
So for me it does seem to work when packaged, I'm however on 4.24.3. Maybe that 4.24.2 has a bug or something?
there is one other thing @wheat holly
it works for me when tethered, but it does not work when using virtual desktop (to run the packaged project untethered).
as I dev with an oculus quest
Pre UE4.25
What is it?
A Plugin that provides an extendet WidgetComponent that helps to debug your game. Its main purpose is VR development, as onscreen messages are not that useable in VR.
What does it do?
It displays text.
What text does it display?
It grabs into the engin...
Hmm, I'm not really familiar with virtual desktop. But is it up to date, have you tried looking if other people are experiencing the same thing on forums etc?
Alternatively, if you have done so. You could mess with some other engine versions and at least try to figure out if the problem is an engine bug. I had some bad luck with for example 4.25 so messed around with some different engine versions.
Assuming it has been fixed or is not here for a longer time that is, and is an engine bug in the first place.
But other than that I'm also not really sure, I also can't test it my self because I don't own a quest. (Still have the original Oculus Rift).
ok thank you, I think i might try with other versions just to see, once i have tried a couple of other things.
Hopefully you can figure it out! β€οΈ
If you need anything else from me just ping me :D
@sonic lake did you spend some though about climbing with 2 hands holding onto a grab object at the same time? This for sure is much more difficult as the hands are fixed in the virtual world but still can move around in real world and positioning the actor is suddenly a chore
@pastel fern it's definitely possible but it has two challenges. 1. attaching two hands to the same object needs some extra work as the logic from the VR template currently is that you attach the object to the hand and not vice-versa, 2. indeed you need to define how to move in that case. I would just use the intermediate point between the two hands as a pivot point, for the rest the logic would be the same.
Yeah, something like that, if it feels good. Dunno how they (if they) did it in TheClimb
@pastel fern For example by detaching the hands from the pawn and attaching them to the rock (whatever) until they are released and attached back to the controller
It's a common technique.
yeah I see, that makes it much easier as you don't have to counter the updates comming from the VR system
https://cdn.discordapp.com/attachments/221798862938046464/732168944244228096/unknown.png
@sonic lake sorry to bother you, could you please tell me if this makes sense to you and if it would be easy to apply to my project using blueprint ?
the part about setting the owner...
@covert ferry expand the SpawnActorFromClass node. There you can set the owner
I am not sure the default vr template uses a spawn actor from class node, but I will look
you can also set the owner to an actor with SetOwner
brilliant thank you, I will experiement with that then, to see if setting the owner of the hand mesh to the pawn makes it work.
owner is only a reference. Mostly used for Multiplayer
This is about "Who (which object) is able to send things to the server"
I wonder what that has to do with attaching the hands then ?
This came from a post where a persons hands were stuck on the floor (like mine are)
Its good practice to do it, but depending on your code, not neccessary. Maybe he is using the Owner variable to call stuff in his code.
Hello everyone! :)
I changed my oculus quest build from es 3.1 to vulkan... and have a huge performance loss due to slate draw. But why? i didn`t use any widgets (
Is anyone developing something with the Hololens? In particular, something that uses UDP sockets?
@exotic halo editor. You would need to run without editor and use "stat startfile" and "stat stopfile" for profiling, then open in Profiler
it`s not editor
it`s apk stat
deployed on quest (
@exotic halo editor. You would need to run without editor and use "stat startfile" and "stat stopfile" for profiling, then open in Profiler
@pastel fern it`s exactly what you say - it packaged game stat file π¦
@exotic halo uhm the problem is not the rendering of slate, but CustomPresent
we had that problem last week #virtual-reality message
and Present is probably waiting for the graphics card to finish rendering
All another process in render thread takes 6-8ms.
and Game thread time +- same... and 30-40ms frame sync of course
Are we still talking about an empty scene?
kind of. 5-10 meshes + character
if i build it without Vulkan - it solid 72 fps
i`m just curious - why it happens?
No idea, not working with quest
Maybe you have heavy shaders that were downgraded when not using Vulkan, but with Vulkan the default shaders are taken?
Test empty scene first. Plane, playerstart, simple light.
If that runs, try to add one thing after another
how I can do a side by side in my game? I'm making my own vr headset, with some blueprints or something similar?
Maybe you have heavy shaders that were downgraded when not using Vulkan, but with Vulkan the default shaders are taken?
@pastel fern shaders just texture and "fully rough"
will try upgrade to 4.25 or 4.25 oculus branch. mb it helps
@pastel fern thanks for that link. I guess it's time i move to something better than just seeing the print messages anyway. So they made them private in 4.25?
The message buffers, yes.
Though just that should not break the display that was working in 4.23
Hey, does anybody know why my motion controller mesh has no material applied in the packaged version? I'm using the steamvr input plugin and the default visual for the motion controllers. The material shows up playing in editor . Thanks.
4.24.3
Hey, does anybody know why my motion controller mesh has no material applied in the packaged version? I'm using the steamvr input plugin and the default visual for the motion controllers. The material shows up playing in editor . Thanks.
@grand chasm mobile or desktop?
@sullen vortex desktop
if you hit play on vr in the editor you can see them?
Yes, they look good then. It's just when packaged, the meshes have no material. It must be something with that motion controller competent visualization that I'm not accounting for. I'm not attatching a mesh to it myself, if u know what I'm saying.
it used to be an issue because they weren't using a package compatible method of extracting the texture data. But a fix got merged in a few engine versions ago so it should be fine now.
4.25 broke some stuff with plugin content folders
@grand chasm try adding the plugin's content folder (or the sub folder with the material) to directories to always package, in packaging settings
I know for steam audio it isn't packaging certain uassets for default reverb it uses or something and that is a fix there
@sturdy coral the texture is from the steamvr folder in steam
not the engine
or you meant the material itself
nnn
mmm
that should throw some errors out in log though
yeah the material uasset I guess
Yes, they look good then. It's just when packaged, the meshes have no material. It must be something with that motion controller competent visualization that I'm not accounting for. I'm not attatching a mesh to it myself, if u know what I'm saying.
@grand chasm any warning during package? do you have the game log? as modern says it should appear in it
has anyone seen this before? when I run my app through the alpha channel in store :
when I run the exe from the desktop I get a constant performance spike
throughout the entire game, the graph just goes up and down constantly. Just have my app in review stage and failed on performance 3. they are experiecing what I see when I run the exe from desktop, rather than through oculus. Exactly the same build
figured it! so I need to press alt-enter to make it proper fullscreen and then it seems to be fine
anyone else experienced this and how to resolve?
@night linden I would probably force the app to be fullscreen
I did try with the console command fullscreen. it runs it changes it which is great and fine. then I exit play game again and it comes back to the above π¦
@stable ibex
While developing a VR game on Unreal Engine 4, we have some issue - a severe performance drop when launching a project through SteamVR, which appeared in SteamVR version 1.11.11.
When game is running via the Oculus application, then everything is fine (the performance is the same as it was before). If via SteamVR, then the performance drops by 1.5-2 times.
@fading shore profling
just using diffirent app to start VR. Same hardware
did you profile the issue?
did you profile the issue?
@pastel fern Nope, I"ll done it soon. But all was ok until 1.11.11. Project has no changes at all.
There was some problems with heavy logging. Mabye u suffering from that
how can I figure it out?
#virtual-reality message
@pastel fern thanks!
@sullen vortex We went with recreating the controllers with BPs instead. When looking at build logs thee was no warning indicating an issue with a material or anything steamvr content related.
I am desperate for some information.
Has anyone here got experience with using Virtual desktop to play test their packaged VR project ?
My issue is that when I go into my project in virtual desktop, my hands are stuck on the floor, totally still...
I can make the buttons work but the hands do not move at all.
And I know they are being tracked to some extent because when I press the options button to bring up the steam options, the touch controllers appear in front of me as they should.
this same project runs just fine when using the oculus link.
PLEASE, if you have any idea what might be going on I would be greatful, I have been on the VD discord, checked online, no luck...
Here Is a possible fix but I am not sure how to implement this so I would be very grateful for any advice on this...
@covert ferry try disabling the oculus plugin and see if it works through steamvr on link
(assuming virtual desktop still requires steamvr and doesn't work with oculus sdk)
so you can rule out it being a steamvr problem
just turn off the oculus plugin in the project settings then package/ try it ? @sturdy coral thank you for the reply
yeah, in plugins not project settings
does virtual desktop streaming still require steamvr or did they make it work with other stuff yet?
it still requires steam VR @sturdy coral
Virtual Desktop is on the Oculus store now, so it has to be working without SteamVR
It doesn't use steam vr unless you download the patch via sidequest (which allows you to stream pcvr wirelessly, and with excellent quality/very low latency)
@chromatic
@radiant garden
Oh funny
Yet another place where the Oculus walled garden is causing problems
LOL
It's a real shame too
@covert ferry were you able to test without the plugin?
@sonic lake Your suggestion for the climbing step up system didn't seem to work. When a try to pull myself up onto something, my arms don't push me high enough so I can't get on top of the object. Any other ideas, or am I doing something wrong?
I wasn't, but I am going to have a go this morning, I will report back to you with my findings π
@sturdy coral
@sturdy coral I tested without the plugin, at this point I am convinced that it is an oculus issue. I dont think virtual desktop knows what to do with it.
normally when I open the app and I have link set up it automatically opens.
I didnt actualy specifically open it through steam vr so i will have to try that again.
@covert ferry if you disabled the oculus plugin, it should have run through steamvr though right? you may have to disable the openxr plugin too
well I think I have to go into steam VR and set it to play a non steam game first as I did with my original version. @sturdy coral
Does VR preview not work with it?
I wouldn't be concerned with launched through steam vs just verifying it is using steamvr (if steamvr overlay works it is, or possibly openxr)
But with virt desktop rather than link maybe that is a requirement and so is worth testing I guess
I just managed to get it to work somehow, but it bugged out when I changed level within the app..
Has anyone ever came across these errors ?
Anyone know why builds on the Pico Neo 2 are really dark?
@fading shore profling
@pastel fern
SteamVR has twice GPU load higher
app frame rate by Oculus debug tool 80Hz vs 40 (Oculus app vs Steam VR)
@pastel fern if u at list can provide me links to figure it out - it will be very helpful
@fading shore Use the profiler. https://docs.unrealengine.com/en-US/Engine/Performance/Profiler/index.html
An overview on the Profiler Tool used to monitor game performance.
@polar valve what made you decide to get Pico Neo 2 vs Quest ?
@mighty carbon it's for location based entertainment and Facebook is making it difficult to work with the quest. The Pico is better for enterprise use in many aspects, just a shame the tracking isn't as good
I am not sure how Fb makes it difficult to work with Quest, but good luck working with obscure HMDs and UE4 :/
They change the licensing terms every couple of months and they're very vague about whether the quest is allowed to be used in LBE. Iirc they've also sued businesses in the past for using the rift.
It's not as nice as working with the quest but we don't really have a choice unfortunately π«
tbh, I'd contact Oculus to clear up all the legal hurdles and get Quest.
Maybe it's worth trying again yeah. We had written approval in the past but the guy who approved it quit or got fired and I get the feeling no one at Oculus knows what's going on now. There are like 20 companies building quest based systems but no one can get a clear answer
The Pico is pretty good though tbh, other than the tracking
good tracking is everything in VR
True... The tracking is good when it works, it just never remembers its position or guardian
@fading shore if you see doubling you need to turn off reprojection when measuring
On the oculus runtime through their debug tool, and steamvr through a special hotkey on the mirror window (or they might have added an option again to the menu)
@finite ember hard to tell what could be wrong without seeing your code and knowing you have done an own implementation. Anything more you can share?
I noticed that a text render has horrible shader complexity (ie you can see the hotspot when viewed in optimization mode). Would it cost less to place a 3D text in the world? Is there a βbest practiceβ when putting text into the world in VR?
@placid spear There is no real best practice I've seen text done in many ways. If performance is the main issue using an image with the text on an unlit shaded plane would probably be the cheapest option.
@cosmic shoal cool thanks for the input ππ»
@tired tree regarding flickering when scaling WorldToMetersScale. The problem is do to late update. Not sure what exactly, but the GameThread values of the components after transforming into Unreals space and applying WorldToMetersScale seem fine.
These changes fix the issue. Also works for the VR Editor
void UGripMotionControllerComponent::FGripViewExtension::PreRenderViewFamily_RenderThread(FRHICommandListImmediate& RHICmdList, FSceneViewFamily& InViewFamily)
{
...
//LateUpdate.Apply_RenderThread(InViewFamily.Scene, OldTransform, NewTransform);
}```
```cpp
void UGripMotionControllerComponent::FGripViewExtension::BeginRenderViewFamily(FSceneViewFamily& InViewFamily)
{
...
//LateUpdate.Setup(MotionControllerComponent->CalcNewComponentToWorld(FTransform()), MotionControllerComponent, false);
}
void FDefaultXRCamera::PreRenderView_RenderThread(FRHICommandListImmediate& RHICmdList, FSceneView& View)
{
...
// TODO TESTING
//View.UpdateViewMatrix();
...
}
(Not sure why FDefaultXRCamera and not FSteamVRHeadset. FSteamVRHeadset is also initialized and running, so both are active...)
@pastel fern I told you to just disable late updates on the controllers to test
There is already a Boolean for that on the engines controllers
yeah, but that didn't help as the view was still broken. Difficult to see...
It's not supposed to run the code path with it disabled
The camera of course
But not the motion controllers
Both suffer from the problem. Just disabling one makes it from the perspective of the viewing user stil existing. Also I tried commenting out late update for the headste earlier, but that did not fix it as the view matrix update was seperate from it.
@pastel fern saying you likely could have kept controllers just disabled and only altered camera
Regardless, just bug report it to epic
It didn't used to be that bad
Tag it as a regression
Will do. Just reported back so you know whats up
The fact that it is repeoducable in be editor should make it an easy fix
i want to make it so when I throw a knife at a target, it will only stick if it hits on the blade side. How could I do this?
@finite ember compare the forward vector of the blade with the forward vector of the hit for a dot product range
@tired tree How could I get the forward vector of just the blade?
@finite ember hard code a relative offset if its not X+, or if it is X or Z + then get it from up or forward vector
you can place a scene comp on your base weapon class and point it to the edge on each seperate weapon if they differ
or go farther and start defining zones
Thanks!
@tired tree Made this bit but the problem is that it will work perfectly on one side of the knife, but if I flip the knife, it gets reversed and if the hilt is facing the target it works. What am I missing? (Sorry, I'm slightly new to blueprints and especially in vr)
Does anyone here have experience working with the quest ?
@covert ferry Lots of people here do, how can we help you?
I was just hoping I could get some advice, I have gotten my project onto quest for the first time and it runs moderatly well!
I absolutely need to improve its performance and the AA on it look SO bad, I think the AA in itself is enough to make you feel a little queezy.
@polar valve
Is your project set to use the Forward Renderer?
I need to ask questions such as....
Is there a performance improvement using the mobile the mobile version of the mannequin for on screen npc ?
Just how bad it it to have 1 or two glass objects on a scene ?
Can I get away with having a rotating object in the scene ect...
yeah it is set to forward shader
For performance first you need to determine if your bottleneck is the gpu or cpu, or both.
Glass is pretty tricky to do on the Quest
Just up front, I havent come here without first trying to improve it by looking online.
The glass looks great (it is just a cylindar which rotates
when I play my game in the editor vs on the quest are totally different experiences, would the stat give me acurate information ?
Run it on the Quest
will I see that information within the quest ?
thank you for taking your time to help me out by the way!
My pleasure π
I will try that stat unit command
But yeah for optimization step 1 is always figuring out your bottleneck; cpu or gpu. It will most likely be the GPU before optimization
The introduction of standalone means the arrival of more approachable devices and, for developers, a broader range of consumers to target. The good news is youβre already ready. A stable of universal techniques and best practices can help reduce draw calls and hit perf without...
awesome! I am going to take some time to chew on all of this!
It's going to take some time to learn all this stuff, developing for the Quest can be challenging
I am more then happy to put the time in so I am greatful for the info.
do you have any advice regarding basic textures and what works well on the quest ? @polar valve
like, best practices
textures aren't really a big issue though, it's mainly draw calls
memory use usually isn't the problem for Quest games
But if you have a lot of different textures you'll have to merge the materials to reduce draw calls
when you say untextured, do you mean like baiscally just applying color to a mesh instead
of trying to have effect like carpet/ leather/ metal ?
ok I will have to look into merging materials and how to do it
this kind of art style
The video I linked talks about textures/ merging materials
thank you @polar valve
someone know how if the VR template have a teleport mode like other many game
where we can push stick for teleport and not the button
(i m with the Rift-S)
@static mountain it doesn't have that option built in but it is pretty straightforward to implement. You need to take the thumbstick axis events and check if the absolute output value is > of, say, 0.7. If so, you do a Do Once to trigger the teleportation. And when the value falls back < 0.3 you reset the Do Once.
i suddently tried VR Preview and my motion controller is out of place :/
@sonic lake in fact, that i did in previous projet, but in this previous projet it s wotk, and not in my new, and i dont know how i did π
i put a dead zone
but i must miss something ^^
well
in fact, that work
my real problem is not this
my probleme that i don t arrive to fix in new projetct, is that when i teleport
a have the classic circle on destination
but if i orient it for exemple on left, when i release the stick, the arrow back to default position
so i cant orient player before teleport (i dont know if i m understandable)
@brisk spade sometime i have this problème
i restart VR
doesnt helped me π
(unplug it and plug it)
ahh
i restarted unreal and reconnected th hmd
@static mountain once you modify how the thumbsticks work, you also need to modify the logic for determining the final LookAt direction for the teleportation. You can use the X axis value combined with the Y axis value to calculate your target rotation angle, then apply it to the pawn.
that nearly i have
cause as i said, my first projet work fine
i miss something on new i dont understand
i juste modify few the template
@static mountain is the code one to one identical between the two projects?
What I find handy when debugging in VR is to have a Text Render component attached to the hand and use it to show some key values in real-time
What I find handy when debugging in VR is to have a Text Render component attached to the hand and use it to show some key values in real-time
@sonic lake that i begin to do now
nice
@static mountain the correct way to calculate the offset from the center and compare it with the threshold for the deadzone would be SQRT(ABS(X)^2+ABS(Y)^2)
In that case you can avoid the ABS(), the ^2 will take care of the sign
i havnt found the reason why my pawn is so wierd :/
I wanted to give back a little for all the help over the years so I created a Youtube channel a little while ago for those interested in Oculus Quest development with Unreal. https://www.youtube.com/channel/UCEXaAcYNnCcg2Ibp9ATffSA
That is actually a really good channel too, very well put together content and clearly explained tutorials!
can anyone tell me the actually effect of mobile multi view and instanced stereo ?
And do I use BOTH of them ?
I am using 4.24.2
If I use mobile multi view by itself (the documentation I read says to remove instanced stereo when enabling this)
I get a totally black screen (the music of the app plays thoough)
any idea on this @polar valve ?
My app looks so jaggy I just cant understand why I have 8X SMAA on and it looks like a sega game wtf
you need to keep in mind that in VR the eye distance close to the display and the pixel of the display that are visible.
The text actually looks 8bit it is that jaggy.
Do you have any ideas what I could do to help the situation @pastel fern ?
we have big problems with text as well. In basically every application you can ready even small text without issue, but we always had problems with it. It is recommended to use ForwardRendering with MSAA. But because of lacking features we stick to deferred and when enabling antialiasing the text is very blurry. Our current solution is to switch AA when the player hovers the interface with the pointer
4.25 has fixed most of these issue. the antialiasing on the Oculus Build of unreal is really nice now. for anti aliasing on Quest in 4.24 i think you might need a custom Device Profile and set the antialiasing information in there directly.
If you are working with Oculus hardware, you might want to start using UE4 from their github
Are there prebuilt binaries for the Oculus branch or do you have to build from source?
you need to build from source.
Does the Oculus branch work with non-Oculus headsets?
Yeah.
Its pretty much the same but it gets update more regularly by the oculus Devs so it gets fixes faster.
Looks like I need to make disk space to build from source.... Deleting Skyrim + mods ought to about do it.
lol. after building from source 4.25 takes up 110Gb
Yeah I have 2 x 1tb drives full of crap on my computer
should be fine then lol.
Most of it is games and source from various projects I've been poking around at
*mostly full
hasn't the oculus branch seen some specific rendering changes? I wouldn't whole hardheartedly say that it will work fine for other headsets always as that isn't exactly their goal.
they would have to test engine changes against the other headsets for that to be true
not that it "currently" causes any issues
I don't believe they have any changes that prevent fork from running other HMDs, but I don't have any other HMDs so I can only speculate at this point
i cant say for other headsets exactly but you can still develop for other platforms fine. The rendering differences from 4.24 to 4.25 have been quite dramatic especially with antialiasing.
Is it possible to use one light to make dynamic shadows on quest ?
try it @covert ferry
I am currently trying to do it @mighty carbon π
Does anyone know if Quest has a problem with media players ?
I am trying to use smalle videos for my tutorial and I have them playing within widgets
I can't get the Media Player to work for Oculus Quest at all.
What I have:
- A simple blueprint spawned in the scene with a audio component and a plane, and a
@sonic lake I litterly found that too and it worked!
@sonic lake do you know if there is much performance gain using the mobile version of the unreal mannequin over the standard one when deploying to the quest ?
I would check but I can't get to my pc atm
Just off the top of your head, in your experience..
I don't think it makes much difference. The unreal mannequin is very optimized already.
If you have FPS issues I would look elsewhere.
@covert ferry
How can I detect a static mesh component within a blueprint actor is overlapping with an actor? Thanks
Nvm, just figured it out. Here is what I came up with if anyone else needs it
@sonic lake @covert ferry I think it is definitely worth moving to the mobile mannequin, almost no visual difference and way less tris
if using deferred, (depth+motion+base pass)*2 eyes, its 246,000 tris with default mannequin, vs 42,858 for mobile
@sonic lake as you help me i show you the result of my daily VR test
You can see a stuf i learn on your youtube ^^
well, it s far from a clean game, but that amused me
@static mountain Looking good! It's splatter almost Tarantino style. π
@finite ember You only need to bind that event once, not on tick.
@sturdy coral true and that is indeed the recommendation when developing for the Quest. On the other hand tris count is only part of what is affecting the overall performance and, in VR, where we must also strike a balance between visual quality (mostly geometry dependent) and FPS. Draw calls and shader complexity also matter.
With say 4 players, that's potentially half your tri budget on desktop
@sonic lake @sturdy coral all I can say is that when I get close to an npc (unreal mannequin) my headset immediatly begins to stutter
regardless of the material it has too.
That is weird because it has no lods
(I am going to be trying to learn how to profile in this next couple of days to figure out what in my scenes are making me stutter
So geo cost should be the same no matter how near you are
Im not educated enough on that side to even guess, I just know it is VERY prominent
Just place the same SM in a very basic level and see whether it still happens
And if it happens in the same way (distance related)
@covert ferry are you coming within csm range?
If it is out of shadow range then enters it, geo cost balloons even more
sorry I am not sure what you mean
Cascaded shadow maps stop being generated after a certain range
Also if you have per object shadows it is even worse
For outdoors it is hard to get away from it, you can do capsule direct shadows
I am making a sports education app and it requires you to be stood right next to the mannequin
it is all indoors
Use 'stat rhi' to see if it is really the problem
It will show triangle count
For interior stuff, all static lighting and capsule shadows can work well
@covert ferry You can also generate lods with the skeletal mesh lod plugin
ok so can you recommend a way to do that stat check with the quest ?
I will also look into how I can turn only capsul shadows on
I don't know if quest supports them or if their shader cost is viable there
You probably want no shadows or faked blob shadows on quest
I am happy to try either way, Is there a 'Turn on fake blob shadows' button ? XD
@covert ferry to run that rhi command I think you need a Bluetooth keyboard
And a test build instead of shipping
I don't do any quest dev so not sure
If I change a light from stationary to static, do I have to build the lighting for it to take effect ?
does someone have any idea how i can realize some form of winking and some actor reacts to it?
1.2m on Desktop if I remember correctly.
@sonic lake Soooo depends on hardware and scene /shader complexity. sometimes 500k bad or 2kk - smooth 90 π
hello again π have another problem.
we change to ue 4.25 and have some weird graphic problem on quest. After some time all static meshes collapsing, particles and all skeletal meshes are fine. even new spawned static meshes - fine. If we restart level or change map - all back to normal again.
@sturdy coral I want to take your advice but the mobile version says incompatible with 4.24.2 as it is only updated to 4.8
what should I do regarding this ?
its just an asset, it should work fine.
I am seeing in several places I should be trying to merge my meshes for oculus quest to keep the count low, what is the most efficient (performance wise) way to merge ?
any mobile VR rendering guru here? I merged this https://github.com/EpicGames/UnrealEngine/commit/72c8c40ee36dbb20f2deb6e2b9e96f01f2694655 into 4.25.1 and it doesn't seem to have any effect on aliasing of masked materials in mobile VR π¦
I tested with Text Render actor (I modified the material to be masked instead of translucent)
your text looks jaggy @mighty carbon ? if you figure this out I would love to know as I am having that problem too.
@covert ferry that's because UE4 never supported alpha to coverage MSAA for mobile VR (for any forward VR basically)
use the new 3d text feature that added in 4.23 ;p
@tired tree where can I find that ?
Guide to placing 3D Text in Unreal Editor, and using it to create motion graphics.
thank you @tired tree !
Hello again, now i`m with video.
Have any one encountered similar problem?
just all static mesh in a map turn into this mess
@tired tree wouldn't it be costly in VR ? (3D text)
@mighty carbon you have to weigh quality vs cost, but its not like text renderers are free
do you know if 3D text is cheaper than UMG ?
i would imagine it would entirely depend on circumstances and hardware, go profile it
and another weird stuff on 4.25.
In editor, when i switch to es 3.1 preview all static meshes are gone and only skeletal can be seen
and all material/static mesh asset preview are solid grey color π
Hi,
My oculus quest quest project has a problem where you see a lot of stutter when you move your head around but I am unsure how to diagnose the problem
1 year ago i have stutter problem with alembic animations.
My Website is finally live and development is announced, I feel happy :)
congrats @misty halo !
I am going to ask in UMG too but I feel this is a good place to ask...
Widgets are important for my game as I have the player selecting activities through widget menus all the time.
I am developing for the oculus quest and in the quest the widgets are causing stutter.
Does anyone here know of any performance improvements for them to help with this ?
3d widgets btw
It would be amazing I could ask a couple of questions to someone who has gotten 3d widgets working in their oculus quest..
What is the current state of the steaminput plugin in unreal? Last time I heard, if the steamVR input plugin was loaded, oculus native controls broke? Is that still a thing?
I don't think so @sly elk
I built and tested my project with oculus and steam plugins enabled throughout, without issue
I only removed the steam plugin when I began testing on the oculus quest, and that is because i was advised to, not because I had problems.
congrats @misty halo !
@covert ferry Thank you :)
@covert ferry Are you talking about just the SteamVR plugin or the Steam input plugin?
hey guys, somebody out there can help me with a strange problem i suddenly got with my oculus quest HMD ? I want to start the VR Template from UE4(.25.1) with link cable and oculus software installed. It worked before, but suddenly it wont start anymore, in the oculus home view the it's stuck loading ue4 editor. On Desktop the VR Preview ist started but not connected to my HMD. No Errors/Warnings in output log... Any ideas ? Thx in advance for any help π
i dont know what was wrong, swapped usb ports and now its working , anyway thx π
eh.... i want to solve my problems just by port swap too π
Hey guys,
Has anyone here managed to get 3d widgets into their oculus quest projects without it tanking performance ?
any time I have a 3d widgets in the scene the quest crawls, its really bad :/
We have some 3d widget as scoreboard. no stutter or performance drop.
i look into how it works tomorrow
Thank you @exotic halo !
I would be grateful for any info.
Like how they are set up and if there are any transparent/alpha elements to them
@covert ferry
Don`t have any transparency. Only opaque and unlit. materials.
Depends of what you want.