Three.js 模具缓冲区相交可视化

Three.js 模具缓冲区相交可视化,three.js,Three.js,我正在尝试完全按照介绍stencil buffer material API的PR to three.js中所示的方式进行stencil buffer intersection可视化,如下所示: 不幸的是,产生这种效果的代码链接已经失效,我还没有找到任何复制它的源代码。threejs中维护的模具缓冲区示例有一些共同点,但在细节上有足够的差异,因此它不是这个示例的一个非常有用的参考点 我想做的是采用拉伸的2D形状,并使用模具缓冲区找到它与模型相交的位置,如Blender中制作的这个粗略示例: 我

我正在尝试完全按照介绍stencil buffer material API的PR to three.js中所示的方式进行stencil buffer intersection可视化,如下所示:

不幸的是,产生这种效果的代码链接已经失效,我还没有找到任何复制它的源代码。threejs中维护的模具缓冲区示例有一些共同点,但在细节上有足够的差异,因此它不是这个示例的一个非常有用的参考点

我想做的是采用拉伸的2D形状,并使用模具缓冲区找到它与模型相交的位置,如Blender中制作的这个粗略示例:

我的计划是进行类似于本文所述的过程:

  • 使用模具参考值0和深度写入渲染基础模型
  • 仅使用背面渲染拉伸模型,并在
    ZFail
    上增加缓冲区。深度写入和深度测试已禁用
  • 使用
    stencilFunc
    LessThan
    再次渲染拉伸模型,使其渲染主模型下的拉伸部分
  • 渲染正面-由于前面的步骤失败,因此我从未详细说明此步骤
  • 我能做到的最接近的是:

    这是彻底的失败。zbuffer和模具缓冲区如何与正确的渲染顺序协调,以避免渲染模型下的内容,同时允许正面仅在交点处渲染。这是否有可能,正如链接PR中的例子所示

    谢谢你的帮助