我尝试在ARKit
场景中产品的深度区域设置黑色阴影,但没有成功。我试过这段代码:
node.geometry?.materials.first?.ambientOcclusion.contents = 0.5
我附上了所需的结果图像和当前结果图像。
当前结果
预期结果
我尝试在ARKit
场景中产品的深度区域设置黑色阴影,但没有成功。我试过这段代码:
node.geometry?.materials.first?.ambientOcclusion.contents = 0.5
我附上了所需的结果图像和当前结果图像。
当前结果
预期结果
为 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 映射纹理:
这是一个 5 分钟视频的链接,该视频介绍了如何在 Maya 中对纹理进行 uv 映射。
或者,作为更简单的解决方案,您可以
UV-mapped Diffuse texture
使用半透明黑色画笔在类似 Photoshop 的应用程序中绘制。
diffuse
然后通过插槽分配阴影绘制纹理:
node.geometry?.materials.first?.diffuse.contents = UIImage(named: "diffuseWithShadows.png")
或者你可以使用假阴影技术。