コード例 #1
0
    private void Start()
    {
        if (FirstPersonCamera == null)
        {
            FirstPersonCamera = Camera.main.gameObject;
        }

        m_BackgroundRenderer = FirstPersonCamera.GetComponent <DemoARBackgroundRenderer>();
    }
コード例 #2
0
    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;
            }
        }
    }
コード例 #3
0
    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);
    }
コード例 #4
0
    /// <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);
        }
    }
コード例 #5
0
    /// <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);
        }
    }