我正在渲染一个球体,其中有一些2d平面(注释)粘在球体上。我希望注释不会渲染,如果它们位于距指向相机的矢量超过90º的点上...如果这是有道理的。
基本上我希望注释在引用我的球体上的相机无法看到的点时消失。
我将如何做到这一点?
澄清我的例子,我正在制作一个带注释的3d地球仪。我不希望渲染球体背面的注释,但我也不希望在下半球的地球正面注释其纹理被剪裁。我能够调整渲染顺序来修复第二个问题,但第一个问题就变成了问题。
更新:感谢mnuages我能够使用此代码来解决我的问题
func renderer(aRenderer: SCNSceneRenderer, updateAtTime time: NSTimeInterval) {
let position = scene.rootNode.convertPosition(annotation!.position, fromNode: globeNode)
if position.z > 0 {
annotation?.hidden = false
} else {
annotation?.hidden = true
}
}
答案 0 :(得分:1)
z
分量为负数,则隐藏该点(将节点的hidden
属性设置为YES
)