我正试图决定为我的Unity3d项目使用哪种AR工具。候选的是ARToolkit和Wikitude。我还在寻找的是关闭相机输入,但仍然显示一个虚拟对象,根据标记的位置或旋转旋转和缩小/增长。
例如,如果我想在一个标记上面显示一个红色的3d立方体,我想只在黑色背景上显示这个立方体,而不显示其他任何东西。有任何AR工具支持此功能吗?如果不是ARToolkit或Wikitude也没关系。
谢谢
ARToolkit有这个功能,你只需要在ARCamera脚本上勾选名为"透视显示"的框。
当使用透明显示时,黑色被认为是透明的,因为它没有被渲染。我想你也是出于同样的原因。
有关这方面的更多信息,包括如何校准透明显示器,您可以查看官方文档:使用光学透明显示器
使用Wikitude Plugin,您还可以通过向执行渲染的相机添加以下脚本来实现这一点。
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);
}
}
然后在脚本的检查器中添加你想要的纹理作为背景
继沙拉菲的评论之后…如果您深入到ARcontroller脚本的第1222行并找到
clearCamera。
如果SolidColor更改为Skybox,则黑色将成为统一的相机视图。