我一直在场景套件中制作游戏,但物体的边缘很难看到,导致一些游戏细节无法看到。 有没有办法在所有游戏对象周围制作黑色轮廓?
您可以使用另一个答案中提到的
SCNTechnique
(您可以查看这篇关于cel shading的文章,它具有边缘检测通道),但全帧后期处理非常昂贵。
在 OS X 上,您还可以利用几何着色器(请参阅本文)。但它在 iOS 上不可用,并且可能更难实现和正确执行。
我会采用一种更简单的技术,只涉及顶点和片段着色器。您可以查看这篇文章,其中提供了一个可以使用
SCNProgram
或着色器修改器在 SceneKit 中轻松重新创建的示例。
这里有一个使用 SCNTechnique 为节点制作发光轮廓的示例: https://github.com/laanlabs/SCNTechniqueGlow
您可以修改颜色和模糊方法来实现描边效果。
另一个 SCNTechnique 示例,如下所示:https://www.nurfacegames.com/everything-you-wanted-to-know-about-outline-shaders/,是将节点渲染到后面稍大,然后再渲染到前面常规尺寸。
这是一个游乐场示例:https://github.com/mackhowell/scenekit-outline-shader-scntechnique。