iOS SceneKit:XCode"打破"导入的DAE材质颜色

时间:2017-12-15 21:10:57

标签: ios xcode scenekit arkit collada

首先,我为有关3D设计的非技术性语言道歉,这超出了我的范围。 我使用一些DAE文件在SceneKit上显示3D模型,由3D设计师提供。但是当我将它添加到XCode上的scnassets文件夹时,所有材质颜色都会被损坏"。以此DAE为宝石,蓝色和白色版本在在线查看器上可视化,是正确的。另一个黑色和白色是我从手机上运行ARSession的屏幕截图,其中dae加载在节点上。

Correct colors Wrong colors

关于如何保留原始颜色的任何想法?

更新从命令行运行我收到很多警告:

  

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

     

警告:带有URL文件的instance_effect:/Users/Leandro/Documents/ARO-E-BLING.DAE#White stone-fx没有引用效果,跳过它

     

警告:带有URL文件的instance_effect:/Users/Leandro/Documents/ARO-E-BLING.DAE#Blue Stone-fx没有引用效果,跳过它

     

警告:找到无效材料[白色],还原为默认材料

     

警告:找到无效的素材[蓝色],还原为默认素材

1 个答案:

答案 0 :(得分:6)

好吧,从命令行运行它帮助我找到解决方案。如果dae中的材料和/或效果上有空格,则scntool似乎失败。例如,我有类似的事情:

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

我必须替换为

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

更新2018年1月8日我向Apple提交了一份错误报告,他们表示此行为不是一个错误说明:

  

根据Collada规范   (https://www.khronos.org/files/collada_spec_1_4.pdf)的网址   &#34; instance_effect&#34;属于&#34; xs:anyURI&#34;。

     

不允许URI包含空格,必须对它们进行转义(&#34;空格   应该使用%20&#34;在   http://www.datypic.com/sc/xsd/t-xsd_anyURI.html)。