Oculus Rift Support

You might be right. At this page they state that OpenGL is presently not functional on AMD hardware.
The page hasn’t been updated since 24th of july though…
Installing the latest driver didn’t help either…

EDIT: Installing the latest driver and making sure that windows own driver is removed does the trick though, so direct mode works. Jeeuhj!
Rickard, I promise you I ll put you name in the acknowledgments of my thesis (when it is finished). And the same for phr00t and the same for pspeed :slight_smile:

@phr00t: Is it intentional that the OculusGuiNode is in the Opaque bucket? Should it be changed to Gui bucket?

@phr00t: Is it intentional that the OculusGuiNode is in the Opaque bucket? Should it be changed to Gui bucket?

Back when the Oculus distortion was a filter, putting the GuiNode into the Gui bucket made it draw ontop of the distortion, which was bad. We had to put the Gui elements “into the scene” & outside of the Gui bucket to be a part of the distortion. Now that SDK-side distortion is happening, it might be fine to put it back into the Gui bucket. However, I’m not sure how setting its distance from the viewer will work. Also, it wouldn’t be obscured from geometry infront of it, which can be jarring. I recommend keeping it part of the scene & out of the Gui bucket, in my opinion. All objects actually get put into the Translucent bucket, which get rendered after most of the filters happen, so they won’t affect Gui elements.

Updated the Rift library to support SDK 0.4.4 & JOVR 0.4.4. Unfortunately, all I see are solid distorted colors on Linux:

… funny thing is, this is an improvement on Linux, since all I saw was black before. However, this will be worse if the same is seen on Windows. The color does change a bit over time, so I suspect I am seeing the lower-left pixel blown up (since that color represents the color of the rotating planet on 4089’s main menu).

Here is a link to the commit:

https://code.google.com/p/jmonkeyengine-oculus-rift/source/detail?r=161

… I did have to make some code changes, but everything seemed equivalent. May need your help here, @rickard or @jherico

All fixed! SDK 0.4.4 support is LIVE! Linux works too!

The problem had to do with texture referencing, which I got help from here:

Here is the commit:

https://code.google.com/p/jmonkeyengine-oculus-rift/source/detail?r=163

1 Like
@phr00t said: All fixed! SDK 0.4.4 support is LIVE! Linux works too!

The problem had to do with texture referencing, which I got help from here:

https://forums.oculus.com/viewtopic.php?p=225397#p225397

Here is the commit:

Google Code Archive - Long-term storage for Google Code Project Hosting.

Awesome work! Great news that Linux is fixed as well.
I have a demo to show next week so I don’t dare to get any updates, right now.

Also, I had to dig into how the GUI positioning works last week, and decided to write a more elaborate tutorial on it. It can be found here:
http://www.softwarepioneering.com/2014/12/free-floating-vr-menu-in-jmonkeyengine.html
The code is checked into a new “examples” folder in the repo.

And we now have a “Virtual Reality” category in the forum!
Hopefully we will be able to organize announcements and support requests better now.

1 Like

Yay we have our own category :smiley:

Can you update the first post and Google SVN to say we are ar 0.4.4 support please?

I moved 3 posts to a new topic: Problem with Oculus Rift lib on Ubuntu

I moved 3 posts to a new topic: Choppy graphics with Oculus Rift lib in direct mode

Hi there,

I am currently experiencing a strange and irritating problem: For a school project i wrote my own multiplayer game using this fantastic engine. It needed to work with the Oculus so i follow the guide. I managed to get everything working on my own laptop (windows 7) and it looked great.

However, i need to demo it on a laptop of the school. They bought a new laptop for this, it has windows 8.1 on it with a GeForce GTX 850M dedicated GPU. I installed the engine, fixed the correct libs and installed the oculus runtime 0.4.4., everything identical to what i did on my own laptop. When i run the game without the oculus dk2 plugged in, everything works fine and i get the expected window with the 2 eyes. However when i plug in the oculus, it shows a black screen for 1sec and afterwards the screen shuts down.

The output is added at the end of this post. But it looks like the Oculus is correctly initialised but at the moment of rendering it just stops. No chrash or error message is shown and the view just vanishes. I should also point out that I do use the Direct HMD display mode, it worked on my own laptop and on this one I am capable of running the oculus rift tuscany demo map this way. I have no idea what is the cause of this problem, i don’t think it is a library issue, a hardware issue or an issue with oculus runtime environment.

