Forum Discussion
Matlock
10 years agoHonored Guest
What are DistortionK values for DK2?
DK1 DistortionK = 1.0, 0.18, 0.115, 0.0
DK2 DistortionK = ?,?,?,?
I am trying to get a custom DK1 driver to work with DK2 display. It is for comparison purposes. I understand that they do things differently now. Like I said its for testing.
Anyone?
DK2 DistortionK = ?,?,?,?
I am trying to get a custom DK1 driver to work with DK2 display. It is for comparison purposes. I understand that they do things differently now. Like I said its for testing.
Anyone?
8 Replies
- cyberealityGrand ChampionDK2 distortion uses a totally different algorithm (not a polynomial based pixel shader). They are not compatible.
- MatlockHonored GuestLike I said I understand that oculus went a different direction...
But you CAN make the DK2 reverse compatible. The DK1, DK2 HMD hardware is basically the same.
Not to mention that I almost have it working, so Im thinking its possible.
I only have an offset/alignment error. I suspect the DistortionK values, or lens center values.
The distortion values are for the lens itself, and I would be shocked if oculus does not have these values...
Do oculus engineers browse this forum? - brantlewAdventurerDon't know them off the top of my head but they are contained within the file OVR_Stereo.cpp that is part of the public SDK. But as Cyber mentioned you may be disappointed because for one - there are 11 coefficients now that form a spline curve instead of a polynomial. That in-of-itself is not a big deal because you could always approximate the spline with a polynomial. The bigger problem is that the meaning of the curve is different than its old usage in the 0.2 branch. In other words the new curves are not compatible with the old 0.2 SDK. Even if you fit a polynomial curve to the spline, feeding it to the 0.2 shaders will not produce the right distortion correction. So what you are asking for really does not exist. There is no 0.2 compatible polynomial curve for the DK2. There is only the 0.3+ compatible spline curve.
- jhericoAdventurerThere is no Dana, only Zuul.
- AnonymousWhile I understand SDK distortion is the way to go, I have also been wondering why new values should not work.
In fact I am using some values just searched for by hand ( 1.0, 0.02, 0.24, 0.0 ).
But, the distortion is not perfect, the very edges warp a bit, and thus suboptimal.
I am now working on getting the SDK distortion sorted out, but I am still interested why this is the case, if DK1 barreldistortion was acceptable. Something to do with lenses, screen size? - MatlockHonored GuestI was able to get a stereovision image using my dk1 driver, on a dk2, so there is no physical reason the old driver style wouldn't work. The image was pretty bad using the DK1 DistortionK values, but it was stereovision. And again this was/is just for testing.... I have since moved on to using the DK2 library with the DK2!
- brantlewAdventurer
"Karmington" wrote:
While I understand SDK distortion is the way to go, I have also been wondering why new values should not work.
In fact I am using some values just searched for by hand ( 1.0, 0.02, 0.24, 0.0 ).
But, the distortion is not perfect, the very edges warp a bit, and thus suboptimal.
I am now working on getting the SDK distortion sorted out, but I am still interested why this is the case, if DK1 barreldistortion was acceptable. Something to do with lenses, screen size?
There's no magic here. In either case we are simply talking about a curve. How you compute it is more-or-less a mathematical detail. Splines just end up being a lot easier to work with and more expressive than high-order polynomials. But in most cases the spline curves can be approximated to a very high degree with a poly and they are effectively interchangeable -- except for the my previous point about the mathematical meaning of of the curve being completely different for 0.2 and 0.3. The 0.2 curves directly represent distortion inversion in screen space. The 0.3 curves represent the lens distortion in angular space - exactly opposite of the 0.2 curve meaning. The indirectness of this approach means that direct pixel shader implementations of the 0.3 curves are too expensive to be practical.
But more directly to your point. Yes, you can create 0.2 style distortion parameters for a DK2 that will work well. But we simply don't generate them here for the defunct SDK. They literally do not exist. But feel free to post them if you come up with good parameters. - AnonymousI start to follow the drift of the problem, Thanks.
Since some game engines have support for barrel distortion supported out of the box, it would be nice to have solid numbers for it, as getting them by trial and error ( as I have done ) seems dodgy and has not yielded completely satisfactory results.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 8 months ago
- 9 months ago
- 22 days ago