2017-12-15 2 views
2

Zunächst entschuldige ich mich, wenn für die nicht-technische Sprache in Bezug auf 3D-Design, es ist außerhalb meines Umfangs. Ich verwende einige DAE-Dateien zum Anzeigen von 3D-Modellen auf SceneKit, die von einem 3D-Designer bereitgestellt werden. Wenn ich es jedoch zum Ordner scnassets auf XCode hinzufüge, werden alle Materialfarben "beschädigt". Nehmen Sie zum Beispiel diese DAE für ein Juwel, die blaue und weiße Version wird auf einem Online-Viewer visualisiert und ist die richtige. Das andere Schwarz-Weiß ist ein Screenshot, den ich von meinem Telefon mit einer ARSession gemacht habe, wobei der Dae auf einen Knoten geladen wurde.iOS SceneKit: XCode "bricht" importierte DAE-Materialfarben

Correct colors Wrong colors

Jede Idee, wie ich die ursprünglichen Farben erhalten kann?

aktualisieren von der Kommandozeile Lauf ich viele dieser Warnungen erhalten:

xcrun $ scntool --convert ARO-E-BLING.DAE --output cliConverted.scn --format scn

Achtung: Die instance_effect mit URL-Datei: /Users/Leandro/Documents/ARO-E-BLING.DAE#White Stein-fx es keinen Effekt verweisen,

Warnung Überspringen: Die instance_effect mit URL file:/Benutzer/Leandro/Dokumente/ARO-E-BLING.DAE # Blue Stone-FX nicht Referenz einen Effekts, das Überspringen ihm

Achtung: Haben Sie ein ungültiges Material [weiß], Rückkehr zu einem Standardmaterial

Achtung: Haben Sie ein ungültiges Material [blau], Rückkehr zu einem Standardmaterial

Antwort

5

Nun, es von der Kommandozeile aus zu starten, hat mir geholfen, die Lösung zu finden. Es scheint scntool scheitert, wenn Materialien und/oder Effekte im Dae Whitespaces darauf haben. Zum Beispiel hatte ich Dinge wie:

<material id="Blue Stone" name="Blue Stone"> 
    <instance_effect url="#Blue Stone-fx"/> 
</material> 

, die ich ersetzen musste für

<material id="Blue_Stone" name="Blue_Stone"> 
    <instance_effect url="#Blue_Stone-fx"/> 
</material> 

UPDATE 8. Januar 2018 ich einen Fehlerbericht an Apple eingereicht und sie gaben an, dass dieses Verhalten nicht ein Fehler ist die besagt, dass:

nach dem Collada spec (https://www.khronos.org/files/collada_spec_1_4.pdf) der URL eines „instance_ef fect "ist vom Typ" xs: anyURI ".

URIs nicht Raum enthalten dürfen, müssen sie ("Spaces sollten stattdessen entwertet werden mit% 20" in http://www.datypic.com/sc/xsd/t-xsd_anyURI.html) entwertet werden.

+0

Große Antwort. Ich weiß nicht genug, um sicher zu sein, aber das sieht wie ein Käfer aus. Sie sollten es mit Apple protokollieren: bugreport.apple.com –

+0

@RoboticCat tat das, sie entließ es als kein Fehler (siehe Antwort Update bei Interesse) – leandrodemarco

+0

Danke für das Update. Also kein Fehler mehr. das macht dies zu einer sehr nützlichen Antwort. –