I hope someone has an idea since I am kinda desperate. Thanks at front.

run:
Oculus Rift initialized: HMDInfo [HResolution = 1920, VResolution = 1080, HScreenSize = 0.0, VScreenSize = 0.0, VScreenCenter = 0.0, EyeToScreenDistance = 0.0, LensSeparationDistance = 0.0, InterpupillaryDistance = 0.064, DistortionK = [0.0, 0.0, 0.0, 0.0] , DesktopX = 0, DesktopY = 0, DisplayDeviceName = , DisplayId = 0]
jan 27, 2015 1:31:14 PM com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.1.0 (snapshot-github)
jan 27, 2015 1:31:15 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Lwjgl 2.9.1 context running on thread LWJGL Renderer Thread
jan 27, 2015 1:31:15 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Adapter: igdumdim64
jan 27, 2015 1:31:15 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Driver Version: 10.18.10.3574
jan 27, 2015 1:31:15 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Vendor: Intel
jan 27, 2015 1:31:15 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: OpenGL Version: 4.2.0 - Build 10.18.10.3574
jan 27, 2015 1:31:15 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Renderer: Intel(R) HD Graphics 4600
jan 27, 2015 1:31:15 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: GLSL Ver: 4.20 - Build 10.18.10.3574
jan 27, 2015 1:31:15 PM com.jme3.renderer.opengl.TextureUtil initialize
INFO: Supported texture formats: 
    Alpha8 (Linear)
    Luminance8 (Linear/sRGB)
    Luminance16F (Linear)
    Luminance32F (Linear)
    Luminance8Alpha8 (Linear/sRGB)
    Luminance16FAlpha16F (Linear)
    BGR8 (Linear/sRGB)
    RGB8 (Linear/sRGB)
    RGB565 (Linear/sRGB)
    RGB5A1 (Linear/sRGB)
    RGBA8 (Linear/sRGB)
    ABGR8 (Linear/sRGB)
    ARGB8 (Linear/sRGB)
    BGRA8 (Linear/sRGB)
    DXT1 (Linear/sRGB)
    DXT1A (Linear/sRGB)
    DXT3 (Linear/sRGB)
    DXT5 (Linear/sRGB)
    Depth (Linear)
    Depth16 (Linear)
    Depth24 (Linear)
    Depth32F (Linear)
    RGB16F_to_RGB111110F (Linear)
    RGB111110F (Linear)
    RGB16F_to_RGB9E5 (Linear)
    RGB9E5 (Linear)
    RGB16F (Linear)
    RGBA16F (Linear)
    RGB32F (Linear)
    RGBA32F (Linear)
    Depth24Stencil8 (Linear)

