Unity3d Unity 3D-渲染孔以代替放置在对象A上的对象B

Unity3d Unity 3D-渲染孔以代替放置在对象A上的对象B,unity3d,shader,depth-buffer,Unity3d,Shader,Depth Buffer,我有一个主要对象,我想在其中打一个任意形状的洞,这取决于叠加游戏对象的形状。我原以为这可以通过stencil buffer tricks()实现,但由于我的项目是针对HDRP的,所以它似乎不起作用 游戏对象A有一个着色器和材质集,所以我不想更改它的着色器,因为它是继承的。 游戏对象B是叠加的形状,任何方法都是免费的。 我会很高兴,如果有人知道我应该读什么,以便为高清渲染管道(这使得某些着色器代码无效)这样做。 书写着色器,或使用着色器图形制作,任何着色器都可以。我相信我使用的着色器可以在水中为船

我有一个主要对象,我想在其中打一个任意形状的洞,这取决于叠加游戏对象的形状。我原以为这可以通过stencil buffer tricks()实现,但由于我的项目是针对HDRP的,所以它似乎不起作用

游戏对象A有一个着色器和材质集,所以我不想更改它的着色器,因为它是继承的。 游戏对象B是叠加的形状,任何方法都是免费的。 我会很高兴,如果有人知道我应该读什么,以便为高清渲染管道(这使得某些着色器代码无效)这样做。
书写着色器,或使用着色器图形制作,任何着色器都可以。

我相信我使用的着色器可以在水中为船创建一个“孔”。也许是你想要的


然后,您可以使用中间对象,作为玩家(或其他任何人)应该能够通过该区域的区域。

我相信我使用该着色器在水中为船创建了一个“洞”。也许是你想要的


然后,您可以使用中间对象,作为玩家(或其他任何人)应该能够通过该区域的区域。

也许您可以稍后使用第二台摄影机渲染gameobjectA?@zambari我考虑了渲染队列方法,因为我已经有两台摄影机可用,但是我是否仍然需要标记不可见的像素?我不知道该怎么做。也许你以后可以使用第二台相机渲染gameobjectA?@zambari我考虑过渲染队列方法,因为我已经有两台相机可用,但我不需要以某种方式标记不可见的像素吗?我不知道该怎么做。谢谢你的建议。我试过了,但是没有产生洞。我在想,可能是因为我使用的是HDRP而不是标准渲染器。。?我的对象A设置为渲染队列2500,孔(B)设置为2400,该孔也连接了着色器。我经历过一些着色器在LW管道中不起作用。也许试着在一个默认的unity项目中做一个测试,看看这是否是原因?我能够在一个标准项目中让它工作。HDRP中没有相同的设置。但这并不意味着这在HDRP中是不可能的。。一定有办法:(我找到的所有这种技术的例子都是使用模具缓冲区或深度遮罩,这在基于HDRP的着色器中似乎是我无能为力的。我想不出为什么他们会这样做。对不起,我没有找到解决这个问题的方法(对于HDRP)因此,我将重新表述我的问题并再次提问。您的建议在标准渲染器中有效。:)尽管我的项目不会在标准渲染器上。谢谢您的建议。我试过了,但是没有产生洞。我在想,可能是因为我使用的是HDRP而不是标准渲染器。。?我的对象A设置为渲染队列2500,孔(B)设置为2400,该孔也连接了着色器。我经历过一些着色器在LW管道中不起作用。也许试着在一个默认的unity项目中做一个测试,看看这是否是原因?我能够在一个标准项目中让它工作。HDRP中没有相同的设置。但这并不意味着这在HDRP中是不可能的。。一定有办法:(我找到的所有这种技术的例子都是使用模具缓冲区或深度遮罩,这在基于HDRP的着色器中似乎是我无能为力的。我想不出为什么他们会这样做。对不起,我没有找到解决这个问题的方法(对于HDRP)因此,我将重新表述我的问题并再次提问。您的建议在标准渲染器中有效。:)尽管我的项目不会在标准渲染器上。