使用 ARKit 渲染天花板灯时出现问题

Problems rendering a ceiling light with ARKit

我一直在尝试在 ARKit 中渲染这个模型:https://free3d.com/3d-model/traditional-ceiling-light-485.html。我有 OBJ/MTL 个文件,用于开灯和关灯版本。当我在 Blender 中渲染它们时,它们看起来像这样:

然而,当我将它们放入我的 ARKit 测试应用程序时,它们看起来像这样:

在 Blender 中,您可以清楚地看到 "on" 版本的灯光有点发光,而在 ARKit 中,两个模型看起来完全一样。我猜 MTL 文件包含 ARKit 不支持的内容。 "on"版本的MTL如下:

# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
# File Created: 19.03.2018 16:33:20

newmtl Traditional_Ceiling_Light_Metal
    Ns 100.000000
    Ni 15.000000
    d 1.000000
    Tr 0.000000
    Tf 1.000000 1.000000 1.000000 
    illum 2
    Ka 0.588000 0.588000 0.588000
    Kd 0.500000 0.500000 0.500000
    Ks 0.000000 0.000000 0.000000
    Ke 0.000000 0.000000 0.000000
    map_Ka Traditional_Ceiling_Light_Visual_Diffuse.png
    map_Kd Traditional_Ceiling_Light_Visual_Diffuse.png
    map_Ks Traditional_Ceiling_Light_Visual_Specular.png
    map_bump Traditional_Ceiling_Light_Visual_Normal.png
    bump Traditional_Ceiling_Light_Visual_Normal.png

newmtl Traditional_Ceiling_Light_Glass
    Ns 100.000000
    Ni 1.600000
    d 1.000000
    Tr 0.000000
    Tf 1.000000 1.000000 1.000000 
    illum 2
    Ka 0.588000 0.588000 0.588000
    Kd 0.500000 0.500000 0.500000
    Ks 0.000000 0.000000 0.000000
    Ke 7.500000 7.500000 7.500000
    map_Ka Traditional_Ceiling_Light_Visual_Diffuse.png
    map_Kd Traditional_Ceiling_Light_Visual_Diffuse.png
    map_Ks Traditional_Ceiling_Light_Visual_Specular.png
    map_Ke Traditional_Ceiling_Light_Visual_Emissive.png
    map_bump Traditional_Ceiling_Light_Visual_Normal.png
    bump Traditional_Ceiling_Light_Visual_Normal.png

newmtl Traditional_Ceiling_Light
    Ns 100.000000
    Ni 1.600000
    d 1.000000
    Tr 0.000000
    Tf 1.000000 1.000000 1.000000 
    illum 2
    Ka 0.588000 0.588000 0.588000
    Kd 0.500000 0.500000 0.500000
    Ks 0.000000 0.000000 0.000000
    Ke 7.500000 7.500000 7.500000
    map_Ka Traditional_Ceiling_Light_Visual_Diffuse.png
    map_Kd Traditional_Ceiling_Light_Visual_Diffuse.png
    map_Ks Traditional_Ceiling_Light_Visual_Specular.png
    map_Ke Traditional_Ceiling_Light_Visual_Emissive.png
    map_bump Traditional_Ceiling_Light_Visual_Normal.png
    bump Traditional_Ceiling_Light_Visual_Normal.png

仅仅是因为ARKit无法正确渲染这个模型吗?

您的场景(或光照环境)中似乎没有光,但从您的图片中很难分辨出来。

确保两种资产都具有 PBR material,为了获得最佳结果,请仔细检查每一种资产。密切注意 emission 属性,因为 obj 文件通常将它们显示为 white/clear 灰色。这就是两个对象之间的区别。事实上,你只需要将发射属性 for 1 material从OFF变为ON即可。