jan 27, 2015 1:31:15 PM com.jme3.asset.AssetConfig loadText
WARNING: Cannot find loader com.jme3.scene.plugins.blender.BlenderModelLoader
jan 27, 2015 1:31:15 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Device: OpenAL Soft
jan 27, 2015 1:31:15 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Vendor: OpenAL Community
jan 27, 2015 1:31:15 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Renderer: OpenAL Soft
jan 27, 2015 1:31:15 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Version: 1.1 ALSOFT 1.15.1
jan 27, 2015 1:31:15 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: ALC extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_loopback
jan 27, 2015 1:31:15 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: AL extensions: AL_EXT_ALAW AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFTX_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_source_latency
jan 27, 2015 1:31:15 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: AudioRenderer supports 64 channels
jan 27, 2015 1:31:15 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
WARNING: Pausing audio device not supported.
jan 27, 2015 1:31:15 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio effect extension version: 1.0
jan 27, 2015 1:31:15 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio max auxilary sends: 4
EyeRenderDesc(allocated@0x7810f0 (56 bytes) (shared from auto-allocated@0x7810f0 (112 bytes))) {
  int Eye@0=0
  FovPort Fov@4=FovPort(allocated@0x7810f4 (16 bytes) (shared from allocated@0x7810f0 (56 bytes) (shared from auto-allocated@0x7810f0 (112 bytes)))) {
    float UpTan@0=1.3292863
    float DownTan@4=1.3292863
    float LeftTan@8=1.0586576
    float RightTan@c=1.092368
  }
  OvrRecti DistortedViewport@14=OvrRecti(allocated@0x781104 (16 bytes) (shared from allocated@0x7810f0 (56 bytes) (shared from auto-allocated@0x7810f0 (112 bytes)))) {
    OvrVector2i Pos@0=OvrVector2i(allocated@0x781104 (8 bytes) (shared from allocated@0x781104 (16 bytes) (shared from allocated@0x7810f0 (56 bytes) (shared from auto-allocated@0x7810f0 (112 bytes))))) {
      int x@0=0
      int y@4=0
    }
    OvrSizei Size@8=OvrSizei(allocated@0x78110c (8 bytes) (shared from allocated@0x781104 (16 bytes) (shared from allocated@0x7810f0 (56 bytes) (shared from auto-allocated@0x7810f0 (112 bytes))))) {
      int w@0=3c0
      int h@4=438
    }
  }
  OvrVector2f PixelsPerTanAngleAtCenter@24=OvrVector2f(allocated@0x781114 (8 bytes) (shared from allocated@0x7810f0 (56 bytes) (shared from auto-allocated@0x7810f0 (112 bytes)))) {
    float x@0=549.6183
    float y@4=549.6183
  }
  OvrVector3f HmdToEyeViewOffset@2c=OvrVector3f(allocated@0x78111c (12 bytes) (shared from allocated@0x7810f0 (56 bytes) (shared from auto-allocated@0x7810f0 (112 bytes)))) {
    float x@0=0.032
    float y@4=0.0
    float z@8=0.0
  }
}
FovPort(native@0x54a25c) (16 bytes) {
  float UpTan@0=1.3292863
  float DownTan@4=1.3292863
  float LeftTan@8=1.0586576
  float RightTan@c=1.092368
}
AL lib: (EE) alc_cleanup: 1 device not closed
OVRCreateDXGIFactory2 result 0x0
OVRCreateDXGIFactory2 result 0x0
OVRCreateDXGIFactory2 result 0x0
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

Looks like jME3 isn’t shutdown correctly, and there’s neither a Java exception or native exception.
Maybe something in the OVR library is calling exit()?

It is very strange that it works on my laptop but not on this one and indeed there is neither a java exception or native exception. I went trhough the implementation of all the classes in the OVR library and as far as I can see, there is nothing there that calls exit directly. But I m guessing that someone like @rickard or @phr00t knows the implementation better then me so maybe they know something i missed?

I’m guessing it has to do with direct mode. I think I’ve had the same behavior on my 8.1 laptop. It has an ATI card, however, and I thought it was due to that.
I don’t know why you have that problem. Can you verify with extended mode and see if that works? At least we have pin pointed the problem then.

If i use extended mode it works in the same way like when their is none oculus rift connected, so yea it seems that it has to do with directed mode.
I believe that he chrashes/exits after the first time the SimpleUpdate method has been called, because when i put a printline in that method, it is shown in the debug output before he exits.

I should also point out that since this is a brand new laptop, it can be possibly that i m missing something that should have been installed. The drivers of oculusruntime and GPU are up to date, but might it be possible that ovr needs something else aswell? LIke an microsft visual c++ redistributable or so?

If direct mode works with tuscany it seems like the OVR drivers are working at least. I don’t know if it’s a problem with some graphics card drivers. Check if the drivers are updated on the laptop?
The thing with direct mode is that it does some things behind the scenes to access the oculus screen directly so maybe it’s some weird combination issue with java + oculus drivers + graphics drivers or any combination of them.

In worst case, will you be able to run it in extended mode and a fullscreen window?

I also think the OVR drivers are working. The graphics card drivers are updated to the latest version available.
What i find strange is the fact that it doesn’t crash, it just exits without rendering anything. In the past when i was developing the game i had issues with direct mode but it was always the case that tuscany and my own game didn’t work or both worked and if it didn’t work there was at least an error message. In this case there is just nothing. Can you think of something else besides java, oculus drivers or graphics drivers that might have an influence?

I ll try tomorrow if i can run it in extended mode and fullscreen, but i think that should work.

