2016-03-20 6 views
1

Ich versuche, einen Bump-Map auf ein Material hinzuzufügen und da scheinbar keine Möglichkeit, dort ist es mit einem einfachen SCNMaterial zu tun, ich habe gerade versucht, stattdessen eine MDLMaterial zu verwenden, und dann wandle es in ein SCNMaterial um. Es gibt a method in der Apple-Dokumentation für diese:SCNMaterial: kann init nicht gefunden: mdlMaterial:

convenience init(MDLMaterial mdlMaterial: MDLMaterial) 

Aber ich erhalte eine Fehlermeldung:

/Users/ramy/Documents/Swift/Space Shooter/Space Shooter/Util.swift:50:26: Incorrect argument label in call (have 'MDLMaterial:', expected 'coder:')

Es scheint nicht, die Methode zu finden. Ich habe es in Objective-C versucht und finde es immer noch nicht.

bearbeiten

ich bereits Modelio wurde importieren:

import ModelIO 

Wenn ich wechseln:

import SceneKit.ModelIO 

ändert sich nichts, ich kann immer noch nicht die Methode finden.

Antwort

1

müssen Sie den überbrück Header importieren, diese Methoden zu sehen:

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

// Swift 
import SceneKit.ModelIO 

Das heißt Sie sollten nicht Modell I/O verwenden. Haben Sie die Materialeigenschaft normal unter SCNMaterial ausprobiert?

Beachten Sie auch, dass Modell I/O als ein Fern Format wurde entwickelt, und nicht alles, was es darstellen kann, wird durch SceneKit unterstützt. Wenn die SceneKit-APIs nicht das bereitstellen, wonach Sie suchen, gibt es wenig oder gar keine Chance, dass die Verwendung eines Zwischenmodell-I/O-Objekts hilfreich ist.

+0

Ich importierte bereits ModelIO. Ich habe versucht, zu SceneKit.ModelIO zu wechseln, aber es findet die Methode immer noch nicht. Wenn ich die Bump-Map auf die normale Eigenschaft setze, erhalte ich seltsame Ergebnisse, weil die Bump-Map nicht als normale Map verwendet werden soll. –