public void Start()
{
TangoApplication tangoApplication = FindObjectOfType<TangoApplication>();
m_arCameraPostProcess = gameObject.GetComponent<ARCameraPostProcess>();
if (tangoApplication != null)
{
tangoApplication.Register(this);
// If already connected to a service, then do initialization now.
if (tangoApplication.IsServiceConnected)
{
OnTangoServiceConnected();
}
// Pass YUV textures to shader for process.
YUVTexture textures = tangoApplication.GetVideoOverlayTextureYUV();
m_screenMaterial.SetTexture("_YTex", textures.m_videoOverlayTextureY);
m_screenMaterial.SetTexture("_UTex", textures.m_videoOverlayTextureCb);
m_screenMaterial.SetTexture("_VTex", textures.m_videoOverlayTextureCr);
}
if (m_enableOcclusion)
{
TangoPointCloud pointCloud = FindObjectOfType<TangoPointCloud>();
if (pointCloud != null)
{
Renderer renderer = pointCloud.GetComponent<Renderer>();
renderer.enabled = true;
// Set the renderpass as background renderqueue's number minus one. YUV2RGB shader executes in
// Background queue which is 1000.
// But since we want to write depth data to Z buffer before YUV2RGB shader executes so that YUV2RGB
// data ignores Ztest from the depth data we set renderqueue of PointCloud as 999.
renderer.material.renderQueue = BACKGROUND_RENDER_QUEUE - 1;
renderer.material.SetFloat("point_size", POINTCLOUD_SPLATTER_UPSAMPLE_SIZE);
pointCloud.m_updatePointsMesh = true;
}
else
{
Debug.Log("Point Cloud data is not available, occlusion is not possible.");
}
}
}