/// @cond /// <summary> /// Initialize the AR Screen. /// </summary> public void Start() { m_camera = GetComponent <Camera>(); m_tangoApplication = FindObjectOfType <TangoApplication>(); m_arCameraPostProcess = gameObject.GetComponent <ARCameraPostProcess>(); if (m_tangoApplication != null) { m_tangoApplication.OnDisplayChanged += _OnDisplayChanged; m_tangoApplication.Register(this); // If already connected to a service, then do initialization now. if (m_tangoApplication.IsServiceConnected) { OnTangoServiceConnected(); } } if (m_enableOcclusion) { TangoPointCloud pointCloud = FindObjectOfType <TangoPointCloud>(); if (pointCloud != null) { Renderer renderer = pointCloud.GetComponent <Renderer>(); renderer.enabled = true; renderer.material.shader = m_occlusionShader; pointCloud.m_updatePointsMesh = true; } else { Debug.Log("Point Cloud data is not available, occlusion is not possible."); } } }
/// @cond /// <summary> /// Initialize the AR Screen. /// </summary> public void Start() { m_screenSpaceMesh = new Mesh(); m_camera = GetComponent <Camera>(); 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."); } } }
/// @cond /// <summary> /// Initialize the AR Screen. /// </summary> public void Start() { m_camera = GetComponent <Camera>(); TangoApplication tangoApplication = FindObjectOfType <TangoApplication>(); tangoApplication.OnDisplayChanged += _OnDisplayChanged; 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(); } CommandBuffer buf = VideoOverlayProvider.CreateARScreenCommandBuffer(); m_camera.AddCommandBuffer(CameraEvent.BeforeForwardOpaque, buf); m_camera.AddCommandBuffer(CameraEvent.BeforeGBuffer, buf); } if (m_enableOcclusion) { TangoPointCloud pointCloud = FindObjectOfType <TangoPointCloud>(); if (pointCloud != null) { Renderer renderer = pointCloud.GetComponent <Renderer>(); renderer.enabled = true; renderer.material.shader = m_occlusionShader; pointCloud.m_updatePointsMesh = true; } else { Debug.Log("Point Cloud data is not available, occlusion is not possible."); } } }