Unity3d 不显示摄像机馈送的增强现实
我正在尝试决定我的Unity3d项目使用哪种AR工具。 候选人是ARToolkit和Wikitude。 我也在寻找的是关闭相机馈送,但仍然显示一个虚拟对象,该对象根据标记的位置或旋转旋转和缩小/增大大小 例如,如果我想在标记上方显示一个红色的3d立方体,我只想在黑色背景上显示立方体,而不显示其他任何内容。AR工具是否支持此功能?如果不是ARToolkit或Wikitude也没关系Unity3d 不显示摄像机馈送的增强现实,unity3d,computer-vision,augmented-reality,wikitude,artoolkit,Unity3d,Computer Vision,Augmented Reality,Wikitude,Artoolkit,我正在尝试决定我的Unity3d项目使用哪种AR工具。 候选人是ARToolkit和Wikitude。 我也在寻找的是关闭相机馈送,但仍然显示一个虚拟对象,该对象根据标记的位置或旋转旋转和缩小/增大大小 例如,如果我想在标记上方显示一个红色的3d立方体,我只想在黑色背景上显示立方体,而不显示其他任何内容。AR工具是否支持此功能?如果不是ARToolkit或Wikitude也没关系 感谢ARToolkit具有该功能,您只需选中ARCamera脚本上名为“透明显示”的框即可 使用透明显示时,黑色被认
感谢ARToolkit具有该功能,您只需选中ARCamera脚本上名为“透明显示”的框即可 使用透明显示时,黑色被认为是透明的,因为它没有渲染。我想你想要它也是出于同样的原因
有关此功能的更多信息,包括如何校准透明显示,您可以查看官方文档:ARToolkit具有此功能,您只需选中ARCamera脚本上名为“透明显示”的框 使用透明显示时,黑色被认为是透明的,因为它没有渲染。我想你想要它也是出于同样的原因
有关这方面的更多信息,包括如何校准透明显示,您可以查看官方文档:使用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);
}
}
使用UnityEngine;
使用UnityEngine.Rendering;
公共类定制摄影师:MonoBehavior{
公共纹理2D纹理渲染;
无效开始(){
var buffer=new CommandBuffer();
Blit(textureToRender、内置的UnderTextureType.CameraTarget);
var-camera=GetComponent();
CameraEventForblit;
if(camera.actualRenderingPath==RenderingPath.Forward){
eventForBlit=CameraEvent.BeforeForward不透明;
}否则{
eventForBlit=CameraEvent.BeforeGBuffer;
}
camera.AddCommandBuffer(eventForBlit,buffer);
}
}
然后,只需在脚本的检查器中添加所需的纹理作为背景。使用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);
}
}
使用UnityEngine;
使用UnityEngine.Rendering;
公共类定制摄影师:MonoBehavior{
公共纹理2D纹理渲染;
无效开始(){
var buffer=new CommandBuffer();
Blit(textureToRender、内置的UnderTextureType.CameraTarget);
var-camera=GetComponent();
CameraEventForblit;
if(camera.actualRenderingPath==RenderingPath.Forward){
eventForBlit=CameraEvent.BeforeForward不透明;
}否则{
eventForBlit=CameraEvent.BeforeGBuffer;
}
camera.AddCommandBuffer(eventForBlit,buffer);
}
}
然后,只需在该脚本的检查器中添加您想要的纹理作为背景。根据Shalafi的评论……如果您深入研究第1222行的ARcontroller脚本并找到 clearCamera.clearFlags=CameraClearFlags.SolidColor
如果SolidColor更改为Skybox,则黑色将成为统一的摄影机视图 下面是Shalafi的评论……如果您深入研究第1222行的ARcontroller脚本并找到 clearCamera.clearFlags=CameraClearFlags.SolidColor 如果SolidColor更改为Skybox,则黑色将成为统一的摄影机视图