Fli*_*Fun 24
首先创建一个scnassets文件夹(不是必需但有用)
在桌面上创建一个文件夹,并为其添加".scnassets"扩展名
把你的collada(.dae)文件和你将在其中使用的任何纹理放在一起.
将文件夹拖到项目中并像往常一样保存为副本.
单击您的scnassets文件夹,您将看到一个复选框(如果没有检查它)以转换为"y"向上轴.
为场景模型指定纹理
在xcode中单击项目内的collada(.dae)文件.
您应该看到您的场景,并在其左侧列出相机,灯光,材料等.这是你的场景树.
打开材料选项卡,然后单击您的某个材料.
在检查窗口的右侧,单击蓝色球形图标(材料检查器)以查看该材质的漫反射,镜面反射等.
单击漫反射选项卡,当它打开时,您应该在项目中选择颜色和纹理.在3d程序中选择模型上使用的纹理.只要您在3D程序中正确地展开UV,它们就应该立即应用于场景视图中.
如果我想在加载场景后更改我的素材怎么办?很高兴你问!
为此,我们必须使用SCNSceneSource类的entryWithIdentifier方法.我将在这里使用swift因为它太棒了!开始了...
获取场景的网址(.dae)就像这样......
let url = NSBundle.mainBundle().URLForResource("YourFolder.scnassets/yourScene", withExtension "dae")
Run Code Online (Sandbox Code Playgroud)现在让我们使用该网址...
let source = SCNSceneSource(URL: url, options: nil)
Run Code Online (Sandbox Code Playgroud)单击您的.dae,在"场景图"下面是项目列表,其中一项是您的几何图形.它的右边会有一个发球水壶,表示如此.我们将在这里使用它的名字.假设您的几何图形名称为Geo.像这样使用它......
let yourGeometry = source.entryWithIdentifier("Geo", withClass: SCNGeometry.self) as SCNGeometry
Run Code Online (Sandbox Code Playgroud)现在我们有一个源代码连接到名为yourGeomerty的SCNNode.让我们创建一个像UIColor这样的新材料......
let newMaterial = SCNMaterial()
newMaterial.diffuse.contents = UIColor.redColor()
Run Code Online (Sandbox Code Playgroud)最后我们将使用newMaterial切换旧材料,如此...
yourGeometry.geometry.replaceMaterialAtIndex(0, withMaterial: newMaterial)
Run Code Online (Sandbox Code Playgroud)如果您有多种材料,请使用它和其他索引.您还可以使用UIImage类来使用其他纹理而不是颜色.
提示 如果要添加或删除scnassets文件夹中的内容,请导航到项目文件夹以执行此操作而不是xcode.我花了一段时间才弄清楚这么想我会救每个人的麻烦.
| 归档时间: |
|
| 查看次数: |
11334 次 |
| 最近记录: |