2017-08-10 74 views
0

我正在玩ARKit,到目前为止我成功了,但是我有3D图形的问题(因为我对它没有任何了解)。如何在Xcode中显示带有纹理的3D对象

我从TurboSquid等网站下载的每个对象在Xcode中甚至在Blender(或没有纹理的节目)中都没有纹理。

我只需要获取一个对象(最好是.dae),并在其上应用纹理。

请问我能向三岁小孩解释我失踪的是什么?

谢谢。

编辑:

这是一个与移动相机,甚至当我设置他的位置模型:

Table from TurboSquid

let treeScene = SCNScene(named: "art.scnassets/table2/table2.scn") 
let treeNode = treeScene?.rootNode.childNode(withName: "table2", recursively: true) 
treeNode?.position = position 

sceneView.scene.rootNode.addChildNode(treeNode!) 

回答

3

我也开始学习ARKit这是怎么我做的。

某些3d模型在png文件中带有纹理,然后可以将其复制到art.scnassets。选择dae模型并获取要应用纹理的节点。在右侧的材料检查器中相应地应用纹理。

或者

可以使用纹理创建SCNMaterial并将其应用到节点编程。

let material = SCNMaterial() 
material.diffuse.contents = UIImage(named: "texture.png") 

//Create the the node and apply texture 
objectNode?.geometry?.materials = [material] 

试试这个作为试验

https://www.turbosquid.com/3d-models/free-missile-3d-model/595524

应用中弥漫纹理(在材料检查)。

+0

谢谢你的提示!那么,我只需要下载包含纹理的3D模型?为什么没有它的模型?它可以以某种方式从Blender输出吗? – Boomerange

+1

将Blender中的纹理模型导出到DAE文件时,需要勾选选项以保存材质。我有时会忘记勾选该选项。 –

+0

@ M.Bedi非常感谢你;)最后一个问题。我添加了四个模型没有任何问题,然后我应用纹理。但是有两种模式很奇怪。我为每个模型设置相同的位置(在SCNVector3中获取点的位置),但是两个模型只是跟随我的相机。所以无论我触摸屏幕的哪个位置,它们总是出现在同一个位置,并且紧跟着相机。所以如果我移动,物体(模型)也会移动。其他模式都可以,并保持他们的位置。 – Boomerange