【问题标题】:SceneKit SCNGeometryElement TriangleStrip vs trianglesSceneKit SCNGeometryElement TriangleStrip 与三角形
【发布时间】:2016-12-10 06:45:54
【问题描述】:

我已经绘制了一个包含 SCNGeometryElement 对象的场景。 (这是一个地形。我每个网格项目有 2 个三角形) 为了优化,我决定用 TriangleStrip 替换我的三角形图元。 但它并没有给我同样的结果

我的顶点数组是连续的4个点:

C  D
A  B

我的索引数组包含 A、C、B 和 D 的索引 因此,当我使用 TriangleStrip 时,场景工具包应该绘制 ACB 和 CBD 三角形。这就是苹果文档中所说的。

我想知道应该在原始计数中添加什么。我尝试了几件事。它改变了渲染,但我无法用简单的三角形检索到以前的相同结果......

有什么想法吗?

谢谢

let element = SCNGeometryElement(data: buffer_indices , primitiveType: .TriangleStrip, primitiveCount: Int(points_count), bytesPerIndex: sizeof(CInt))

【问题讨论】:

    标签: scenekit


    【解决方案1】:

    对于三角形带,primitiveCount 应等于 indexCount - 2

    您也可以使用 Swift 友好的 SCNGeometryElement(indices:primitiveType:)(另请参阅 this post)。

    【讨论】:

    • 你在苹果官方文档 indexCount -2 哪里看到的?谢谢
    • 它可能不在文档中,但在 OpenGL、Metal 和其他库中的工作方式相同。拿一张纸,画一个带有 3 个索引的三角形条,这就是 1 个三角形。然后添加 1 个索引,您有一个额外的三角形。添加n 索引,你有n 额外的三角形。所以公式很容易验证。
    • indexCount 的顶点数是多少?
    • 或索引数?
    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 2015-12-26
    • 2020-02-01
    • 2011-03-29
    相关资源
    最近更新 更多