首先,我为有关3D设计的非技术性语言道歉,这超出了我的范围。
我使用一些DAE文件在SceneKit上显示3D模型,由3D设计师提供。但是当我将它添加到XCode上的scnassets
文件夹时,所有材质颜色都会被损坏"。以此DAE为宝石,蓝色和白色版本在在线查看器上可视化,是正确的。另一个黑色和白色是我从手机上运行ARSession的屏幕截图,其中dae加载在节点上。
关于如何保留原始颜色的任何想法?
更新从命令行运行我收到很多警告:
$ 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没有引用效果,跳过它
警告:找到无效材料[白色],还原为默认材料
警告:找到无效的素材[蓝色],还原为默认素材
答案 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)。