不显示摄像头画面的增强现实

Augmented Reality without displaying camera feed

我正在尝试决定为我的 Unity3d 项目使用哪个 AR 工具。 候选人是 ARToolkit 和 Wikitude。 我也在寻找的是 关闭摄像头馈送 ,但仍显示一个旋转的虚拟对象,其大小 shrinks/grows 取决于标记的位置或旋转。

例如,如果我想在标记上方显示一个红色的 3d 立方体,我想只在黑色背景上显示立方体而不显示任何其他内容。是否有任何 AR 工具支持此功能?不是ARToolkit或者Wikitude也没关系

谢谢

ARToolkit 具有该功能,您只需在 ARCamera 脚本中选中名为 "See-through display" 的框即可。

当使用透视显示器时,黑色被认为是透明的,因为它没有被渲染。我想你出于类似的原因想要它。

有关这方面的更多信息,包括如何校准透视显示器,您可以查看官方文档:Using an Optical See-Through Display

使用 Wikitude 插件,您还可以通过将以下脚本添加到执行渲染的相机来实现此目的。

using UnityEngine;
using UnityEngine.Rendering;

public class CustomCameraRenderer : MonoBehaviour {

    public Texture2D textureToRender;

    void Start () {
        var buffer = new CommandBuffer();

        buffer.Blit(textureToRender, BuiltinRenderTextureType.CameraTarget);
        var camera = GetComponent<Camera>();
        CameraEvent eventForBlit;

        if (camera.actualRenderingPath == RenderingPath.Forward) {
            eventForBlit = CameraEvent.BeforeForwardOpaque;
        } else {
            eventForBlit = CameraEvent.BeforeGBuffer;
        }
        camera.AddCommandBuffer(eventForBlit, buffer);
    }
}

然后在这个脚本的检查器中添加你想要的纹理作为背景。

根据 Shalafi 的评论...如果您深入研究第 1222 行的 ARcontroller 脚本并找到

clearCamera.clearFlags = CameraClearFlags.SolidColor;

如果把SolidColor改成Skybox,那么黑色就变成了camera view变成unity了。