2016-04-28 7 views
3

私はdrawIndexedPrimitives関数を使ってMetalで点を描画しますが、どこで点のサイズを調整する必要はありません。 OpenGL ESでは、シェーダのポイントサイズを調整することができます:gl_PointSize = 10.0f;これはMetaでどのように機能しますか?金属の描画点

ところで、ファイルからの描画ポイントについては、私はlasファイル(3Dポイントクラウドデータ:センサーからのデータを格納するために使用されるシーケンシャルバイナリフォーマットと、一部のアプリケーションによる中間処理ストレージ)を持っています。それをXcodeにインポートし、Metal for iOSを使用してこれらのポイントをレンダリングすると、誰もMetalを使用してlasファイルを実装する方法を知っていますか?それをインポートする前にOBJまたはPLYに変換する必要がありますか?

ドローポイント機能(SWIFT):

commandEncoder.drawIndexedPrimitives(.Point, 
            indexCount:indexCount, 
            indexType:.UInt16, 
            indexBuffer:indexBuffer, 
            indexBufferOffset: 0) 

答えて

3

Iシェーダにポイントサイズを定義することを見出しました。

VertexOut.pointsize = 10.0; 

、メインコードの延伸点関数を使用:

頂点シェーダ

struct VertexOut{ 
... 
    float pointsize[[point_size]]; 
...} 

とVARの値を設定するための構造体でVARを設定

commandEncoder.drawIndexedPrimitives(.Point, 
            indexCount:indexCount, 
            indexType:.UInt16, 
            indexBuffer:indexBuffer, 
            indexBufferOffset: 0) 

まだlasファイルが付いています...メタルでレンダリングする方法が分かりません...

関連する問題