cancel
Showing results for 
Search instead for 
Did you mean: 

Misc. Issues.

Anticleric
Expert Protege
1) Builds check against runtime version?
Not sure if this is the case (testing now), but if I make a build with the 0.4.3.1 SDK and the 0.4.4 runtimes installed, does it check when the user runs the app for the 0.4.4 runtimes? If so, why? What happens if I build from Unity without any runtimes installed?

2) Camera fades
Also, basic camera fades haven't worked in unity since 0.4.0 for me. I've ended up having to put a sphere over the camera and fading the alpha, which is a much bigger pain in the butt. Is this something that's going to be fixed? I'm running deferred (if that makes a difference).

3) Fulcrum of POV
Has any thought been put into the camera rig position relative to the player controller for first person locomotion. Things get a bit weird if say the player starts the game in one position, then moves their chair to another position. The effect is that when they rotate the playerController the head is off center and swings around an arc with the playerController as the fulcrum. Very disorienting and happens constantly based on positional changes. I know R is a hard reset... but are there any other proposed solutions? Off the top of my head, maybe the playerController and collision box could slide along based on the cameraRigs X and Z values (unless of course it bumps up against another collider).

4) Renaming of prefabs
I just want this here for the record. When you(Oculus) rename the prefab pieces in the SDK (ie. CameraLeft to LeftEyeAnchor) it completely breaks about a million references to scripts and image effects in more complex games with multiple scenes. Please don't change it again 😛 Nobody cares what the pieces are called.

5) Conflicts with Nvidia software.
I've heard reports of various issues from others, but I know that, in my case, I can't update my video card drivers with the runtimes installed. If I completely uninstall the OVR stuff, then uninstall all the Nvidia stuff, I can update my video drivers, and then re-install the OVR runtimes. Am I crazy? Also my NvLEDService (that control the fancy lightshow on my cards) crashes after like 12 hours of the computer being on. Both problems may be completely uinrelated.. but as I said. I've heard others mention strange issues.

6) The mystery switch
In Unity: Edit > Preferences > Oculus VR > Optimize Builds for Rift
What does this do if anything?

7) Publicly listed preferred settings.
Not sure if this is somewhere and I just havent seen it.. but things like AA yes or no? DX9 or DX11, V-sync on in Unity? Are graphic settings never going to come back? Does it default to the highest settings on everyone machine?

So many questions. haha

Anyway. This is the crap that keeps me up at night. If someone could take a crack at the answers I would appreciate it.
Thanks 🙂
2 REPLIES 2

vrdaveb
Oculus Staff
"Anticleric" wrote:
if I make a build with the 0.4.3.1 SDK and the 0.4.4 runtimes installed, does it check when the user runs the app for the 0.4.4 runtimes?

No. 0.4.3.1 applications should work fine with the 0.4.4 runtime. However, if you update the runtime, you should also update the display driver.

"Anticleric" wrote:
What happens if I build from Unity without any runtimes installed?

If the runtime isn't installed, the app will stall for a few seconds at start-up and then continue to run without tracking. The Unity integration will instantiate a "Debug" HMD, which has the FOV and resolution of a DK2.

"Anticleric" wrote:
Also, basic camera fades haven't worked in unity since 0.4.0 for me.

How are you doing the fade? You should be able to use an image effect. Alternatively, have a look at the new OVRScreenFade.cs script. It animates the alpha of a full-screen quad. I haven't tried the approach described at http://unity3d.com/learn/tutorials/projects/stealth/screen-fader, but that should work if you attach the GUITextures to the eye cameras.

"Anticleric" wrote:
Things get a bit weird if say the player starts the game in one position, then moves their chair to another position.

Yeah, it's a bit weird that HMD rotation can affect OVRPlayerController, but translation can't. We are working on that and will definitely consider your ideas. For now, can you call OVRManager.display.RecenterPose() once the user is situated?

"Anticleric" wrote:
When you(Oculus) rename the prefab pieces in the SDK (ie. CameraLeft to LeftEyeAnchor) it completely breaks about a million references to scripts and image effects in more complex games with multiple scenes.

Sorry, 0.4.3 was a big change for many parts of the interface. Fortunately, the GUIDs didn't change. so any references you had should have carried over. Was that not the case? We aren't planning to rename them again.

"Anticleric" wrote:
I can't update my video card drivers with the runtimes installed. If I completely uninstall the OVR stuff, then uninstall all the Nvidia stuff, I can update my video drivers, and then re-install the OVR runtimes.

What's the behavior when you try to update? Does the installation fail? I haven't heard of anything like that. It's hard to imagine how our stuff could cause that, but I'll ask around. If you don't have the latest 0.4.4 RC, there may be a race condition that causes apps to crash on start-up when you also have NVIDIA driver 344.75 installed. Let me know if you see that with the latest RC.

