Unity3d 通过面具状全息图显示圆形

Unity3d 通过面具状全息图显示圆形,unity3d,shader,hololens,Unity3d,Shader,Hololens,我正在使用Unity 5.5,并尝试复制遮罩/剪辑,就像Hololens的Holomaps应用程序中那样。即使不是圆形,也可以使用方形/矩形遮罩。全息地图应用程序的Youtube视频位于 在那个里你们可以看到,地图是一个规则的矩形网格,但只能通过一个圆形入口看到 不同的是,我有一个带有地图的基准面和一个包含建筑和其他地标的不同网格 我尝试过深度任务(来自Unity Wiki)和模具着色器,但未能达到效果 对于深度任务,我创建了4个立方体来覆盖地图的所有面,并且在4个立方体之间留了一个小孔。但要覆

我正在使用Unity 5.5,并尝试复制遮罩/剪辑,就像Hololens的Holomaps应用程序中那样。即使不是圆形,也可以使用方形/矩形遮罩。全息地图应用程序的Youtube视频位于

在那个里你们可以看到,地图是一个规则的矩形网格,但只能通过一个圆形入口看到

不同的是,我有一个带有地图的基准面和一个包含建筑和其他地标的不同网格

我尝试过深度任务(来自Unity Wiki)和模具着色器,但未能达到效果

对于深度任务,我创建了4个立方体来覆盖地图的所有面,并且在4个立方体之间留了一个小孔。但要覆盖建筑高度,立方体必须高于建筑,这会导致摄影机在进入遮罩立方体内部时,摄影机视图忽略遮罩

模具着色器应用于任何3D形状时,将允许遮罩以所有摄影机角度显示,从而显示遮罩形状

有没有关于如何进行那样的遮罩/剪裁的提示?


你试过做这样的剪贴画吗?我可以想象一个具有中心和半径参数的着色器,其中任何超过半径的像素都会被丢弃。alpha cutout着色器通常就是这样工作的,通常与这样的遮罩一起使用。

好的,我已经能够在下一步计算出确切的解决方案。这是一个着色器,它从球体形状的世界点(中心)以一定距离剪裁对象

正是我想要的


感谢@Everts和@Nonameghost的创意:)

可能是因为它们使用了一个着色器,根据到中心的距离将像素设置为黑色。因为黑色是透明的,所以它看起来像一个遮罩。啊,我回答了一些类似的问题,但我强烈建议实际上放弃像素,而不是使用alpha透明。“剪纸的效率更高。@埃弗茨我今天打算尝试类似的东西,只是用一些黑色立方体看看它是如何工作的,因为全息透镜不会渲染黑色。将更新它的运行方式。这看起来很有希望!让我完成黑立方体测试,并在这里测试和更新剪贴画。