3d 在Three.js中从后期处理中排除对象/层

3d 在Three.js中从后期处理中排除对象/层,3d,three.js,shader,3d,Three.js,Shader,从后处理中排除某些对象或(理想情况下)对象层的最佳方法是什么 例如,我希望使用各种后期处理效果(SSAO、倾斜平移等)渲染出一个复杂的背景场景,然后覆盖另一层3D对象,而不使用后期处理效果 我在想,我可以有两个完全不同的WebGL渲染器彼此叠加(具有透明背景),但我希望这两个层彼此集成,因此看起来非处理层对象是集成的/在处理层对象之上 如果有帮助的话,我不会对影响第二层的倾斜移动太过担心——我最感兴趣的是确保第二层没有应用SSAO 我希望这至少有点道理。在我深入兔子洞太深之前,我想在这里问一下,

从后处理中排除某些对象或(理想情况下)对象层的最佳方法是什么

例如,我希望使用各种后期处理效果(SSAO、倾斜平移等)渲染出一个复杂的背景场景,然后覆盖另一层3D对象,而不使用后期处理效果

我在想,我可以有两个完全不同的WebGL渲染器彼此叠加(具有透明背景),但我希望这两个层彼此集成,因此看起来非处理层对象是集成的/在处理层对象之上

如果有帮助的话,我不会对影响第二层的倾斜移动太过担心——我最感兴趣的是确保第二层没有应用SSAO


我希望这至少有点道理。在我深入兔子洞太深之前,我想在这里问一下,什么时候可能有一个完美的方法,我不知道。:)

我假设您使用
THREE.EffectComposer
进行后处理。看看它是如何使用
EffectComposer
中的
MaskPass
(利用模具缓冲区)将某些后期处理(模糊)限制到背景的。您还需要在单独的场景中使用背景对象和前景对象。

我假设您使用
THREE.EffectComposer
进行后期处理。看看它是如何使用
EffectComposer
中的
MaskPass
(利用模具缓冲区)将某些后期处理(模糊)限制到背景的。您还需要将背景对象和前景对象分别放在不同的场景中。

谢谢!这足以让我开始:)谢谢!这足以让我开始:)