"Anticleric" wrote:
In Unity: Edit > Preferences > Oculus VR > Optimize Builds for Rift
What does this do if anything?

It generates _DirectToRift.exe and configures your player settings to run full-screen on the rift without showing the resolution dialog (unless you hold ALT). The code is in OVRShimLoader.cs. In direct mode, _DirectToRift.exe just loads our display driver and then execs the usual app executable. In extended mode, it doesn't load our display driver, but it configures the app to run full-screen on the rift. It took some changes on Unity's side, but we're planning to get rid of all this and let you use the resolution dialog as usual (including quality and input settings) within a release or two.

"Anticleric" wrote:
Not sure if this is somewhere and I just havent seen it.. but things like AA yes or no? DX9 or DX11, V-sync on in Unity?

The "happy path" is on the main page of our reference manual here: https://developer.oculus.com/reference/unity/. We should also list it in the integration guide. I'll make sure we get that included.

Anticleric
Expert Protege
Thanks for taking the time to answer all these Dave. 🙂

"vrdaveb" wrote:
How are you doing the fade? You should be able to use an image effect. Alternatively, have a look at the new OVRScreenFade.cs script. It animates the alpha of a full-screen quad. I haven't tried the approach described at http://unity3d.com/learn/tutorials/projects/stealth/screen-fader, but that should work if you attach the GUITextures to the eye cameras.


I'm using this from playmaker. Used to work before 0.4.0
Not sure what happened.


using UnityEngine;

namespace HutongGames.PlayMaker.Actions
{
[ActionCategory(ActionCategory.Camera)]
[Tooltip("Fade to a fullscreen Color. NOTE: Uses OnGUI so requires a PlayMakerGUI component in the scene.")]
public class CameraFadeOut : FsmStateAction
{
[RequiredField]
[Tooltip("Color to fade to. E.g., Fade to black.")]
public FsmColor color;

[RequiredField]
[HasFloatSlider(0,10)]
[Tooltip("Fade out time in seconds.")]
public FsmFloat time;

[Tooltip("Event to send when finished.")]
public FsmEvent finishEvent;

[Tooltip("Ignore TimeScale. Useful if the game is paused.")]
public bool realTime;

public override void Reset()
{
color = Color.black;
time = 1.0f;
finishEvent = null;
}

private float startTime;
private float currentTime;
private Color colorLerp;

public override void OnEnter()
{
startTime = FsmTime.RealtimeSinceStartup;
currentTime = 0f;
colorLerp = Color.clear;
}

public override void OnUpdate()
{
if (realTime)
{
currentTime = FsmTime.RealtimeSinceStartup - startTime;
}
else
{
currentTime += Time.deltaTime;
}

colorLerp = Color.Lerp(Color.clear, color.Value, currentTime/time.Value);

if (currentTime > time.Value)
{
if (finishEvent != null)
{
Fsm.Event(finishEvent);
}

// Don't finish since it will stop drawing the fullscreen color
//Finish();
}
}

public override void OnGUI()
{
var guiColor = GUI.color;
GUI.color = colorLerp;
GUI.DrawTexture(new Rect(0,0,Screen.width, Screen.height), ActionHelpers.WhiteTexture);
GUI.color = guiColor;
}
}
}


I'll try OVRScreenFade.cs. Actually came up with some pretty cool effects just doing it manually with noise textures and particle shaders as well.

"vrdaveb" wrote:
Yeah, it's a bit weird that HMD rotation can affect OVRPlayerController, but translation can't. We are working on that and will definitely consider your ideas. For now, can you call OVRManager.display.RecenterPose() once the user is situated?


Ya. You can just hit R. But depending how much the player moves around, you end up hitting it quite a bit.

The nVidia driver might just be something weird going on on my end. Worked fine when I ran the installer as Admin.
I do have crashing issues with 0.4.4 though. Not as much on start-up as loading a new scene or exciting (hitting escape). Just ignore me. Computer has been acting squirrely lately.. need something to blame. haha

"vrdaveb" wrote:
It generates _DirectToRift.exe and configures your player settings to run full-screen on the rift without showing the resolution dialog (unless you hold ALT). The code is in OVRShimLoader.cs. In direct mode, _DirectToRift.exe just loads our display driver and then execs the usual app executable. In extended mode, it doesn't load our display driver, but it configures the app to run full-screen on the rift. It took some changes on Unity's side, but we're planning to get rid of all this and let you use the resolution dialog as usual (including quality and input settings) within a release or two.


Oh neat. I think it's been in there since before direct to rift mode. Didn't realize I wouldn't get direct mode with it turned off now.

"vrdaveb" wrote:
The "happy path" is on the main page of our reference manual here: https://developer.oculus.com/reference/unity/. We should also list it in the integration guide. I'll make sure we get that included.


Also cool. I haven't bothered snooping around the website much.

Alright. Thanks again for going through all of this. Just things that have been on my mind.
Keep it real.