Tagged: PSVR PlayStation
June 20, 2018 at 4:00 pm #7787
I’m a developer implementing PSVR for standalone game software. I know there are a few people interested in it today, still, but a lot of the buzz has died down since 2yrs ago or so. I know that here (https://dylanmckay.io/psvr-protocol/) is a recent attempt to document it, for the public at large. In general there is not a lot to go on for the developer like myself.
I understand that Trinus is not a public project (or at least I think it is) but I think that you (loxai?) might know some things that the rest of us don’t. And I’m just hoping that, if so, you do not mind sharing.
In order to use PSVR I’ve examined the (now defunct) PSVRToolbox, which I read that Trinus itself was built on. So far I have good optics, and free-look, without camera tracking, and am resolved to tackle camera tracking next thing. (From what I’ve read, maybe Trinus PSVR doesn’t have much in the way of camera tracking?) I’m most disappointed with the color reproduction of the OLED display, and I wonder if it’s possible that it is not displaying correctly, since it is significantly brighter and duller than home-theater mode, as if the gamma table is flat or something like that. I realize the dark tones look like a GameBoy and that it is somewhat muted (desaturated) in general, but I’ve had success balancing out these things in the RGB space, and can see that the home-theater mode is doing similar color corrections.
The color is my personal misgiving, but I think that it’s still useful for some things, if not recreational activities. I wonder what Trinus PSVR does about the color. I could write way more here, but I know I’m already running long, and so will end this post here 🙂
DISCLAIMER: I can’t find anything on SteamVR. I gave up after several minutes of searching it out. So I haven’t been able to try Trinus PSVR.June 23, 2018 at 12:53 pm #7788
Hi, Trinus is not based on PSVRToolbox, although they have some common points (like using Madgwick filter and BMI055Integrator). The comms in Trinus were based on https://github.com/tokkyo/PSVRTest, with other relevant info coming from different sources (when the ‘buzz’ was more active :).
The color issues might require adjusting color settings in your gpu control panel, or it could be related to the brightness setting in PSVR (which can be changed through commands).
The camera tracking in Trinus PSVR is quite simple and limited, and can definitely be improved. Problem is I have limited time to work on that. If you are interested in cam tracking improvements, you can drop me an email to further discuss it.July 3, 2018 at 3:13 am #7804
Hi loxai! I apologize for replying so late. (I think I wasn’t notified by email.)
In reply, I read somewhere Trinus took something of use from PSVRToolbox if not code.
Do you think that the color reproduction is acceptable? I’m certain I don’t have anything out of the ordinary in my system settings. I think it looks very different from a well configured display, having the same inputs.
I will get back to you with camera results, after I have them. As a side effect of some tinkering I had very good success with changing the BMI055Integrator beta value to 0.1, keeping the 32-bit floating point representation. However, I’ve since switched over to 64-bit, which produces a far more stable picture, and so I’m momentarily using a smaller beta value, until I have more time to try out different schemes. 64-bit is not fun with 0.1, so I cannot say if drift is comparable or not, yet. 0.1 seems ideal, if your goal is to not drift. It isn’t pretty though.
Because drift is less of an issue now, I’m taking my time to do a camera project. I have a plan for one.
https://github.com/dylanmckay/psvr-protocol/issues is a new hub, in case DIY interest in PSVR returns. I hope that it will.
I appreciate the PSVRTest link. I think I’d written it off by accident, in my mind, because so many of the links like it are basically dead ends, however it looks like a valuable resource.
P.S. If anyone can help me to understand SteamVR, I would appreciate that. I cannot find any information about it. I’m not sure I want to know about it. So I recommend only basic facts/hints. I’m curious why it’s so shrouded in mystery; why it doesn’t have a helpful company link, download page, etc.July 3, 2018 at 12:56 pm #7807
If I get this right you can’t find where to download SteamVR? You get SteamVR through Steam under Games/Tools, there is no real download page because Valve needs to DRM everything.July 10, 2018 at 4:47 am #7810
@dekaid, thanks for clarifying this for me. This is why I guess I’m only developing against PSVR for now, since it’s a fairly accessible product, and without this kind of ugly baggage. Do you know if their OpenVR is dependent on the same SteamVR? Or is it something else? Like is SteamVR a storefront? Or is it APIs/SDKs too?
Until products have straightforward SDKs I will not include them myself in my work. Interfacing with one product (PSVR) is enough of a workload. I assume something like Khronos’s OpenXR will arrive, but I worry it won’t work with Direct3D 9 for example, whereas PSVR is well suited for it. (EDITED: though I’m sure an OpenXR would include a headless mode, only exposing sensors. I’m unsure exactly what its scope is, especially since it’s heretofar unplublished.)
October 19, 2018 at 4:01 am #7940
- This reply was modified 4 months, 1 week ago by mick-p1982.
FWIW I was contacted about about the Beta factor we discussed, and they said that in a future version of TrinusPSVR is would be configurable. I just want to add that I did finally get around to working on a hybrid approach that I think is far superior to how Trinus must work, but I cannot say conclusively since I have not been able to use Trinus myself.
I can just report that the approach works very well. It’s implemented by this (https://www.reddit.com/r/KingsField/comments/9kj984/very_early_playable_section_of_kf2_for_windows/) demo. There is code available that I can provide a link to.
The “hybrid” approach is to use the more stable, yet chaotic, value of 0.1 for the Beta factor. But at the same time, use an even smaller value than most code I’ve seen is using, for picture that is steady, not chaotic, but completely unreliable in terms of drift, without tracking…
By combining them, you get the best of both worlds. How I implemented it, first attempt, was to just solve for both Beta factors, double the workload, and watch as the two locations deviate, and when they do, pull the steady position toward the other that has the great anti-drift quality. I think I described this before, so I will just say, that it’s been implemented, and that TrinusPSVR can implement it too.October 20, 2018 at 9:17 pm #7943
Hi Mick, I did add drift improvement on last release, but it is not at the same level as your implementation.
Quite swamped atm, but will get back to you to see how to better Trinus PSVR drift.October 23, 2018 at 1:21 am #7945
Here (https://github.com/dylanmckay/psvr-protocol/issues/14) has links to more implementation details, such-as how I opted to implement the fudge factor that happens when sudden head movement needs to pull the steady/drifty picture into the orbit of the lasting chaotic/stable approximation.
The basics are very simple, but you can see a weighted “slerp” is performed according to hand chosen criteria. (Since uploading the code I’ve opted to not calibrate the steady/drifty integrator since it always instantly converges on the other, and like-wise eliminated its bind-pose, for the same reason.)
You must be logged in to reply to this topic.