photo

[SOLVED] HTC Vive Cosmos controllers / World orientation

Recommended Posts

Received yesterday the headset and getting it to work.

1.

Seems the "new" projects such as VR Sample (VR Ready) and Fox Hole (VR Only) are working even with the Cosmos controllers, but Oil Refinery and also my custom projects I can move but controllers are not recognized at all, this both in 2.8 and 2.9 SDK.

In the working projects the controller is set as Vive Cosmos controller in SteamVR settings, but shown as standard Vive in Unigine. I need to play with keys to find what correspond to, but is working.

Any way to just copy this behavior in the other projects.

2.

Also in our custom project where the controllers are not working I find myself not in vertical respect the terrain, something didn't happen in traditional 2D. Any missing settings that might result in this. 

Edited by davide445

Share this post


Link to post

Hi Davide,

1. We don't have Vive Cosmos at the moment, but the implementation for VR controllers was similar among all recent demos. Probably you'll have to map the new controllers and find a suitable 3d model. Later we'll add these to the default template.

I assume these controllers working properly in the SteamVR environment?

2. Is HMD properly calibrated? Can you check it with other device, like Oculus or one of the older Vive?

Thanks.

Share this post


Link to post

Thanks @morbid.

1. You mean mapping trough the SteamVR settings, or in code? Controller bindings are currently the same in VR Sample, Fox Hole and Oil Refinery demos, but only the first two are working. 

2. is working fine with the projects where I can also use the controllers.

Edited by davide445

Share this post


Link to post

The first thing you may want to do is to check controller status with isDeviceConnected.

At the moment I have no answer why is Cosmos doesn't work with Oil Refinery. Have you modified the demo? Or it's broken with Cosmos out of the box (when launching from the SDK Browser)?

And what do you mean by "controllers are not recognized at all"? The 3d model of a controller?

Share this post


Link to post

Ok downloaded again the Oil Refinery demo for 2.9 (first using for 2.8) and all is working out of the box. We modified the old 2.8 version but was not supposed to change any logic. Will need to understand why was broken.

Need still to understand why our custom projects did not recognize the controllers in VR. I suppose to "convert" one of our custom projects (not looking for any optimization so far, just to check if all is working)  from 2D to VR need just to enable set Stereo 3D in the SDK options and load the HTC Vive plugin in the project,  correct?

Also tried to change the resolution on SteamVR with no effect, Unigine is overriding it in some way? 

Edited by davide445

Share this post


Link to post
17 hours ago, davide445 said:

Need still to understand why our custom projects did not recognize the controllers in VR. I suppose to "convert" one of our custom projects (not looking for any optimization so far, just to check if all is working)  from 2D to VR need just to enable set Stereo 3D in the SDK options and load the HTC Vive plugin in the project,  correct?

This is confusing me a bit. What do you mean by converting from 2D to VR? Are you working with HMD in some other scenario than VR app? SteamVR and Vive wouldn't work with Unigine without AppVive plugin.

17 hours ago, davide445 said:

Also tried to change the resolution on SteamVR with no effect, Unigine is overriding it in some way? 

No, SteamVR resolution and resolution multiplier are parameters that we do not override. It works almost like supersampling. With increasing of render resolution you should observe framedrop and better image quality.

Thanks.

Share this post


Link to post
On 1/16/2020 at 8:30 AM, morbid said:

This is confusing me a bit. What do you mean by converting from 2D to VR?

Just so far was a standard project (shown on a traditional 2D display) and want to use it in VR. Just checking if I'm doing something wrong in my attempt to transform a traditional project into a VR project.

So far just adding the Vive plugin and setting HTC Vive as Stereo 3D in the SDK Browser option seems to work partially: I'm able to see the project trough the headset, but no controllers are shown, I'm not on the floor and the world is rotated.

image.thumb.png.34cca6953c16f0fa4f86b3a198e19166.png

On 1/16/2020 at 8:30 AM, morbid said:

With increasing of render resolution you should observe framedrop and better image quality.

Increasing the resolution to 130% I didn't see any difference in frame generation time nor in image quality

 

