Optical Calibration: In depth Info on Hardware and Software IPD function in newest PiTool Version

Hello,

Sorry to misunderstand your idea, I thought you were asking for help, so i told you to log a ticket. It’s my fault. So, after reading your post again , I finally realised your idea, we do have some issues in some aspects ,and we are very grateful that you would like to point out our question to let us know that, your advice will enable us to make progress! Thanks again for your advice!

Wish you have a good day!

1 Like

Hi PimaxOliver,
my reaction was a little bit too harsh. I was just very frustrated with tinkering around for months. I like the Pimax Headsets when they work as expected and don’t regret my purchase. If there was only a wireless module it would be perfekt! :wink:

Hi Emax,

I can understand you, if i was a pimax user, after paying much money but cannot get it work smoothly, so that i have to do lots of jobs to make it work, and sometimes ,there’s no appropriate way that i can find to solve it, it’s upset and annoyed. please have a belief that pimax will make progress with his fans.

Sincerely!

I tried your tool and the IPD reported by it reflects exactly the number that I see when I use the hardware dial. The software IPD Offset does not have any effect when using PiTool 266 according to your tool.
Not sure if I did something wrong here. just executed your exe file and read the data displayed in the cmd window and looked for the IPD value.

1 Like

This is definitely not expected :slight_smile:. The IPD value which the tool reports is basically the “IPD of virtual cameras” used for the rendering. I do not have 8k-X to test it, but on my 5k+ (albeit a long time ago) the software IPD offset was affecting the reported IPD value.

Now, just for a check, did you restart SteamVR in between the readings? I believe it should work even without it (if implemented correctly), but if not, I would give it a try, it is possible that PiTool requires that.

1 Like

No, I did not restart SteamVR between readings, but when I started SteamVR there was already an offset per eye (-0,6) applied. The IPD dial was at 62.3. The tool only reported 62.3 ignoring the offset. I changed the offset without restarting SteamVR, but I think if it worked it had already reported the initial offset.

PiTool 266 behaves differently (as reported by others) and might not work with your tool any more. Please note that I currently have an offset of R -0,8 and L -0,5. I wonder how your tool would react to this. In theory PiTool should figure this out and report to SteamVR and your tool, but something does not work as expected.
You might try this with 266 yourself, as it is the only final test you can trust. Otherwise your tools functionality is limited with 266 and newer).

hmdq does not interface with PiTool (or depend on it). It reads all the data from SteamVR by using OpenVR API (or using Oculus API for Oculus headsets). In fact, it does not care which headset is connected. So if the tool reports IPD of 62.3 mm, it is what SteamVR advertises to the applications, and what the applications will use to render the scenes.

Which means if the offset you set in PiTool does not show in the advertised values, they are not used by the apps.

When you run hmdq -v1 it will show a bit more info, including the “eye to head” matrices. The last column in this matrix is basically the eye coordinate (relative to the head), which can give you an idea of an exact impact of the software offset on the eye position (if it has any impact at all).

As I wrote, whatever PiTool does, it is between Pimax software (headset driver) and SteamVR runtime. No influence or intervention from hmdq.

1 Like

Hi and thank you for your interesting posts. About the elusive immersion/presence: what is your experience with other headsets? Have you experienced a need for exact right ipd on those other headsets you have tried? My ipd is around 61-60, which following your example would suggest that the ideal settings is not reachable for me. I’ve tried the valve index and couldn’t tell the difference in immersion/presence compared to my pimax headsets. I’ve not revisited the first gen. Headsets to test.

Ok, then it looks like the IPD from the wheel is reported to OpenVR but Pimax might do some kind of post processing of the image delivered by OpenVR according to the Software offset? That is the only reasonable thought I have right now.

Considering the base calibration of the headsets are not correct, I would also not be concerned using a reported 62.3 IPD as long as the result is as intended.
Otherwise it would also be easy to use a Pimax headset if I dial in my real IPD of 64 and it just worked :wink:
I found this an interesting read from a former(?) Varjo HMD developer picking up the IPD issue on his Pimax review:

This would be the only (possible) reasonable justification. However there are few things which are countering it:

  1. Originally the software offset was introduced to help people to move lenses into a different position (than their eyes were) - this way it worked on my 5k+ when I did the tests.

  2. If the virtual cameras are only determined by the hardware IPD then there is no way to get the scene geometrically right when the hardware IPD does not match the user’s IPD. No amount of postprocessing can compensate for the wrong geometry (or wrong scene “alignement”).

So I am more inclined to believe that the thing does not work.

Hi PetroVitallini,

it is quite hard to tell. I cannot say if general having lower IPD is the right way. All Pimax Headsets might vary and sometimes you have it right from the beginning or you might need to increase IPD to match real vision. However, most people in this forum report a reduction of 2 mm to match real world viewing.

My Artisan worked quite good without tinkering the IPD or H-offset. It had other issues and I sold it, so I cannot test it with PiTool 266. There is a change in it that 266 made my remaining Headsets (5k XR and 8KX) usable and reduced eyestrain out of the box.

