Jump to content

Occulus Rift DK2 [ALSO: OpenVR]


MangoFusion

Recommended Posts

Hey again,


The DK1 already works fine with my existing T3D build, which is based on 3.7.


I am planning to build a new EXE that will support the DK2/CV1, and include both EXE files with my distribution.


*** So my problem relates only to this new build I am doing using 3.8 and your OpenVr/DX11 Branch. ***


I have the DX11 code all integrated and it builds fine, but it crashes immediately on startup if I choose D3D11 as the video driver in the Options screen.


How are you all able to run DX11, if it crashes immediately? I have all the engine code merged correctly, and my game folder is updated with the latest shaders and the core directory, the game loads fine and runs great with DX9 video option set, but for DX11 it just crashes.


The console log clearly shows that when in DX11 it is not enumerating the supported video modes, comapred to DX9 where it gets past initialization fine. There must be something I missed somewhere, but I have no idea where. And since there are no errors and DX9 works fine, I am stumped.


Thinking it may be my project, I started a whole new project using the openvr repo download, but it won't compile for me, I get a bunch of unresolved externals.


Sigh, frustrated :( I have been using T3D for years now and consider myself to be a medium-level programmer, I have done dozens of mods and resources in my engine code without issue, but this DX11 appears to have no help or guidance or steps to take in order to get it working. I was hoping for some help.


Is there a DX11 thread somewhere that is useful and contains steps, etc to get it working? I can't find anything useful here to help me.


Is it supposed to be as simple as just including the DX11 folder under GFX, and then compiling? Because like I said that just crashes for me when I choose DX11 in the video options. Would like to test in the openvr build, just in case it is something with my project, but the openvr build does not compile for me, I get unresolved externals that I can't figure out.


Thanks in advance for any guidance you can provide.

P

Link to comment
Share on other sites

  • Replies 88
  • Created
  • Last Reply

Top Posters In This Topic

Paul,


With all due respect I'm not a mind reader. When you say you get unresolved externals, how could I possibly help if I don't know what they are?


In any case I have put some binaries for the D3DTest example at https://drive.google.com/file/d/0B9SPZhVNDK6BTThWVUp5cjZYeUU/view?usp=sharing - if those combined with the D3DTest game files dont work, my only guess would be your system or drivers doesn't support D3D11.


On my system everything loads in d3d11 mode - no crashes. To be quite honest I dont really have much in-depth knowledge of why the d3d11 adapter code could be failing besides the absolute basics. That's more Timmy's domain.

Link to comment
Share on other sites

Paul:


Are you able to compile the current devhead without any unresolved externals? Not sure if you're running into DX11, or the VR stuff. May help to take a step back and affirm that devhead compiles and runs well, then we can see about walking through the merge of the WIP VR branch.


And as mango said, if you can get a copy of the errors/unresolved externals, that'd be a major help.

Link to comment
Share on other sites

@PaulWeston: This is some deep, spiderwebby code we're talking here. Got a stack trace from a debug build to assist in narrowing down where there may be hiccups?


For instance, can already say you'll wanna doublecheck https://github.com/GarageGames/Torque3D/blob/6a40b8bb84d980fd50617bfdf9a62ada62198e3a/Engine/source/gfx/D3D9/pc/gfxD3D9EnumTranslate.pc.cpp#L300-L306 your end based just on the log, though obviously, rather doubtfull that'll have impact on the dx11 end...

Link to comment
Share on other sites

My bad, of course I should have posted the compilation errors.


Here they are, using a fresh copy of the openvr_dx11 branch, with the D3d11 folder added in, all libs and includes pathed correctly for the VR/Oculus stuff, and the code compiles fine except for these unresolved externals:


1>gfxD3D11Device.obj : error LNK2019: unresolved external symbol CreateDXGIFactory1 referenced in function "private: virtual void __cdecl GFXD3D11Device::enumerateVideoModes(void)" (?enumerateVideoModes@GFXD3D11Device@@EEAAXXZ)

1>gfxD3D11Device.obj : error LNK2019: unresolved external symbol D3D11CreateDeviceAndSwapChain referenced in function "public: virtual void __cdecl GFXD3D11Device::init(struct GFXVideoMode const &,class PlatformWindow *)" (?init@GFXD3D11Device@@UEAAXAEBUGFXVideoMode@@PEAVPlatformWindow@@@Z)

1>gfxD3D11Device.obj : error LNK2019: unresolved external symbol D3DCompile referenced in function "public: virtual class GFXVertexDecl * __cdecl GFXD3D11Device::allocVertexDecl(class GFXVertexFormat const *)" (?allocVertexDecl@GFXD3D11Device@@UEAAPEAVGFXVertexDecl@@PEBVGFXVertexFormat@@@Z)

1>gfxD3D11Shader.obj : error LNK2001: unresolved external symbol D3DCompile

1>gfxD3D11Shader.obj : error LNK2019: unresolved external symbol D3DReflect referenced in function "protected: virtual bool __cdecl GFXD3D11Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3D_SHADER_MACRO const *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D11Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3D_SHADER_MACRO@@PEAVGenericConstBufferLayout@@AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D11Shader.obj : error LNK2019: unresolved external symbol D3DDisassemble referenced in function "protected: virtual bool __cdecl GFXD3D11Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3D_SHADER_MACRO const *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D11Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3D_SHADER_MACRO@@PEAVGenericConstBufferLayout@@AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D11Shader.obj : error LNK2019: unresolved external symbol D3DCreateBlob referenced in function "protected: virtual bool __cdecl GFXD3D11Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3D_SHADER_MACRO const *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D11Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3D_SHADER_MACRO@@PEAVGenericConstBufferLayout@@AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D9Shader.obj : error LNK2019: unresolved external symbol D3DXDisassembleShader referenced in function "protected: virtual bool __cdecl GFXD3D9Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3DXMACRO const *,class GenericConstBufferLayout *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D9Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3DXMACRO@@PEAVGenericConstBufferLayout@@3AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D9Shader.obj : error LNK2019: unresolved external symbol DXGetErrorStringA referenced in function "protected: virtual bool __cdecl GFXD3D9Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3DXMACRO const *,class GenericConstBufferLayout *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D9Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3DXMACRO@@PEAVGenericConstBufferLayout@@3AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D9Shader.obj : error LNK2019: unresolved external symbol DXGetErrorDescriptionA referenced in function "protected: virtual bool __cdecl GFXD3D9Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3DXMACRO const *,class GenericConstBufferLayout *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D9Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3DXMACRO@@PEAVGenericConstBufferLayout@@3AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D9TextureManager.obj : error LNK2019: unresolved external symbol D3DXLoadSurfaceFromMemory referenced in function "protected: virtual bool __cdecl GFXD3D9TextureManager::_loadTexture(class GFXTextureObject *,class GBitmap *)" (?_loadTexture@GFXD3D9TextureManager@@MEAA_NPEAVGFXTextureObject@@PEAVGBitmap@@@Z)

1>gfxPCD3D9Device.obj : error LNK2019: unresolved external symbol Direct3DCreate9 referenced in function "protected: static void __cdecl GFXPCD3D9Device::createDirect3D9(struct IDirect3D9 * &,struct IDirect3D9Ex * &)" (?createDirect3D9@GFXPCD3D9Device@@KAXAEAPEAUIDirect3D9@@AEAPEAUIDirect3D9Ex@@@Z)

1>gfxPCD3D9Device.obj : error LNK2019: unresolved external symbol D3DPERF_BeginEvent referenced in function "public: virtual void __cdecl GFXPCD3D9Device::enterDebugEvent(class ColorI,char const *)" (?enterDebugEvent@GFXPCD3D9Device@@UEAAXVColorI@@PEBD@Z)

1>gfxPCD3D9Device.obj : error LNK2019: unresolved external symbol D3DPERF_EndEvent referenced in function "public: virtual void __cdecl GFXPCD3D9Device::leaveDebugEvent(void)" (?leaveDebugEvent@GFXPCD3D9Device@@UEAAXXZ)

1>gfxPCD3D9Device.obj : error LNK2019: unresolved external symbol D3DPERF_SetMarker referenced in function "public: virtual void __cdecl GFXPCD3D9Device::setDebugMarker(class ColorI,char const *)" (?setDebugMarker@GFXPCD3D9Device@@UEAAXVColorI@@PEBD@Z)

1>sfxXAudioDevice.obj : error LNK2019: unresolved external symbol __imp_X3DAudioCalculate referenced in function "public: void __cdecl SFXXAudioDevice::_setOutputMatrix(class SFXXAudioVoice *)" (?_setOutputMatrix@SFXXAudioDevice@@QEAAXPEAVSFXXAudioVoice@@@Z)

1>sfxXAudioDevice.obj : error LNK2019: unresolved external symbol __imp_X3DAudioInitialize referenced in function "public: __cdecl SFXXAudioDevice::SFXXAudioDevice(class SFXProvider *,class String const &,struct IXAudio2 *,unsigned int,unsigned int,unsigned int)" (??0SFXXAudioDevice@@QEAA@PEAVSFXProvider@@AEBVString@@PEAUIXAudio2@@III@Z)

1>../../../game/D3DNewTest DLL.dll : fatal error LNK1120: 16 unresolved externals

Link to comment
Share on other sites

And my own code (which is a merge of the openvr_dx11 with Azaezel's AFX_d3d11 branch, along with my own custom mods added in after for advanced character kit and a few others), compiles fine with no unresolved externals, functions great in DX9, but in DX11 crashes right away (see console log in the post a few entries up the thread).


As a side note, I see great improvements in the look of the rendering even when using DX9, going from 3.7 to this latest version. Here is a sample (3.7 on left, latest build on right):


http://gambitrealm.com/ncc1701-50th/dx11-bridge.jpg


http://gambitrealm.com/ncc1701-50th/dx11-sulu.jpg


I take it this is because of improved shaders and such? Nice work everyone, looks great :)



Will see if I can get a debug build going and get a stack trace for you, thanks!


P

Link to comment
Share on other sites

Well, that's the thing... I'm not sure if I have everything configured right, because I can't find a primer on how to set this up for DX11 :)


I know I have both SDKs installed in my system, both the original June 2009 that was used for Torque since forever, and then I have the Windows SDK 7.1. In my Visual Studio I am compiling using the Windows SDK 7.1 platform toolset.


But I am not sure if there is some other pathing I need to do, or configuration I need to change, to force it to DX11?


Thanks

Link to comment
Share on other sites

My library directories setting in Visual Studio reads as follows:


$(DXSDK_DIR)\Lib\x64

$(WindowsSdkDir)lib\x64

$(VCInstallDir)lib\amd64

$(VSInstallDir)

$(VSInstallDir)lib\amd64


So, it looks like I am including both SDKs, but like I said I am just not sure 100% how this all works. I'm a script guy who tries hard to work the C code, I have done many engine mods before, it is always tricky for me but I usually prevail in the end :) But in this case I'm stumped.

Link to comment
Share on other sites

Yeah unfortunately for now D3D9 uses the old deprecated D3Dx stuff that MS got rid off so we need to link to the old (again deprecated) DirectX SDK. You need the last version of that which was the June 2010 one. You can find that here https://www.microsoft.com/en-au/download/details.aspx?id=6812 . I have a new branch i am working on that corrects all this (actually removes D3D9 to be exact) but this will be introduced with T3D 4.0. For now unfortunately you have to put up with a lot of annoying compiler warnings. There is little documentation on all of this because 3.9 hasn't been officially released yet and we will be adding further docs when it is.

Link to comment
Share on other sites

Ahh, cool, ok, am downloading that now.


So, this just gets installed and then Visual Studio will automatically become aware of it? ie. the June 2010 will take over the $(DXSDK_DIR) folder?


And to confirm, this is the environment setup required:


- June 2010 DirectX SDK installed

- Windows SDK 7.1 installed

- Compiling with Visual Studio 2010 (platform toolset set to Windows7.1SDK)

- Stock Torque Dev branch build, just adding in gfx/d3d11 to the project


I will try this before getting back to the OpenVR, just to be sure this works first.


Thanks :)

