1

如下图所示,我对头像上的衣服有一些问题

图 1

大多数人会建议我在建模软件中简单地将裤子从身体上拉开,这很好,直到它与其他衣服相结合

图 2

我现在可以把衬衫从裤子上拉开,但我有很多不同的衣服,检查/调整每件衣服似乎不是要走的路。

最好尝试应用某种分层系统。

谁能建议我如何实现这样的系统或如何实现我的目标?

我已经考虑过尝试使用着色器来做到这一点,但没有运气达到我想要得到的结果(但我承认我不是 Shaderlab/CG 专家)

我还尝试将化身分成不同的部分并用服装网格替换它们,但这仍然存在服装相互可见的问题。

我希望最好有某种系统,我可以在其中对每件衣服进行分层,以便无论它们以正确的顺序彼此叠加显示,而不会出现任何重叠。

4

1 回答 1

2

如果你真的想使用分层,你可以使用 Unity 的Render Layers,它实际上是为此而设计的。

  1. 转到图层 - >编辑图层

    在此处输入图像描述

  2. 添加您想要的图层(顺序无关紧要)

    在此处输入图像描述

  3. 将图层分配给您希望由某个角相机渲染的对象。

    在此处输入图像描述

    作为一个例子,我添加了一个trousers cubewith layer trousers,一个pillover cubewith layerpullover和一个OnTop cubewith layerOnTop

  4. 创建一个新的 Empty GameObject 并将其命名为 eg CameraParent。这将包含你所有的相机,你应该移动这个而不是你到目前为止移动的相机。

    如果这是一个 VR/AR 应用程序,您可能必须将一个Camera组件附加到此父对象,使其成为主摄像头但不渲染任何内容

    在此处输入图像描述

  5. 创建例如 4 个子对象并给它们一个Camera组件。还要确保只有一台摄像机被标记为MainCamera,并且只有一台摄像机AudioListener在您的场景中。我以 4 个摄像头为例,有TrousersCamera一个和PulloverCamera一个。OnTopCameraBackgroundCamera

  6. 现在设置渲染

    • BackgroundCamera
      在这里您可以像以前一样渲染任何其他内容

      • ClearFlags:例如SkyBox
      • Culling Mask: 选择 trousers,pulloverOnTop
      • Depth-1
    • TrousersCamera
      用于渲染裤子(在其他任何东西之上)

      • ClearFlags: 仅深度
      • Culling Mask:只选择 trousers
      • Depth: 0(你会看到一个更大的值呈现在一个较低的值之上)

    • PulloverCamera用于渲染裤子顶部的套头衫

      • ClearFlags: 仅深度
      • Culling Mask:只选择 pullover
      • Depth1
    • OnTopCamera
      用于在一切之上渲染其他东西

      • ClearFlags: 仅深度
      • Culling Mask:只选择 OnTop
      • Depth2

    在此处输入图像描述

结果您可以看到,虽然红色立方体 ( OnTop cube) 确实远远落后于其他立方体,而蓝色立方体 ( Pullover cube) 在中间,但红色总是会呈现在顶部,而不是蓝色,而不是棕色 ( trousers cube),最后是背景。

在此处输入图像描述

于 2019-02-12T05:03:08.200 回答