Edited by davide445

Share this post


Link to post
On 1/16/2020 at 9:01 AM, davide445 said:

Increasing the resolution to 130% I didn't see any difference in frame generation time nor in image quality

Tested now and this is solved rebooting the demo after setting the new resolution.

Remains the world orientation problem.

Share this post


Link to post

Returning on this topic, testing more seems the system invert the world coordinates, but only in VR using it with Stereo 3D disabled all is working fine.

I can move even in VR using WASD keys, but W and S are mapped for left and right, A ad D for up and down.

Also rotating the view the ground orientation is changing.

Maybe a source of problems might be by default I needed to add

	player.setPosition(Vec3(10.f,-8.f,280.f));
	player.setDirection(Vec3(0.0f,-1.0f,-0.4f));

into the .usc file so to set the starting position of the player nearby the construction and not far in the sky as was without this. Not sure if VR project need a different settings for his start point, so to also calibrate the ground position.

Not sure how can I troubleshoot this problem, seems there is something wrong with the way is setting the ground.

Or maybe reading this other post there is something wrong in the way the headset angle is calculated respect the camera angle.

Attached the log file, I didn't see anything relevant.

log.html

Edited by davide445

Share this post


Link to post

Hi Davide,

I have no versions of what's going on with the coordinates. Can you build a test scene where we can debug this issue? You can upload it on our FTP or any file hosting you like.

Thanks!

Share this post


Link to post

@morbid apologize for the basic question, but never understood how to properly clone a project (also since I almost never needed this).

Copying the whole directory create a project with the same name that's not appreciated from SDK broswer last time I tried. Changing the directory name of course didn't change the project name.

Creating a new project and just copying inside some assets will loose all the history and maybe the problem I was searching for.

Edited by davide445

Share this post


Link to post

We copy the whole directory and work without the sdk browser.

We need that permanently for backups and versions.

Sometimes when needed we add it to the SDK browser.

Edited by werner.poetzelberger
  • Like 1

Share this post


Link to post

I have multiple copies of the same grouping node with different visibility settings (there are about 1500 objects, so many different visibility configuration are possible)

image.png.c075a35f8c24a12bb8e3592823f5448e.png

I suppose I need the editor to clean what is not needed, so the SDK browser also.

How do you deal with duplicate project in the SDK browser?

Edited by davide445

Share this post


Link to post

Usually we need data and source folders. You can remove all *.ung files and .runtimes folder to shrink the size.

Share this post


Link to post

alberto_grumo.zip uploadede

Not optimized for VR so far but first want to have it working correctly. 

Edited by davide445

Share this post


Link to post

I got the scene, thanks.

Our team is busy at the moment, we'll try to check your project by the end of this week.

Share this post


Link to post

Hi, I've sent you a PM with a link to the fixed project.

The problem was it never had a VR template inside.

Share this post


Link to post

Hello @morbid downloaded the project and tried to run it, but it's recognized as sim license, we didn't use.

No problem, since I prefer in fact to know how to fix it by myself.

Tried so far:

- copied the vr_template folder inside mine project data folder

- copied also template_assets and template_materials

- added VR node into the world

- enabled the Component System feature in the project configuration

so far nothing change, my have missed some step?

Share this post


Link to post

Create new project and just copy data and source, then run editor and compile the code.

Share this post