Link to comment
Share on other sites

OK, I found out that I actually was already running the June 2010 SDK, I did away with the 2009 a while ago and had forgotten.


So, that's proper anyways :)


I just did a fresh build of a freshly created Dx11 project, using the current T3d_Development github download...


Am working in 64 bit, so I removed the .asm files from the project as usual.


Not adding in any Oculus or OpenVr support, this is just stock.


And I get the same unresolved externals:


1>------ Build started: Project: Dx11Test DLL, Configuration: Release x64 ------

1>../../Link/VC2010.Release.x64/Dx11Test DLL/fileDialog.obj : warning LNK4042: object specified more than once; extras ignored

1> Creating library ../../../game/Dx11Test DLL.lib and object ../../../game/Dx11Test DLL.exp

1>gfxD3D11Device.obj : error LNK2019: unresolved external symbol CreateDXGIFactory1 referenced in function "private: virtual void __cdecl GFXD3D11Device::enumerateVideoModes(void)" (?enumerateVideoModes@GFXD3D11Device@@EEAAXXZ)

1>gfxD3D11Device.obj : error LNK2019: unresolved external symbol D3D11CreateDeviceAndSwapChain referenced in function "public: virtual void __cdecl GFXD3D11Device::init(struct GFXVideoMode const &,class PlatformWindow *)" (?init@GFXD3D11Device@@UEAAXAEBUGFXVideoMode@@PEAVPlatformWindow@@@Z)

