有没有办法使一个节点呈现为“透明”,这样当它被绘制时,场景视图下面的任何视图都会显示在节点通常显示的位置?
例如,假设我们的SCNView后面有一个红色的UIView。以球体为例,你会在场景视图中看到一个圆形的“洞”,红色视图会透过这个洞显示出来。
有什么想法吗?这是否涉及某种着色器?
例如,假设我们的SCNView后面有一个红色的UIView。以球体为例,你会在场景视图中看到一个圆形的“洞”,红色视图会透过这个洞显示出来。
有什么想法吗?这是否涉及某种着色器?
假设您在具有默认ship.scn
场景的SCNView下方放置了一个红色UIView。要基于SCNNode的alpha通道和redView的.mask
实例属性实现剪影效果,请使用以下代码:
import SceneKit
class ViewController : UIViewController {
@IBOutlet var sceneView: SCNView!
override func viewDidLoad() {
super.viewDidLoad()
if let redView: UIView = self.view {
redView.mask = self.sceneView
}
if let scene = SCNScene(named: "art.scnassets/ship.scn") {
self.sceneView.scene = scene
}
self.sceneView.backgroundColor = .clear
self.sceneView.scene?.lightingEnvironment.contents = .none
self.sceneView.scene?.background.contents = .none
}
}