Tag: Geva Zeichner

使用新的iOS 10 SceneKit惊人的基于物理的渲染

毫无疑问,在移动设备上进行渲染时,Apple已开始使用它。 实时渲染和高级硬件的最新进展确实为获得高端结果提供了机会,而无需在设备上花费2000美元的价格。 尽管Apple的团队在WWDC 16’上介绍了许多进步,但是我真正注意到了一项改进,那就是SceneKit中基于物理渲染(PBR)的支持。 在过去的几年中,这种渲染技术获得了广泛的关注,并已成为工程师和3D艺术家的事实上的行业标准。 在这篇简短的文章中,我将尝试演示如何简单地使用新推出的iOS 10基于物理的渲染器,并在不具有任何高级图形引擎复杂性的情况下获得出色的效果。 在继续之前,我想坦诚地声明。 本文过度简化了一些概念,以使您对PBR中的关键元素有所了解。 基于物理的渲染 重要的是要了解不同的环境贴图会创建非常不同的渲染,因此请仔细选择您的环境贴图。 选择正确的环境图本身就是一门艺术,通常是由经验丰富的3D艺术家完成的。 物理渲染的材质定义 材料对于出色的PBR着色至关重要。 它们为我们的着色器提供了使这些惊人的可视化效果的基本信息。 过去,定义材料非常困难。 有上百万个参数需要调整,并且需要大量的魔术师和经验来使它正确。 此外,材料定义与照明非常相关,这在材料创建方面造成了问题。 使用PBR阴影,故事变得简单得多。 实际上,仅使用两个浮点数就可以很容易地获得视觉上令人愉悦的陶瓷,塑料或金属(请参见下文)。 基本上,您可能会达到相同的外观和感觉,但是艺术家将不得不工作几个小时才能获得他们想要的精美外观。 PBR材料的三个主要参数称为: 反照率,粗糙度和金属度 。 反照率分量是对象的基础颜色,并且与其他着色模型的漫反射分量直接相关。 反照率值通常是RGB颜色,通常由3个浮点数定义。 粗糙度和金属度 – 这些值描述了表面的粗糙度或金属感。 下图很好地说明了仅使用0.0-1.0范围内的浮点值来更改任一值对渲染结果的影响。 为了获得专业的效果,您将需要使用纹理,该纹理将为模型上的每个点定义不同的PBR组件。 幸运的是,大多数3D艺术家已经熟悉此着色模型,并发布了免费的材质定义,可以帮助您快速启动任何项目。 此外,iOS 10 PBR材质还支持其他贴图,例如法线贴图,这些贴图是可选的,但必须使用以获得良好的外观。 为了演示的目的,我使用了freepbr.com的一些资料。 如果要使用其他材料测试代码(如下),请确保将其签出。 编码时间 我们将一起创建旋转球的示例,如下所示。 无需担心-所有代码都在GitHub上发布。 首先,您需要了解一些先决条件: 获得可用的最新macOS,iOS和Xcode beta版本-您不想因为Apple已经解决的错误而陷入困境。 不要使用模拟器-始终使用支持金属的设备。 这是Beta版软件-可能也会出现错误 准备看它有多简单? 我们走吧 我假设您有编写Swift代码的经验,并且您已经创建了一个SceneKit视图。 如果还没有,请从Game模板开始,然后选择SceneKit作为您的游戏技术。 您将获得的模板代码足以完成本练习(我在这里实际使用过……) 第一步:创建一个场景: 让场景= SCNScene(名称:“ sphere.obj”)! 如您所见,直接从OBJ文件初始化场景非常简单。 […]