在 Metal 中绘制点
Draw points in Metal
我在Metal中使用drawIndexedPrimitives函数画点,但我不知道应该在哪里调整点的大小。在 OpenGL ES 中,我可以在着色器中调整点大小:gl_PointSize = 10.0f;这在 Metal 中如何工作?
顺便说一下,为了从文件中绘制点,我有一个 las 文件(3d 点云数据:一种顺序二进制格式,用于存储来自传感器的数据,并作为某些应用程序的中间处理存储),我想要将其导入 Xcode 并使用 Metal 为 iOS 渲染这些点,有人知道如何使用 Metal 实现 las 文件吗?在导入之前我应该将它转换为 OBJ 还是 PLY?
画点函数(swift):
commandEncoder.drawIndexedPrimitives(.Point,
indexCount:indexCount,
indexType:.UInt16,
indexBuffer:indexBuffer,
indexBufferOffset: 0)
我发现在着色器中定义点大小。
在顶点着色器的结构中设置一个变量
struct VertexOut{
...
float pointsize[[point_size]];
...}
并设置变量的值:
VertexOut.pointsize = 10.0;
然后在主代码中使用Draw points函数:
commandEncoder.drawIndexedPrimitives(.Point,
indexCount:indexCount,
indexType:.UInt16,
indexBuffer:indexBuffer,
indexBufferOffset: 0)
但仍然坚持使用 las 文件...不知道如何使用 Metal 渲染它...
我在Metal中使用drawIndexedPrimitives函数画点,但我不知道应该在哪里调整点的大小。在 OpenGL ES 中,我可以在着色器中调整点大小:gl_PointSize = 10.0f;这在 Metal 中如何工作?
顺便说一下,为了从文件中绘制点,我有一个 las 文件(3d 点云数据:一种顺序二进制格式,用于存储来自传感器的数据,并作为某些应用程序的中间处理存储),我想要将其导入 Xcode 并使用 Metal 为 iOS 渲染这些点,有人知道如何使用 Metal 实现 las 文件吗?在导入之前我应该将它转换为 OBJ 还是 PLY?
画点函数(swift):
commandEncoder.drawIndexedPrimitives(.Point,
indexCount:indexCount,
indexType:.UInt16,
indexBuffer:indexBuffer,
indexBufferOffset: 0)
我发现在着色器中定义点大小。
在顶点着色器的结构中设置一个变量
struct VertexOut{
...
float pointsize[[point_size]];
...}
并设置变量的值:
VertexOut.pointsize = 10.0;
然后在主代码中使用Draw points函数:
commandEncoder.drawIndexedPrimitives(.Point,
indexCount:indexCount,
indexType:.UInt16,
indexBuffer:indexBuffer,
indexBufferOffset: 0)
但仍然坚持使用 las 文件...不知道如何使用 Metal 渲染它...