3

MDLMesh を作成し、SCNGeometry に変換して SceneKit でレンダリングすることができました。しかし、メッシュやジオメトリで折り目をサポートすることができませんでした。

メッシュに折り目のサポートを追加するための正しい手順を実行していることを確認したかっただけです。

  1. MDLSubmeshTopology の作成
  2. 新しいトポロジ オブジェクトでは、MDLMeshBuffers を edgeCreaseIndices に、edgeCreases および Int を edgeCreaseCount プロパティに割り当てます。
  3. トポロジ オブジェクトで MDLSubmesh を作成します。

私は特定の解決策を探しているわけではなく、メッシュに折り目のサポートを追加する方法の一般的なアイデアにすぎません。これに関する経験がある人なら誰でも素晴らしいでしょう。

4

2 に答える 2

2

データを 4 バイト整数のエッジ ペアとして準備し、クリース値を float として準備したと仮定すると、次のように動作するはずです。

    geometry.edgeCreasesSource = [SCNGeometrySource geometrySourceWithData:ecsData
                                                         semantic:SCNGeometrySourceSemanticEdgeCrease
                                                      vectorCount:creaseCount
                                                  floatComponents:YES
                                              componentsPerVector:1
                                                bytesPerComponent:4
                                                       dataOffset:0
                                                       dataStride:sizeof(float)];
    geometry.edgeCreasesElement = [SCNGeometryElement geometryElementWithData:eceData
                                                       primitiveType:SCNGeometryPrimitiveTypeLine
                                                      primitiveCount:creaseCount
                                                       bytesPerIndex:4];
于 2016-12-15T00:09:53.087 に答える