【问题标题】:Using materials on 3D models created in Blender在 Blender 中创建的 3D 模型上使用材质
【发布时间】:2016-11-23 08:58:13
【问题描述】:

我想制作一个无法使用 SceneKit 内置几何模型构建的形状,因此我想为此使用一些其他 3D 建模程序。如果这些模型(例如在 Blender 中创建)可以充当可以直接在 SceneKit 中创建的模型,我很感兴趣。我希望能够在代码中应用材料并更改对象的颜色,并且想提前知道导入模型是否可以实现。

我知道我可以将模型导出为 .dae(Collada 文件),这样我肯定可以使用模型,但不能更改其材料。

如果可以以其他方式更改它,如果您能简要说明应如何从 Blender 导出对象(以哪种格式),我将不胜感激。

【问题讨论】:

    标签: blender scenekit 3d-modelling


    【解决方案1】:

    实际上是的,您可以更改 Collada (dae) 格式的材料。

    材料包含在SCNMaterial类中。

    您可以使用以下方法访问材料:


    首先,您可能有最简单的材料访问方法:

    SCNNode.geometry.firstMaterial

    此方法为您提供对象正在使用的第一种材料。


    接下来您可以访问全部材料:

    SCNNode.geometry.materials

    此方法为您提供一个NSArray,其中包含对象正在使用的所有材料。


    那么你终于拥有了好名字了:

    [SCNNode.geometry.materialWithName: NSString]

    此方法为您提供一个 NSArray,其中包含对象正在使用的所有材料。


    在苹果文档中:

    SCNNode.geometry 是什么?找出here

    材料accessmanipulation


    附注:

    要实际控制SCNMaterial 的颜色/图像,您需要使用SCNMaterialProperty

    一个SCNMaterial 由几个SCNMaterialPropertys 组成。

    更多信息请阅读文档

    【讨论】:

    • 感谢您的帮助。在 Blender 中导出模型时,只创建没有纹理且没有 UV 展开的形状是否足够,或者我应该这样做以便能够将它们作为 Xcode 中的材料应用?我尝试设置我的对象的第一个材质的漫反射贴图并得到错误说“漫反射是一个仅获取的属性”。所以我假设我在导出之前做错了什么。
    • 设置漫反射使用diffuse.contents。此“漫反射”可以设置为颜色、图像等。有关更多信息,请访问苹果文档SCNMaterialPropertyhere
    猜你喜欢
    • 1970-01-01
    • 2012-10-24
    • 2011-03-02
    • 2016-06-22
    • 2015-08-24
    • 2012-07-10
    • 2013-12-22
    • 2012-02-10
    • 2015-03-26
    相关资源
    最近更新 更多