gpt4 book ai didi

swift - 需要 2d 广告牌仅在节点几何体的前面进行绘制

转载 作者:行者123 更新时间:2023-11-30 10:19:18 25 4
gpt4 key购买 nike

我正在渲染一个球体,球体上粘有一些二维平面(注释)。我希望注释如果位于与指向相机的矢量超过 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
}

}

最佳答案

  1. 计算球体中心在 View 空间中的坐标
  2. 计算 View 空间中跟踪点的坐标
  3. 计算从球体中心到 View 空间中跟踪点的向量
  4. 如果前一个向量的 z 分量为负,则该点被隐藏(将节点的 hidden 属性设置为 YES)

关于swift - 需要 2d 广告牌仅在节点几何体的前面进行绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28153573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com