1>gfxD3D11Device.obj : error LNK2019: unresolved external symbol D3DCompile referenced in function "public: virtual class GFXVertexDecl * __cdecl GFXD3D11Device::allocVertexDecl(class GFXVertexFormat const *)" (?allocVertexDecl@GFXD3D11Device@@UEAAPEAVGFXVertexDecl@@PEBVGFXVertexFormat@@@Z)

1>gfxD3D11Shader.obj : error LNK2001: unresolved external symbol D3DCompile

1>gfxD3D11Shader.obj : error LNK2019: unresolved external symbol D3DReflect referenced in function "protected: virtual bool __cdecl GFXD3D11Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3D_SHADER_MACRO const *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D11Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3D_SHADER_MACRO@@PEAVGenericConstBufferLayout@@AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D11Shader.obj : error LNK2019: unresolved external symbol D3DDisassemble referenced in function "protected: virtual bool __cdecl GFXD3D11Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3D_SHADER_MACRO const *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D11Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3D_SHADER_MACRO@@PEAVGenericConstBufferLayout@@AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D11Shader.obj : error LNK2019: unresolved external symbol D3DCreateBlob referenced in function "protected: virtual bool __cdecl GFXD3D11Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3D_SHADER_MACRO const *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D11Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3D_SHADER_MACRO@@PEAVGenericConstBufferLayout@@AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D9Shader.obj : error LNK2019: unresolved external symbol D3DXDisassembleShader referenced in function "protected: virtual bool __cdecl GFXD3D9Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3DXMACRO const *,class GenericConstBufferLayout *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D9Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3DXMACRO@@PEAVGenericConstBufferLayout@@3AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D9Shader.obj : error LNK2019: unresolved external symbol DXGetErrorStringA referenced in function "protected: virtual bool __cdecl GFXD3D9Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3DXMACRO const *,class GenericConstBufferLayout *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D9Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3DXMACRO@@PEAVGenericConstBufferLayout@@3AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D9Shader.obj : error LNK2019: unresolved external symbol DXGetErrorDescriptionA referenced in function "protected: virtual bool __cdecl GFXD3D9Shader::_compileShader(class Torque::Path const &,class String const &,struct _D3DXMACRO const *,class GenericConstBufferLayout *,class GenericConstBufferLayout *,class Vector &)" (?_compileShader@GFXD3D9Shader@@MEAA_NAEBVPath@Torque@@AEBVString@@PEBU_D3DXMACRO@@PEAVGenericConstBufferLayout@@3AEAV?$Vector@UGFXShaderConstDesc@@@@@Z)