Link to post
1>------ Build started: Project: vr_project_test, Configuration: Debug x64 ------
1>AppEditorLogic.cpp
1>E:\Unigine_Projects\vr_project_test\source\AppEditorLogic.h(18,10): fatal error C1083: Cannot open include file: 'UnigineLogic.h': No such file or directory
1>AppSystemLogic.cpp
1>E:\Unigine_Projects\vr_project_test\source\AppSystemLogic.h(4,10): fatal error C1083: Cannot open include file: 'UnigineLogic.h': No such file or directory
1>AppWorldLogic.cpp
1>E:\Unigine_Projects\vr_project_test\source\AppWorldLogic.h(18,10): fatal error C1083: Cannot open include file: 'UnigineLogic.h': No such file or directory
1>ComponentSystem.cpp
1>E:\Unigine_Projects\vr_project_test\source\ComponentSystem\ComponentSystem.h(2,10): fatal error C1083: Cannot open include file: 'UnigineNode.h': No such file or directory
1>ObjHandle.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\Objects\ObjHandle.h(2,10): fatal error C1083: Cannot open include file: 'UnigineWorld.h': No such file or directory
1>ObjMovable.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\Objects\ObjMovable.h(2,10): fatal error C1083: Cannot open include file: 'UnigineNode.h': No such file or directory
1>ObjSwitch.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\VRInteractable.h(2,10): fatal error C1083: Cannot open include file: 'UnigineNode.h': No such file or directory
1>AppOculusProxy.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\Players\AppOculusProxy.h(5,10): fatal error C1083: Cannot open include file: 'UnigineEngine.h': No such file or directory
1>AppViveProxy.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\Players\AppViveProxy.h(5,10): fatal error C1083: Cannot open include file: 'UnigineEngine.h': No such file or directory
1>EyetrackingProxy.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\Players\EyetrackingProxy.h(5,10): fatal error C1083: Cannot open include file: 'UnigineEngine.h': No such file or directory
1>VRPlayer.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\Players\VRPlayer.h(2,10): fatal error C1083: Cannot open include file: 'UnigineNode.h': No such file or directory
1>VRPlayerOculus.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\Players\VRPlayerOculus.h(2,10): fatal error C1083: Cannot open include file: 'UnigineEngine.h': No such file or directory
1>VRPlayerPC.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\Players\VRPlayerPC.h(2,10): fatal error C1083: Cannot open include file: 'UniginePlayers.h': No such file or directory
1>VRPlayerVR.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\Players\VRPlayerVR.h(2,10): fatal error C1083: Cannot open include file: 'UnigineEngine.h': No such file or directory
1>VRPlayerVive.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\Players\VRPlayerVive.h(2,10): fatal error C1083: Cannot open include file: 'UnigineEngine.h': No such file or directory
1>VRPlayerSpawner.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Components\VRPlayerSpawner.h(2,10): fatal error C1083: Cannot open include file: 'UniginePlayers.h': No such file or directory
1>SoundManager.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\SoundManager.h(2,10): fatal error C1083: Cannot open include file: 'UnigineNode.h': No such file or directory
1>Triggers.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Triggers.h(2,10): fatal error C1083: Cannot open include file: 'UnigineNode.h': No such file or directory
1>Utils.cpp
1>E:\Unigine_Projects\vr_project_test\source\Framework\Utils.h(3,10): fatal error C1083: Cannot open include file: 'UnigineEditor.h': No such file or directory
1>main.cpp
1>E:\Unigine_Projects\vr_project_test\source\main.cpp(15,10): fatal error C1083: Cannot open include file: 'UnigineEngine.h': No such file or directory
1>Generating Code...
1>Done building project "vr_project_test.vcxproj" -- FAILED.

I still think it's better if you tell me how you modified my project, instead of trying to make work yours. So I will be ready for next time.

Share this post


Link to post

We make work the original project, after many trial and errors and looking also at your project as reference we made these changes

- added AppVive pluging and enabled Component systems in project configuration

- copied vr_template, template assets and template materials in data folder

- copied Framework in source folder

- added VR node in the world in Editor

- added

int AppSystemLogic::init()
{
	// Write here code to be called on engine initialization.

    ComponentSystem::get()->initialize();
    ComponentSystem::get()->setWarningLevel(ComponentSystem::HIGH);
	return 1;
}

in AppSystemLogic.cpp

-Recompiled

- added -extern_app "AppVive" in run options

Since was really many trial and errors in once wanted to ask if you seen any missing part in this procedure

Share this post


Link to post

Your project missed VR Template files. You did it right.

The shortest way was to create a new empty project based on VR Template and add your assets there. Then recompile.

With the files I sent you could do Find and Replace with vcxproj file, it used absolute paths to the SDK files. That's why you couldn't compile.

Thanks.

Share this post


Link to post