2016-04-28 50 views
3

我使用drawIndexedPrimitives函數在金屬中繪製點,但我不應該在哪裏調整點的大小。在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

我發現,在着色器定義點大小。

建立一個VAR在結構中的頂點着色器

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

併爲VAR設定值:

VertexOut.pointsize = 10.0; 

然後用畫點功能,在主代碼:

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

但仍然堅持與拉斯維加斯文件...不知道如何使用金屬渲染...