【问题标题】:Smooth out SCNGeometry using subdivisionLevel使用 subdivisionLevel 平滑 SCNGeometry
【发布时间】:2018-11-20 14:18:38
【问题描述】:

我们正在开发一款类似于 iPhone 的 Animoji 应用的应用。我们已经创建了自己的 3d 模型,看起来非常漂亮,唯一的问题是模型的眼睛或鼻子周围有边缘不光滑。模型已在 Maya 3D 软件中准备好。

看截图

您可以看到眼睛周围和眉毛周围的粗糙边缘。

我们正在尝试以下代码来平滑这些边缘:

let node = self.childNodes[0]
        let geometry = node.geometry
        
        let verticies = self.change(geometry: geometry!)
        geometry?.edgeCreasesSource = SCNGeometrySource(vertices: verticies)
        geometry?.subdivisionLevel = 0
        
        guard let element = geometry?.elements.first else {
            return
        }
        //print(element.debugDescription)
        
        geometry?.edgeCreasesElement = SCNGeometryElement(data: element.data, primitiveType: .line, primitiveCount: element.primitiveCount, bytesPerIndex: element.bytesPerIndex)
        

我们正在尝试设置 subdivisionLevel 以便平滑边缘。这是正确的方法吗?或者我们需要做其他事情来以编程方式修复这个问题。当我们在 Maya 中看到 3d Designer 时,它的边缘非常平滑。

【问题讨论】:

    标签: ios 3d arkit scngeometry


    【解决方案1】:

    使用细分级别是平滑几何的正确方法。然而,在代码 sn-p 中,您没有设置任何高于 0 的细分级别。如果您使用少量对象,最好使用 SceneKit 编辑器并在属性检查器中设置细分级别.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 2016-03-17
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多