To enable a smartphone to display stereo images compatible with the HoloKit headset, accurate phone specifications are required by the HoloKit Unity SDK. If your Android phone is not on the supported list, this article will guide you on how to determine your device's specs.
All iPhone cameras are positioned at the top-left corner of their back, aligning seamlessly with the unobstructed corner of the HoloKit headset's baffle. Therefore, it's essential to ensure that your Android phone, when inserted into the HoloKit headset, leaves the camera unblocked.
![holokit-phone compatibility](https://private-user-images.githubusercontent.com/44870300/256795331-be40b6e2-0732-4a70-83e5-9b3dd8502d59.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTY3OTUzMzEtYmU0MGI2ZTItMDczMi00YTcwLTgzZTUtOWIzZGQ4NTAyZDU5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRiMzUxYjkxN2RlZjc2MzgyZTlhNDNlMTE2YTNkOTgxOWZjN2NkYjVmMWQ5YjFhODI3NWE1YWM0YWIzNTY1NDMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.VHcKEb9wlWfZ6nJQXIK6x3CNzk9qk_VCghxv-n85Lok)
Another aspect to consider is your phone's screen size; it should be large enough to display stereo images (width > 130mm, height > 65mm). Also, the thickness of your device should fall within a specified range (7mm < thickness < 9mm). Devices too thick may not fit into the headset, while those too thin may not be securely stabilized.
Once your Android phone is confirmed to be physically compatible with the HoloKit headset, we're ready to initiate the calibration process!
Begin by creating am empty Unity project and installing the HoloKit Unity SDK. Follow the guideline in the How to Use HoloKit Unity SDK section to configure your project settings correctly. Then, import the "Phone Model Specs Calibration" sample from the SDK.
![deploy](https://private-user-images.githubusercontent.com/44870300/256799410-9d0887bf-2573-4bfe-862a-633421713b28.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTY3OTk0MTAtOWQwODg3YmYtMjU3My00YmZlLTg2MmEtNjMzNDIxNzEzYjI4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUxMDljNTk1OWIyNTE3OWUyMzk5NGQwYjEzODQ1ZDA0ZGYzMDg0Y2M4YWFkYWYwY2I4OWZmNzA1YmY5YzI4MjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.dii1rKOwHyBt6_yPa-DVpp7Vz_4HvkARqItYN9ZXxzM)
Deploy the three scenes from the sample to your Android device, following the sequence outlined below.
![import sample](https://private-user-images.githubusercontent.com/44870300/257085242-9a579a40-10ac-4b02-afa8-bc45fee5e3a4.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcwODUyNDItOWE1NzlhNDAtMTBhYy00YjAyLWFmYTgtYmM0NWZlZTVlM2E0LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNmNTY2ZWNkMDA0NmZiMDE0NDRiZDk3MWU5ZGE5Y2IwZWFkOTY5MWVkMjM5ODViNzRkMjBiZWJjZjYxZDQ2YzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6rNArv-Pj-IJ7eMh-_RvmFAkaKnm3ti-KvsgpJi3GL4)
Upon successful deployment of the sample to your device, the following screen should appear.
![sample scene screen](https://private-user-images.githubusercontent.com/44870300/257085428-7efbb46d-de18-4032-9395-7d3bdc983d56.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcwODU0MjgtN2VmYmI0NmQtZGUxOC00MDMyLTkzOTUtN2QzYmRjOTgzZDU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBkODZkZmU0MGM1NjEzODliMzUwOTZmNzM0MDU0NGZkZGRmMDcxZTdiOTZmODA5ODJmOGM2YTUwOTcyNWMwNGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.eXjXbFyEi5fNvKKzilnzkc0ur_cnbh_itV39qSnhjBs)
The top-left corner displays the model name, screen resolution, and screen DPI(Dots Per Inch) of your phone. The model name uniquely identifies different phone models for the SDK. The screen resolution and DPI displayed are values provided by Unity, which may occasionally be incorrect. Therefore, it's crucial to cross-verify these two values with your phone's official specifications listed on the manufacturer's website. If the Unity provided values are not correct, you need to override them. In fact, we strongly recommend overriding these values regardless, to ensure more accurate calibration.
Navigate to Assets->Samples->HoloKit Unity SDK->[Version]->PhoneModelSpecsCalibration->ScriptableObject->CustomAndroidPhoneModelList
. Create a new list element and populate it with your device model, screen resolution, and screen DPI.
![enter phone model information](https://private-user-images.githubusercontent.com/44870300/257086385-7511b13c-37be-4f3d-8640-25c3a316ff4a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcwODYzODUtNzUxMWIxM2MtMzdiZS00ZjNkLTg2NDAtMjVjM2EzMTZmZjRhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTlmNmM3ZjBlMWViZTI2Y2U3MzBkZWYzYzkxZWFkNDBjNDI5MTMyM2YyNjQyNDcyNTNiNzcwNGFhMTg1NzIwODkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6In1wggCDZ6CKam-9apBpHUXoIykcUwJNuZt_bMTABc)
Please note, once you've added the entry for your phone model in the CustomAndroidPhoneModelList
scriptable object, it's necessary to rebuild the sample. This step ensures the calibration procedure utilizes the correct screen resolution and DPI.
We are now ready for calibration! There are two types of data we need to determine: the ViewportBottomOffset
and the CameraOffset
.
ViewportBottomOffset
represents the distance between the bottom of the phone screen and the base of the viewport, as illustrated in the subsequent image. For the SDK to properly align the stereo images on the phone screen with the headset's viewports, it requires the accurate value of this offset.
![ViewportBottomOffset](https://private-user-images.githubusercontent.com/44870300/257088698-a9d055fd-9364-4f68-a4ba-7d00c7db8b1e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcwODg2OTgtYTlkMDU1ZmQtOTM2NC00ZjY4LWE0YmEtN2QwMGM3ZGI4YjFlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTkzYWNlYzQzNDEyY2ViNzUwNTMxMmQ5N2Q0ODI1NzFiZTE1NDIyOTE3NmJmNTY3MzRjYWI2YTg3NmVhNjM0MGQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.0_HbJ1hhAVofR9qSn55WW5SZJ3aNLF8L1E8t_kJDL_A)
You can adjust the ViewportBottomOffset
using the up and down buttons located at the top corners of the screen. Ideally, perform this adjustment with your phone inserted into the HoloKit headset while wearing it. The goal of this step is to maximize the headset's Field of View (FOV). Please note that perfection isn't necessary; achieving 80% accuracy is sufficiently effective.
Once you've identified a suitable value for ViewportBottomOffset
, input this value into the CustomAndroidPhoneModelList
and rebuild the sample. Having the correct ViewportBottomOffset
value is essential for proceeding to the next step.
![update entry](https://private-user-images.githubusercontent.com/44870300/257089743-b87ea2e0-439f-4679-82bb-23057df1d0e0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcwODk3NDMtYjg3ZWEyZTAtNDM5Zi00Njc5LTgyYmItMjMwNTdkZjFkMGUwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJkNDk0ODQzYjRiOTFkOGFmMWFhMzBmMDM0ZWQ2MWU4Y2IxNTEwZjNkZDNiYWQyMzIxZmIwZGRhODZjNzNmZDEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.rzfhy4kwOTFSDCN7V3tFyyF2Gmr5dGWZ6iWjZsF_gLE)
CameraOffset
refers to the 3D vector offset from the center of the device's AR camera to the bottom center of the phone screen.
To determine the CameraOffset
, we first need to identity the AR camera. You can figure out this by launching any AR app and subsequently blocking each camera to discern which one functions as the AR camera.
![starting point](https://private-user-images.githubusercontent.com/44870300/257092176-68b51122-8447-40ab-9cb7-ec17f81efbd8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcwOTIxNzYtNjhiNTExMjItODQ0Ny00MGFiLTljYjctZWMxN2Y4MWVmYmQ4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUzMzBjMTg3ZWQyMTFkZGM3Yzk1ZDM2Zjc0YWY1N2UwNDMwOWQ0YTY0YjU5MGJmZThiMWUxNWExOTEwYmUzMWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pNFrNZ_XLYgjyVO73u1GsLL0BCo54aO8bqEZ5OgIb6o)
![end point](https://private-user-images.githubusercontent.com/44870300/257093216-fd252170-36ab-436a-a913-3028f19ada3c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcwOTMyMTYtZmQyNTIxNzAtMzZhYi00MzZhLWE5MTMtMzAyOGYxOWFkYTNjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE2ODE3NmRiMjZkNjc0ZWIzOGZiMzk0NTRjZDc1MjgxYTIxMWJjYWQ1Y2QyYjU4YzFiMTkyZmE5YWM2NjQwYmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.HrabNrm80ceVDyPKH4qZX3lPAF2Qst9vA9u_VZq1h9A)
As demonstrated in the above images, CameraOffset
is a vector spanning from the starting point to the end point. We utilize a right-handed coordinate system, as depicted below.
![right-handedness](https://private-user-images.githubusercontent.com/44870300/257093318-d95b6274-8fcd-471f-90c8-86d952d22b1e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcwOTMzMTgtZDk1YjYyNzQtOGZjZC00NzFmLTkwYzgtODZkOTUyZDIyYjFlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUxOTZjZTkzZjA1OWFjZTdkMWEzY2QxNTg5Nzc3YTA0M2RhMTBjNmE2ZTQ2Y2U4ZTFlYmE5MDk3ZThlOTlmZTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.aBFbQQEyHVG_tD8CznPrqEyJIcdW6tQlebtQfWcK0fM)
Consequently, CameraOffset.x
should always be positive, while CameraOffset.y
and CameraOffset.z
should always be negative.
There are three methods to determine the accurate CameraOffset
value.
The first and ideal method involves calculating the value using the official product design diagram. We used this approach for all iPhone models, but sourcing the product design diagram may prove challenging.
The second method encourages physical measurement of your phone using a ruler. A relatively precise result suffices, eliminating the need for extreme accuracy.
Lastly, you can utilize the calibration tool provided in the third scene of our PhoneModelSpecsCalibration
sample. This tool not only aids in identifying the CameraOffset
value but also serves as a verification instrument for the calibration results if you opted for the previous methods. We recommend the first two methods as this one is somewhat complicated and challenging to execute.
The subsequent section will guide you on how to utilize the calibration tool to both determine and verify the CameraOffset
value.
Press the CameraOffset
button on your phone to access the scene. In this scene, we employ image tracking to track a QR Code image. Once the phone identifies the QR Code, it will render a virtual cube on top of it. If both the ViewportBottomOffset
value and the CameraOffset
value are accurate, the virtual cube will be rendered directly above the QR Code. As we've already determined the correct value for ViewportBottomOffset
ealier, we only need to find the CameraOffset
value.
Start by navigating to Assets->Samples->HoloKit Unity SDK->[Version]->PhoneModelSpecsCalibration->Textures->T_TrackingQRCode.png
and open it on your computer. Ensure that the QR Code image displayed on your computer measures 10cm in both width and height, as the correct size of the image is crucial for tracking. An online ruler can be helpful for measuring the actual size of an image on the screen.
![online ruler](https://private-user-images.githubusercontent.com/44870300/257112589-73e5793f-9147-4ec6-b572-92d536ee3831.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcxMTI1ODktNzNlNTc5M2YtOTE0Ny00ZWM2LWI1NzItOTJkNTM2ZWUzODMxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNmZTliZmY3NGIyNWE1OTIzYTRhOWIwZGUzNWRhMTRlNjYwYjNjMzUzZmRmMjhiOTFlOTQ1MWY2ZWViZDkzNmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cJiTRx3eb44qebN2qZYDpNBzc_IgrN0GXW7UFHp84CQ)
When the correctly sized QR Code is displayed on the screen, insert your Android phone onto the HoloKit headset to observe the QR Code. If the current CameraOffset
value in the CustomAndroidPhoneModelList
ScriptableObject is precise, the virtual cube should be rendered directly above the QR Code. Should you notice a significant deviation, you can adjust each axis of the CameraOffset
value using the top bar of the phone screen. The accurate alignment of the virtual cube atop the QR Code signals a successful calibration.
![view the image](https://private-user-images.githubusercontent.com/44870300/257114353-d0da7a33-2eb3-406c-910e-9e04763060f9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcxMTQzNTMtZDBkYTdhMzMtMmViMy00MDZjLTkxMGUtOWUwNDc2MzA2MGY5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRiYWM2NmNiYTViZmI1YmU2MjU1MDk5ZDE0ODczZjdmYjczYWEzY2Y3MzBiOTRjNzdhZWY5ZjQ0OWZjZTRiMjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.DVDhxds_7Cbq5WTSfRvigQyxxrcZmhSZ13AdQnFvQ_s)
A complete calibration result for an Android phone encompasses the model name, screen resolution, screen DPI, ViewportBottomOffset
and CameraOffset
.
![create PhoneModelList](https://private-user-images.githubusercontent.com/44870300/257116345-2f8a2b37-9663-4109-8354-00ff44a5429e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcxMTYzNDUtMmY4YTJiMzctOTY2My00MTA5LTgzNTQtMDBmZjQ0YTU0MjllLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM5Y2ZlMGQ0YzY3MTEzMTdiMjBhYWUyNGY2NzFkZjQ5NjFlN2FlNThkNWFlMTZhODk4OWFjM2JkYmU5NGM1YmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.4hC51RzdMgkyG7TG2elCb4da5HwSyMt3aPYklDHmQbc)
In your project, generate your own PhoneModelList
ScriptableObject, add an entry for your phone model, and drag the ScriptableObject into the CustomAndroidPhoneModelList
field of the HoloKitCameraManager
component present in your scene. This will enable the HoloKitCameraManager
to identify your Android model's specs when rendering stereo images.
![reference](https://private-user-images.githubusercontent.com/44870300/257121532-80e3bee1-1379-4afc-a9c8-163ed4aa3430.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE3MjIsIm5iZiI6MTczOTM2MTQyMiwicGF0aCI6Ii80NDg3MDMwMC8yNTcxMjE1MzItODBlM2JlZTEtMTM3OS00YWZjLWE5YzgtMTYzZWQ0YWEzNDMwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDExNTcwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJkZTBmMWExMDZhNTQ2YzA5Yzk4YzJiODhhMGJkNjY1ZWI2ZGNmNThlYjM2MTRhN2FkNjhmNzJjYjU2ZDZkYTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.0S8naLEMy8gRtITtx2XjLehKU5Yll4lYiXFTxc22k3g)
We sincerely appreciate your effort in completing this calibration task -- it's no small feat!
We encourage you to share your calibration results with us, so that other developers with the same phone model can benefit from your work!
You can either share your calibration results on our Discord channel or submit an issue in this repository. Your contribution is truly valuable and appreciated.