EDIT: I just checked out the extended mode. I am able to use it in this way: add the screen resolution menu of windows → multiple displays → extend desktop to this display. After wards i can drag my view of the game to the “oculus risk screen” and i can see it. however since this laptop is 1920 x 1080 i do see the desktopbackground. so it’s not realy ideal…
When i chose the op option → multiple displays → duplicate these displays : the orientation seen on the rift is wrong and only a small part of the desktop can be seen.
So basicly getting everything to work with direct is still the best option by far…

Since I’m not sure I can repro the issue, can you do some debugging? What I’d try to do is to place a couple of more log lines to see where it fails. The printout with the OVRVectors and stuff is the end of configureRendering in OculusRiftUtil. This should mean that it has got hold of the window and the Oculus Rift is properly set up for rendering.

It doesn’t feel like a jMonkeyEngine issue but maybe I’d place some lines around the end of OVRAppState:initialize and

app.getContext().setAutoFlushFrames(false);
app.setPauseOnLostFocus(false);

Since those are doing some OpenGL calls.

However, since you’re actually reaching update(), it’s most likely something else.
OVRAppState and the filters are calling the SDK. Removing those calls in OVRAppState:update and any calls to hmd in OculusFilter might give a hint to where the problem is.

The thing is, post initialization, Java doesn’t treat direct mode any differently which makes fixing the issue difficult, should we find it.

Edit: I think you can change the orientation of the oculus display in the ‘orientation’ properties in Windows. I also seem to remember running in windowed mode at some point, so maybe I’m remembering incorrectly.

Sorry for the late reply.

I did what you suggested and i think i found the place where it chrases. I added some debug output in both OVRAppState and in OculusFilter. OculusFilter looks like this:

*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mygame.testoculus.oculusvr.post;

import com.jme3.asset.AssetManager;
import com.jme3.material.Material;
import com.jme3.post.Filter;
import com.jme3.renderer.RenderManager;
import com.jme3.renderer.Renderer;
import com.jme3.renderer.ViewPort;
import com.jme3.texture.FrameBuffer;
import com.oculusvr.capi.GLTexture;
import com.oculusvr.capi.Hmd;
import com.oculusvr.capi.OvrSizei;
import com.oculusvr.capi.OvrVector2i;
import com.oculusvr.capi.Posef;
import com.oculusvr.capi.TextureHeader;
import mygame.testoculus.oculusvr.input.OculusRift;

/**
 *
 * @author reden
 */
public class OculusFilter extends Filter {

    private int eyeIndex = 0;
    private Hmd hmd;
    private GLTexture eyeTexture;
    private Posef pose;
    int textureId = -1;
    int eye;
    private static final Posef poses[] = (Posef[]) new Posef().toArray(2);
    private static final GLTexture eyeTextures[] = (GLTexture[]) new GLTexture().toArray(2);
    
    private static int STATE = 0;

    public OculusFilter(Hmd hmd, int eyeIndex) {
        this.hmd = hmd;
        this.eyeIndex = eyeIndex;
        eyeTexture = eyeTextures[eyeIndex];
    }

    @Override
    protected void initFilter(AssetManager manager, RenderManager renderManager, ViewPort vp, int w, int h) {
        material = new Material(manager, "oculusvr/shaders/Oculus.j3md");

    }

    @Override
    protected Material getMaterial() {
        return material;

    }

    public void setEyeTextureSize(OvrSizei size) {
        TextureHeader eth = eyeTexture.ogl.Header;
        eth.TextureSize.w = size.w;
        eth.TextureSize.h = size.h;
        eth.RenderViewport.Size.w = eth.TextureSize.w;
        eth.RenderViewport.Size.h = eth.TextureSize.h;
        eth.RenderViewport.Pos.x = 0;
        eth.RenderViewport.Pos.y = 0;
    }

    @Override
    protected void preFrame(float tpf) {
        super.preFrame(tpf);
        if (textureId == -1) {
            // try to assign the texture id from the material
            if (material.getTextureParam("Texture") != null) {
                com.jme3.texture.Texture t = material.getTextureParam("Texture").getTextureValue();
                int id = t.getImage().getId();
                eyeTexture.ogl.TexId = id;
                textureId = id;
            }
        }
        System.out.println("OculusFilter: preFrame : before eye");
        eye = hmd.EyeRenderOrder[eyeIndex];
        System.out.println("OculusFilter: preFrame : after eye");
        if (STATE == 0) {
            // anything to do?
            STATE++;
        }
    }

