private void Start() { if (FirstPersonCamera == null) { FirstPersonCamera = Camera.main.gameObject; } m_BackgroundRenderer = FirstPersonCamera.GetComponent <DemoARBackgroundRenderer>(); }
private void Start() { DemoARBackgroundRenderer bgRenderer = FindObjectOfType(typeof(DemoARBackgroundRenderer)) as DemoARBackgroundRenderer; if (bgRenderer != null) { Renderer renderer = GetComponent <Renderer>(); if (renderer != null) { renderer.sharedMaterial.mainTexture = bgRenderer.BackgroundRenderTexture; } } }
private void Start() { m_Camera = Camera.main; m_BackgroundRenderer = FindObjectOfType <ARCoreBackgroundRenderer>(); if (m_BackgroundRenderer == null) { m_UseDemoRenderer = true; m_DemoRenderer = FindObjectOfType <DemoARBackgroundRenderer>(); if (m_DemoRenderer == null) { Debug.LogError("DemoBackgroundProvider requires ARCoreBackgroundRenderer or" + "DemoARBackgroundRenderer anywhere in the scene."); return; } Debug.Log("DemoARBackgroundRenderer loaded."); } else { Debug.Log("ARCoreTextureProvider loaded."); } m_CommandBuffer = new CommandBuffer(); m_CommandBuffer.name = "Camera texture"; m_BackgroundTextureID = Shader.PropertyToID(BackgroundTexturePropertyName); m_CommandBuffer.GetTemporaryRT(m_BackgroundTextureID, /*width=*/ -1, /*height=*/ -1, /*depthBuffer=*/ 0, FilterMode.Bilinear); // Alternatively, can blit from BuiltinRenderTextureType.CameraTarget into // m_BackgroundTextureID, but make sure this is executed after the renderer is initialized. var material = m_UseDemoRenderer ? m_DemoRenderer.BackgroundMaterial : m_BackgroundRenderer.BackgroundMaterial; if (material != null) { m_CommandBuffer.Blit(material.mainTexture, m_BackgroundTextureID, material); Debug.Log("BackgroundTextureProvider material blited."); } m_CommandBuffer.SetGlobalTexture(BackgroundTexturePropertyName, m_BackgroundTextureID); m_Camera.AddCommandBuffer(CameraEvent.BeforeForwardOpaque, m_CommandBuffer); m_Camera.AddCommandBuffer(CameraEvent.BeforeGBuffer, m_CommandBuffer); }
/// <summary> /// Replaces the AR background material. /// </summary> private void ReplaceBackground() { if (ReplacementMaterial == null) { return; } if (FirstPersonCamera == null) { FirstPersonCamera = Camera.main.gameObject; } m_BackgroundRenderer = FirstPersonCamera.GetComponent <DemoARBackgroundRenderer>(); if (m_BackgroundRenderer != null) { m_BackgroundRenderer.SwapBackgroundMaterial(ReplacementMaterial); } }
/// <summary> /// Replaces the AR background material. /// </summary> private void ReplaceBackground() { if (ReplacementMaterial == null) { return; } if (FirstPersonCamera == null) { FirstPersonCamera = Camera.main.gameObject; } m_BackgroundRenderer = FirstPersonCamera.GetComponent <DemoARBackgroundRenderer>(); // Resets the fragment shader. ReplacementMaterial.SetFloat("_ShowColorOnly", 0f); if (m_BackgroundRenderer != null) { m_BackgroundRenderer.SwapBackgroundMaterial(ReplacementMaterial); } }