1>gfxD3D9TextureManager.obj : error LNK2019: unresolved external symbol D3DXLoadSurfaceFromMemory referenced in function "protected: virtual bool __cdecl GFXD3D9TextureManager::_loadTexture(class GFXTextureObject *,class GBitmap *)" (?_loadTexture@GFXD3D9TextureManager@@MEAA_NPEAVGFXTextureObject@@PEAVGBitmap@@@Z)

1>gfxPCD3D9Device.obj : error LNK2019: unresolved external symbol Direct3DCreate9 referenced in function "protected: static void __cdecl GFXPCD3D9Device::createDirect3D9(struct IDirect3D9 * &,struct IDirect3D9Ex * &)" (?createDirect3D9@GFXPCD3D9Device@@KAXAEAPEAUIDirect3D9@@AEAPEAUIDirect3D9Ex@@@Z)

1>gfxPCD3D9Device.obj : error LNK2019: unresolved external symbol D3DPERF_BeginEvent referenced in function "public: virtual void __cdecl GFXPCD3D9Device::enterDebugEvent(class ColorI,char const *)" (?enterDebugEvent@GFXPCD3D9Device@@UEAAXVColorI@@PEBD@Z)

1>gfxPCD3D9Device.obj : error LNK2019: unresolved external symbol D3DPERF_EndEvent referenced in function "public: virtual void __cdecl GFXPCD3D9Device::leaveDebugEvent(void)" (?leaveDebugEvent@GFXPCD3D9Device@@UEAAXXZ)