I also dialed in the 8KX now and the required IPD and Offset for me are quite similar for these two Headsets (XR needs little bit lower IPD of 62 vs 62.3 and -0.1 less H-offset. So far I am happy now, no eyestrain and real world vision combined with reduced edge distortion.

With Rift, Quest, Vive Pro and Index all felt real view from the beginning. Dialed in 64 IPD and done. using 62 or 66 did also not harm the experience too much. The effect of the wheel is much bigger with the Pimaxes.

Now there are people out there that have no strong stereo vision (a very dominant eye or different eye power) and dont feel it. Or it needs experience to know what to look for. I also was busy for months to get it all sorted and I even build a Headset back in 2012.

Then there are people with low IPD who need to do the extreme IPD mod (google it) to make it work for them.

I found the best test to start with is if the real world eye convergence matches the Virtual world eye convergence at objects of same distance in both worlds (as described above). However, the change in convergence of your eyes (an automated mechanism controlled without your consciousness) is hard to monitor or realize. Only when there is an extreme deviation it is easy to realize. I try to fix my convergence when going to headset or out and see if I have double vision in real world or VR world. Sometimes I force slight double vision and then look into the headset to see if I see sharp with this fixed eye position. If yes, there is a deviation that needs to be fixed. That’s all I can tell you and maybe it was already more you ever wanted to know :slight_smile:

1 Like

What do you think does not work? I did not get what you mean here.
I can only report that the H-offsset changes the position of the images and has influence on the distorion profiles. However, the IPD reported by your tool does not change no matter what H-Offset I apply. I can give it another shot with the extended command line. I can also post a screen shot if it helps. Will also restart SteamVr in between.
What is the matter with PiTool 266? You don’t want to install it? There is always the chance I do something wrong here or my VR related software in general is corrupt or has some other issues.
Could it be the offset is applied to SteamVR in some other ways bypassing your software read out (like the IPD Offset you can apply in the SteamVR Settings file?

When changing the IPD of the headset (and here I mean the complete change, including the distortion profiles and virtual camera positions) it also includes the positions of the images, because they are positioned on the display which is fixed. The fact that you observe it is therefore expected (if by “changing the position” you mean that).

What does not work (in my opinion) is that the change (the impact of the software offset) does not propagate into SteamVR (but affects the part which is handled by Pimax software, i.e. the distortion and the image placement).

I am not questioning your findings and observations. I believe they are authentic. What I question are your conclusions about how things work. Because I have a different understanding (and experience) and I was wondering why your headset seemingly behaves differently. One way to verify your theory was to use hmdq to check the numbers. What you report is different from what I experienced and we may leave it at that.

I do not even know which version of PiTool I have, but you are right I do not want to install any new version, because every time I install a new one, something gets worse. My 5k+ got to the point it is annoying to wear, because of pronounced barrel distortion (which my older 5k+ running the very old firmware and PiTool did not have). The second reason is I have Pimax 5k+ and I do not want to use it to investigate an issue which seems to happen on 8k-X. Third reason is I switched recently to Vive Pro and do not feel motivated to spend the time on (debugging) Pimax anymore.

No. SteamVR must tell the application the correct IPD at which the application should render the (stereo) scene. Once the scene is rendered the IPD (= virtual cameras positions) is “baked” into the image and there is no way to change it, without re-rendering it again with a new one. My tool just reads this same value (it behaves as a regular app to SteamVR) and only displays it. This is pretty straightforward and cannot get wrong numbers (unless something else is broken elsewhere).

It is a pity that you are out of the Pimax hardware now as as it seems you are a more knowledgeable person. However, I can understand it. Looks like you are at least part of the community.

Very good choice here. I feel the Vive Pro is the most underrated headset out there. I use it with Index Controllers and Wireless adapter and it is still my daily driver at the moment. It gives you a very good feeling of presence despite the smaller FOV. I use a KIWI 10 mm face mask and put the lenses at the closest position. The FOV is H 107 V130 as compared to Index H 108, V 134 (according to TestHMD Tool). I love the Vive Pro and I sold the Index

I started with Pimax when 258 was released and for me things got better with newer versions. with 266 I could finally dial the optics in and I hope they don’t revert whatever has changed as I might need to start from scratch again.

What I reported for 266 is true for my 8KX and my 5K XR, so I assume it is a general behaviour and also affects your 5K Plus.

I can only comment on newer versions and I found that barrel distortion kicks in when you are to far from the lenses or use the headset in the wrong angel on your head. The V-offset also has massive influence on barrel distortion related to the angle or position of the headset. There is a tiny sweet spot on this massive lenses where all comes together when everything else is setup correctly

Pimax also mentioned that they changed (optimized) the distortion profiles last year.

I only use the headsets with comfort kit and I use the thin cover modded with double sided velcro at certain positions. I managed to avoid barrel distortion and reduce edge distortion with my mod and reported IPD and H offset settings while also having real world view/convergence and no eyestrain. I managed this for both Pimaxes. The 5K XR even has less distortion after my setup and larger V-FOV (126 vs 122 for 8KX). It is also sharper over the complete FOV (not the resolution, the optical characteristics). Your 5K Plus should be at the same level when correctly calibrated at all levels (same lenses same size of screen).

I am so satisfied with the Pimaxes now that I only need a “good” wireless solution, and I am a very picky person :wink:

I understand your point, but that makes it even more strange and curious about what’s going on here. I will play around little bit more and also use older PiTool version to figure this out.

With the old 5k+ (and the old software), I was able to get almost undistorted image (wrt barrel distortion), though it lacked a depth. It was however the infamous 202 series with the black dots and what not, so last year I got a replacement (203 series), I also upgraded the PiTool at the time and noticed the barrel distortion.

I have always been using the headset quite far from the face because of the glasses (which are also wide - as you can imagine with my IPD of 72 mm), so even on the original 5k+ I was having like 20 mm thick foam (the original HTC Vive thick foam with double velcro boost). So changing to thick foam in the Comfort Kit was not really a big difference.

I agree though that the headset is also very sensitive to the declination (the angle between the headset and the face).

Anyway, I can put the prescription inserts (I got for my OG Vive) into my Vive Pro (which allows me minimizing the eye relief) and in general can have my Vive Pro set up far easier, despite the fact that I spent many hours in Pimax and I believe I know fairly well how it works.

2 Likes

@Emax and all

Just for the record, I connected my Pimax 5k+ and upgraded to the latest and greatest:
Firmware: 2.1.255.269, PiTool 1.0.1.268

I can confirm that (now separated) IPD offsets have no impact on virtual cameras positions. It does not matter if I restart SteamVR or PiServiceLauncher. The virtual cameras are fixed at the position defined by hardware IPD setting.

Screen vertical offset does not have the impact on virtual cameras either, but this I did not expect anyway.

However, when checking inside the headset, the image moves, horizontally, or vertically. So my conclusion is that Pimax has changed the behavior of the feature, but left the name same, just to confuse the users. Because changing the virtual camera position is completely different thing from shifting the image across the screen.

I have run some tests with my test image (attached below). Just copy it to $Pimax\Runtime\resource folder and rename it to pimax_default.jpg, it does not matter it is PNG format it will work, and restart PiServiceLauncher.exe service so the Pimax runtime reloads the new default image.

Then you can experiment with finding the offsets that make the left and right image match. Take care that the grid pattern will try to make your eyes match different squares. If this happens, it will manifest as seeing the “merged numbers” i.e. the numbers which the left eye and the right eye will see will not be the same and you will see them as a “logically or-ed”.

You can also notice that the pre-lens warping does not change with the offset (with the extreme offsets, you can notice that the geometry no longer looks right), which means that the offset is just shifting the same image (rendered and warped for the default position) over the display. Which also means that once you set non-zero offset (from the default position), it will screw the geometry perception.

EDIT 1: Warning
This image is not meant to guide you in setting up the right IPD as I believe the image could be rendered with a wrong geometry setup. Please read my comment below (https://community.openmr.ai/t/optical-calibration-in-depth-info-on-hardware-and-software-ipd-function-in-newest-pitool-version/34213/47)

5 Likes

Hi.
well observed. Didn’t you notice when you switched from the 5k + to the 8kx?
is it worse vertically on one side?

I do not have 8k-X :slight_smile:.

Maybe you can take a trip through the different pitool revisions. is also interesting and exciting for the eyes if in a short time sequence through.

Thank you for trying this out yourself and confirming my observations finally!
I put months of testing and calibration into the Pimax headsets and I started with PiTool 258 and mainly 260 and now spend a lot of time with 266 and 268.

As agreed things changed lately, but it is not entirely clear to me what the consequences are! As you are a very knowledgeable person I hope you can help the community with this.
Doesn’t it mean that all previous tutorials and guides for setting up the Pimax optical system are obsolete with newer PiTools? If the behavior of the H-offset changed in the way you analyzed or understand now, what are the consequences with this? What can now not anymore be achieved or what new options does it give you to get real world view and best sharp image without eye strain. How do the existing guides have to be revised to apply for the newer PiTools? What metric unit does the software offset even use now? It does not look to be IPD offset in millimeter.

I played around with my 5K XR and PiTool 268 yesterday and crosschecked with Vive Pro and Quest. I found that while my settings established with 266 give no eye strain and perfect view and convergence matches with real world objects, the world scale is wrong. Everything is too big!
Then I found that if you don’t look for the perfect distortion but only for real world view, there are more than one solution to solve the equation of hardware IPD and H-offset.
-0.2 instead of -0.5 for both eyes and IPD of 63.2 instead of 62.3 gives good result and world scale is much better. Eye relive and side distortions are not as good though!
The -0.5 and 62.3 setting would have given me completely wrong world perception with older PiTools than 266!
Why Pimax does not communicate a severe change like this is another interesting question!

3 Likes