【问题标题】:SCNMaterial: can't find init:mdlMaterial:SCNMaterial:找不到初始化:mdlMaterial:
【发布时间】:2016-07-07 04:03:59
【问题描述】:

我正在尝试将凹凸贴图添加到材质中,但显然无法使用普通的 SCNMaterial 来实现,因此我只是尝试使用 MDLMaterial,然后将其转换为 SCNMaterial。苹果文档中有a method

convenience init(MDLMaterial mdlMaterial: MDLMaterial)

但我不断收到错误消息:

/Users/ramy/Documents/Swift/Space Shooter/Space Shooter/Util.swift:50:26:调用中的参数标签不正确(有 'MDLMaterial:',预期为 'coder:')

好像没找到方法。我在Objective-C中尝试过,但仍然找不到。

编辑

我已经在导入 ModelIO:

import ModelIO

如果我切换到:

import SceneKit.ModelIO

没什么变化,还是找不到方法。

【问题讨论】:

    标签: ios swift scenekit


    【解决方案1】:

    您需要导入桥接头才能看到这些方法:

    // Objective-C
    #import <SceneKit/ModelIO.h>
    
    // Swift
    import SceneKit.ModelIO
    

    也就是说您不应该使用模型 I/O。您是否尝试过 SCNMaterial 上的 normal 材质属性?

    另请注意,模型 I/O 被设计为一种交换格式,并不是 SceneKit 支持它可以表示的所有内容。如果 SceneKit API 没有公开您正在寻找的内容,那么使用中间模型 I/O 对象几乎没有任何帮助。

    【讨论】:

    • 我已经在导入 ModelIO。我试图切换到 SceneKit.ModelIO 但它仍然找不到该方法。如果我将凹凸贴图设置为法线属性,我会得到奇怪的结果,因为凹凸贴图不应该用作法线贴图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多