Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
TeraBit's avatar
TeraBit
Honored Guest
12 years ago

Strange effect using Sdk 0.3.1

Hi All,

I've been writing some code interfacing a .NET application with the new Rift 0.3.1 code. But it's producing some strange effects.

I'm using the SDK rendering (a texture per eye) and although I get something showing up when I render, the are pushed out to the side. The cube is rendered dead centre of the texture but comes out like the picture below.

edit

Just to say that this is using OpenGL with OpenTK driving the GL on the .NET side.

The Setup follows the examples as far as I can see.
		
eyes[0].Eye = ovrEye_Left;
eyes[1].Eye = ovrEye_Right;
eyes[0].Fov = hmdDesc.DefaultEyeFov[0];
eyes[1].Fov = hmdDesc.DefaultEyeFov[1];
eyes[0].TextureSize = renderTargetSize;
eyes[1].TextureSize = renderTargetSize;
eyes[0].RenderViewport.Pos = Vector2i(0,0);
eyes[0].RenderViewport.Size = Sizei(renderTargetSize.w, renderTargetSize.h);
eyes[1].RenderViewport.Pos = Vector2i(0,0);
eyes[1].RenderViewport.Size = Sizei(renderTargetSize.w , renderTargetSize.h);

eyeRenderDesc[0] = ovrHmd_GetRenderDesc(hmd, eyes[0]);
eyeRenderDesc[1] = ovrHmd_GetRenderDesc(hmd, eyes[1]);

Cfg.OGL.Header.API = ovrRenderAPI_OpenGL;
Cfg.OGL.Header.Multisample = 0;
Cfg.OGL.Header.RTSize.w = hmdDesc.Resolution.w;
Cfg.OGL.Header.RTSize.h = hmdDesc.Resolution.h;
Cfg.OGL.WglContext = wglGetCurrentContext();
Cfg.OGL.Window = HWND(hwnd);
Cfg.OGL.GdiDc = wglGetCurrentDC();

int l_RenderCaps = 0;
int l_DistortionCaps = ovrDistortion_Chromatic | ovrDistortion_TimeWarp;

ovrHmd_ConfigureRendering(hmd, &Cfg.Config, l_RenderCaps, l_DistortionCaps, eyes, eyeRenderDesc);

EyeTexture[0].OGL.Header.API = ovrRenderAPI_OpenGL;
EyeTexture[0].OGL.Header.TextureSize.w = renderTargetSize.w;
EyeTexture[0].OGL.Header.TextureSize.h = renderTargetSize.h;
EyeTexture[0].OGL.Header.RenderViewport = eyes[0].RenderViewport;
EyeTexture[0].OGL.TexId = tid1;

EyeTexture[1].OGL.Header.API = ovrRenderAPI_OpenGL;
EyeTexture[1].OGL.Header.TextureSize.w = renderTargetSize.w;
EyeTexture[1].OGL.Header.TextureSize.h = renderTargetSize.h;
EyeTexture[1].OGL.Header.RenderViewport = eyes[1].RenderViewport;
EyeTexture[1].OGL.TexId = tid2;




NOTE:
Also using the SDK rendering seems to screw up OpenGL state something awful. My VBOs are stomped on and I need to re-upload the data each frame. :(

Any ideas?

24 Replies