    @Override
    protected void postFrame(RenderManager renderManager, ViewPort viewPort, FrameBuffer prevFilterBuffer, FrameBuffer sceneBuffer) {
        super.postFrame(renderManager, viewPort, prevFilterBuffer, sceneBuffer);
        // for both:
        if (STATE != 0) {
            pose = OculusRift.getEyePoses()[eye];
            poses[eye].Orientation = pose.Orientation;
            poses[eye].Position = pose.Position;
            STATE++;
        }
    }

    @Override
    protected void postFilter(Renderer r, FrameBuffer buffer) {
        super.postFilter(r, buffer);
        STATE++;
        if (STATE == 5) {
            System.out.println("OculusFilter: postFilter : before endframe");
            hmd.endFrame(poses, eyeTextures);
            System.out.println("OculusFilter: postFilter : after endframe");
            STATE = 0;
        }
    }

    public GLTexture getEyeTexture() {
        return eyeTexture;
    }

}

This is the output when running the program:


run:
Oculus Rift initialized: HMDInfo [HResolution = 1920, VResolution = 1080, HScreenSize = 0.0, VScreenSize = 0.0, VScreenCenter = 0.0, EyeToScreenDistance = 0.0, LensSeparationDistance = 0.0, InterpupillaryDistance = 0.064, DistortionK = [0.0, 0.0, 0.0, 0.0] , DesktopX = 0, DesktopY = 0, DisplayDeviceName = , DisplayId = 0]
jan 29, 2015 1:35:18 PM com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.1.0 (snapshot-github)
jan 29, 2015 1:35:18 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Lwjgl 2.9.1 context running on thread LWJGL Renderer Thread
jan 29, 2015 1:35:18 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Adapter: igdumdim64
jan 29, 2015 1:35:18 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Driver Version: 10.18.10.3574
jan 29, 2015 1:35:18 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Vendor: Intel
jan 29, 2015 1:35:18 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: OpenGL Version: 4.2.0 - Build 10.18.10.3574
jan 29, 2015 1:35:18 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Renderer: Intel(R) HD Graphics 4600
jan 29, 2015 1:35:18 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: GLSL Ver: 4.20 - Build 10.18.10.3574
jan 29, 2015 1:35:18 PM com.jme3.renderer.opengl.TextureUtil initialize
INFO: Supported texture formats: 
	Alpha8 (Linear)
	Luminance8 (Linear/sRGB)
	Luminance16F (Linear)
	Luminance32F (Linear)
	Luminance8Alpha8 (Linear/sRGB)
	Luminance16FAlpha16F (Linear)
	BGR8 (Linear/sRGB)
	RGB8 (Linear/sRGB)
	RGB565 (Linear/sRGB)
	RGB5A1 (Linear/sRGB)
	RGBA8 (Linear/sRGB)
	ABGR8 (Linear/sRGB)
	ARGB8 (Linear/sRGB)
	BGRA8 (Linear/sRGB)
	DXT1 (Linear/sRGB)
	DXT1A (Linear/sRGB)
	DXT3 (Linear/sRGB)
	DXT5 (Linear/sRGB)
	Depth (Linear)
	Depth16 (Linear)
	Depth24 (Linear)
	Depth32F (Linear)
	RGB16F_to_RGB111110F (Linear)
	RGB111110F (Linear)
	RGB16F_to_RGB9E5 (Linear)
	RGB9E5 (Linear)
	RGB16F (Linear)
	RGBA16F (Linear)
	RGB32F (Linear)
	RGBA32F (Linear)
	Depth24Stencil8 (Linear)