1>gfxPCD3D9Device.obj : error LNK2019: unresolved external symbol D3DPERF_SetMarker referenced in function "public: virtual void __cdecl GFXPCD3D9Device::setDebugMarker(class ColorI,char const *)" (?setDebugMarker@GFXPCD3D9Device@@UEAAXVColorI@@PEBD@Z)

1>sfxXAudioDevice.obj : error LNK2019: unresolved external symbol __imp_X3DAudioCalculate referenced in function "public: void __cdecl SFXXAudioDevice::_setOutputMatrix(class SFXXAudioVoice *)" (?_setOutputMatrix@SFXXAudioDevice@@QEAAXPEAVSFXXAudioVoice@@@Z)

1>sfxXAudioDevice.obj : error LNK2019: unresolved external symbol __imp_X3DAudioInitialize referenced in function "public: __cdecl SFXXAudioDevice::SFXXAudioDevice(class SFXProvider *,class String const &,struct IXAudio2 *,unsigned int,unsigned int,unsigned int)" (??0SFXXAudioDevice@@QEAA@PEAVSFXProvider@@AEBVString@@PEAUIXAudio2@@III@Z)

1>../../../game/Dx11Test DLL.dll : fatal error LNK1120: 16 unresolved externals

2>------ Build started: Project: Dx11Test, Configuration: Release x64 ------

2> Dx11Test.vcxproj -> C:\Torque\Torque3D-development\My Projects\Dx11Test\buildFiles\VisualStudio 2010\projects\../../../game/Dx11Test.exe

========== Build: 1 succeeded, 1 failed, 15 up-to-date, 0 skipped ==========



Any ideas what step I may be missing?


Oh and my OS is Windows 7, video card is 2GB Radeon (older but still good). I have Dx11, dxdiag reports version 11 with no issues. Other DirectX11 games work fine. So drivers and environment should be fine for this.


Thanks again for the help, cheers

P

Link to comment
Share on other sites

Yes, back to VR :)


I noticed that the barrel distortion is no longer present now, is that not being called anymore for a reason? Or should it be there?


