我尝试在ARKit
场景中的产品深度区域设置黑影,但没有成功。我尝试使用以下代码:
node.geometry?.materials.first?.ambientOcclusion.contents = 0.5
我已附上必需的结果图像和当前结果图像。
当前结果
预期结果
答案 0 :(得分:0)
对于3D模型,使用 自我遮盖 和 环境光遮盖 的最可靠,最简单的方法是为此创建一个伪造的 UV-mapped texture
(而不是实时呈现折叠中的自我阴影)。因此,在3D模型上使用伪造的AO纹理,对CPU / GPU的负担最小,并且您的电池也非常感激您。
要创建UV映射的漫反射和环境光遮挡纹理,您需要一个UV Texture Editor
,您可以在任何流行的3D创作应用程序(例如Maya或3dsMax)中找到它们。渲染UV映射的AO纹理(为具有预乘alpha RGBxA的四通道PNG文件)后,您可以使用以下代码简单地对其进行分配:
node.geometry?.materials.first?.ambientOcclusion.contents = UIImage(named: "AO.png")
查看存储在2个不同png文件中的这2个uv映射纹理:
这是一个link长达5分钟的视频,介绍了如何在Maya中对纹理进行uv-map。
或者,作为更简单的解决方案,您可以使用半透明的黑色画笔在类似Photoshop的应用中绘制
UV-mapped Diffuse texture
。
然后通过diffuse
插槽分配阴影纹理:
node.geometry?.materials.first?.diffuse.contents = UIImage(named: "diffuseWithShadows.png")