Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS版Swift 2.0中使用金属制作球体?_Ios_Xcode_Swift_Metal - Fatal编程技术网

如何在iOS版Swift 2.0中使用金属制作球体?

如何在iOS版Swift 2.0中使用金属制作球体?,ios,xcode,swift,metal,Ios,Xcode,Swift,Metal,有人知道如何在iOS中使用金属制作球体吗? 我按照这个来学习一些金属材料 但我无法确定如何在3D中渲染球体。您必须更改网格数据,但手工操作将非常困难。因此,总的来说,您有几个选择: 可以在3D建模程序(如Blender)中绘制球体,并将其导出为OBJ文件。然后,您可以使用模型I/O之类的框架(参见WWDC视频),甚至您自己的框架来读取OBJ文件 如果你更勇敢、更雄心勃勃,你可以尝试用数学方法按程序创建球体的顶点数组。我想说这会比第一个更难,但是嘿,很酷 手动在顶点数组中键入所有顶点位置。我不推荐

有人知道如何在iOS中使用金属制作球体吗? 我按照这个来学习一些金属材料


但我无法确定如何在3D中渲染球体。

您必须更改网格数据,但手工操作将非常困难。因此,总的来说,您有几个选择:

  • 可以在3D建模程序(如Blender)中绘制球体,并将其导出为OBJ文件。然后,您可以使用模型I/O之类的框架(参见WWDC视频),甚至您自己的框架来读取OBJ文件
  • 如果你更勇敢、更雄心勃勃,你可以尝试用数学方法按程序创建球体的顶点数组。我想说这会比第一个更难,但是嘿,很酷
  • 手动在顶点数组中键入所有顶点位置。我不推荐这样做,因为这会浪费时间,而且您也不会在发展编程知识方面做太多工作
    您可能可以使用其他方法。取决于您的创造力。

    最好的方法是使用模型I/O框架创建一个MDL网格来表示球体网格。可以这样做:

    let sphereMesh = MDLMesh(sphereWithExtent: vector3(0.1, 0.1, 0.1), segments: vector2(50, 50), inwardNormals: false, geometryType: .triangles, allocator: metalAllocator)
    

    有关更多信息,您可以查看和。

    我知道如何操作!但有几个步骤和许多选择。请尝试一下,然后回答一些更小、更集中的问题。这与渲染立方体是一样的。只需更改网格数据。