Because actually through the DK1 without the barrel distortion seems fine, do they correct now without needing the barrel effect?


Thanks :)

Link to comment
Share on other sites

FYI, I got the DX11 compiling with your sample project, I just redid all my include and library paths and this time it worked.


So, that was my bad, it's sorted.


However, when I try to run my Dx11 build (which has AFX + other mods), in dx11 it still crashes on startup while dx9 mode is fine.


I got a debug build running, and the stack trace ends with this error in the lighting system initialization (everything else prior seems ok):


Using Advanced Lighting

D3D11 ERROR: ID3D11DeviceContext::Map: Map cannot be called with MAP_WRITE_DISCARD access, because the Resource was not created with the D3D11_CPU_ACCESS_WRITE flag. [ RESOURCE_MANIPULATION ERROR #2097210: RESOURCE_MAP_INVALIDMAPTYPE]

..\..\..\..\..\Engine\source\gfx\D3D11\gfxD3D11IndexBuffer.cpp(97,0): {Fatal} - GFXD3D11PrimitiveBuffer::lock - Could not lock primitive buffer.


Any ideas?


I posted this in the DX11 thread as well, not sure if this is VR or DX11 issue.


So, we can ignore the console warnings for the barrel distortion stuff?


Thanks again for your help

P

Link to comment
Share on other sites

Ok guys another update....


I've fixed a problem with the eye transform being off. This was a case of the multiplication for the eye transform being in the wrong order - a big screwup on my part unfortunately. This has been fixed in the branch.


I'm currently working on overlay support and also fixing a slight issue with the camera code for some object render functions - basically since the DK2 stuff the camera view has technically been a bit off which is causing some things like the light flare to render incorrectly in some cases.


@HebbleWhite


Should release a binary within a week or two with any luck. Depends how long it takes to fix this camera issue.

Link to comment
Share on other sites

Ok guys another update....


I've fixed a problem with the eye transform being off. This was a case of the multiplication for the eye transform being in the wrong order - a big screwup on my part unfortunately. This has been fixed in the branch.


I'm currently working on overlay support and also fixing a slight issue with the camera code for some object render functions - basically since the DK2 stuff the camera view has technically been a bit off which is causing some things like the light flare to render incorrectly in some cases.


@HebbleWhite


Should release a binary within a week or two with any luck. Depends how long it takes to fix this camera issue.

 

Much appreciated! :D

Link to comment
Share on other sites

Time for another update...


I've finished basic support for steamvr overlays - these are the overlays you can see in either the dashboard or overlaid on top of the scene. They'll usually remain present even if the HMD looses tracking status.


You can use these to implement basic GUI overlays and such. AFAIK they don't interact with the scene itself, so I might have to make a separate but similar object for that - or you can just use whatever 3d gui solution is the rage for t3d these days.


As mentioned previously still working on fixing the camera so certain effects work properly in stereo.

Link to comment
Share on other sites

Time for another update....


I've changed the scene & gfx code so there's a notion of a head matrix position. This is intended to be mainly used for the diffuse camera transform to calculate metrics - so stuff should appear the same LOD and whatever in both eyes.


My current attention has been drawn to the skybox & scattersky objects. Currently bth these objects have bad problems with stereo rendering.


Firstly the skybox moves around too much which can cause motion sickness. I've determined this is a problem with torque and not the stereo rendering code, as this issue can be seen when moving the camera up and down normally. This is quite bizarre and not how i'd expect a skybox to function.


Secondly the scattersky sun is duplicated in both eyes and doesn't appear to work properly with the stereo rendering. Quite honestly I have no idea how to fix this.


Thirdly the lens flare is similarly broken to the scattersky. This time the issue is with the projection into screenspace which causes the lens flare to be duplicated in both eyes. There was code to fix this for DK1, but since we now get the projection parameters and the camera offset from the openvr library, this workaround no longer works. So basically the lens flare code probably has to be rewritten.


As of yet I haven't noticed any other effects which have problems with stereo.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...