jan 29, 2015 1:35:18 PM com.jme3.asset.AssetConfig loadText
WARNING: Cannot find loader com.jme3.scene.plugins.blender.BlenderModelLoader
jan 29, 2015 1:35:18 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Device: OpenAL Soft
jan 29, 2015 1:35:18 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Vendor: OpenAL Community
jan 29, 2015 1:35:18 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Renderer: OpenAL Soft
jan 29, 2015 1:35:18 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Version: 1.1 ALSOFT 1.15.1
jan 29, 2015 1:35:18 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: ALC extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_loopback
jan 29, 2015 1:35:18 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: AL extensions: AL_EXT_ALAW AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFTX_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_source_latency
jan 29, 2015 1:35:18 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: AudioRenderer supports 64 channels
jan 29, 2015 1:35:18 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
WARNING: Pausing audio device not supported.
jan 29, 2015 1:35:18 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio effect extension version: 1.0
jan 29, 2015 1:35:18 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio max auxilary sends: 4
Enter OVRAppState initialize
EyeRenderDesc(allocated@0xddbb6a0 (56 bytes) (shared from auto-allocated@0xddbb6a0 (112 bytes))) {
  int Eye@0=0
  FovPort Fov@4=FovPort(allocated@0xddbb6a4 (16 bytes) (shared from allocated@0xddbb6a0 (56 bytes) (shared from auto-allocated@0xddbb6a0 (112 bytes)))) {
    float UpTan@0=1.3292863
    float DownTan@4=1.3292863
    float LeftTan@8=1.0586576
    float RightTan@c=1.092368
  }
  OvrRecti DistortedViewport@14=OvrRecti(allocated@0xddbb6b4 (16 bytes) (shared from allocated@0xddbb6a0 (56 bytes) (shared from auto-allocated@0xddbb6a0 (112 bytes)))) {
    OvrVector2i Pos@0=OvrVector2i(allocated@0xddbb6b4 (8 bytes) (shared from allocated@0xddbb6b4 (16 bytes) (shared from allocated@0xddbb6a0 (56 bytes) (shared from auto-allocated@0xddbb6a0 (112 bytes))))) {
      int x@0=0
      int y@4=0
    }
    OvrSizei Size@8=OvrSizei(allocated@0xddbb6bc (8 bytes) (shared from allocated@0xddbb6b4 (16 bytes) (shared from allocated@0xddbb6a0 (56 bytes) (shared from auto-allocated@0xddbb6a0 (112 bytes))))) {
      int w@0=3c0
      int h@4=438
    }
  }
  OvrVector2f PixelsPerTanAngleAtCenter@24=OvrVector2f(allocated@0xddbb6c4 (8 bytes) (shared from allocated@0xddbb6a0 (56 bytes) (shared from auto-allocated@0xddbb6a0 (112 bytes)))) {
    float x@0=549.6183
    float y@4=549.6183
  }
  OvrVector3f HmdToEyeViewOffset@2c=OvrVector3f(allocated@0xddbb6cc (12 bytes) (shared from allocated@0xddbb6a0 (56 bytes) (shared from auto-allocated@0xddbb6a0 (112 bytes)))) {
    float x@0=0.032
    float y@4=0.0
    float z@8=0.0
  }
}
FovPort(native@0xbf924c) (16 bytes) {
  float UpTan@0=1.3292863
  float DownTan@4=1.3292863
  float LeftTan@8=1.0586576
  float RightTan@c=1.092368
}
Before autoflush
Exit OVRAppState Initialize
Enter OVRAppState: Update
Exit OVRAppState: Update
SimpleUpdate
Exit SimpleUpdate
OculusFilter: preFrame : before eye
OculusFilter: preFrame : after eye
OculusFilter: preFrame : before eye
OculusFilter: preFrame : after eye
OculusFilter: postFilter : before endframe
AL lib: (EE) alc_cleanup: 1 device not closed
OVRCreateDXGIFactory2 result 0x0
OVRCreateDXGIFactory2 result 0x0
OVRCreateDXGIFactory2 result 0x0
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

As you can see the debugouput after the

hmd.endFrame(poses, eyeTextures);

in OculusFilter:postFilter is not printed, in other words it fair to assume that he chrashes there. Now the question remains on why he chrashes there…

About the orientation in extended mode, as far as i can see windows only allows you to change to orientation of the oculus display when the option “extend these displays” is chosen, not in the option “Duplicate these displays”. And since the resolution of the laptop is 1920 x 1080, i get a border around the game where the desktop is shown.

This topic is now closed. New replies are no longer allowed.

I believe that with the “virtual reality” category added, this thread has played out its role. It’s become impossible to navigate and contains a lot of outdated information.
If you have any questions regarding the Oculus Rift library, please post a new topic!

1 Like