第一篇帖子就是“砸场子”的帖子,哈哈哈。目前我在业余时间开发了一个用Swift编写的引擎,旨在探索引擎技术和编辑器的技术。因为是独立开发,所以没有选择C++做跨平台,而使用Swift尽可能让Apple平台提供更多的支持。引擎只支持Metal,便于探索现代图形API的各种特性,而不至于在跨平台RHI上耗费太多的时间。
https://github.com/ArcheGraphics/SwiftArche
整个引擎的结构和Unity会比较类似,图形层也尽量暴露出来方便做一些实验性的尝试。Swift准确的说只是上层语言,和C#的作用差不多。物理引擎,动画引擎,以及其他仓库都通过Objective-C++桥接上来。目前物理引擎的功能除了HeightField之外基本都接入了,其余功能都还比较残疾,现在已经开发的特性包括:
ARKit integration
- Face Tracking with morph
PhysX
- Collider
- Character Controller
- Joint
- Scene Query
Rendering
- Cascade Stable ShadowMap
- PBR Rendering (roghness-metallic, clearcoat)
- HDR IBL Lighting and baker (pure compute shader)
- Fog (Linear, Exponential, ExponentialSquared)
- ACES ToneMapping with auto luminance exposure
- Custom Shader with split Metal Shading Library
Animation
- Skinned Animation
- Morph Traget
Gizmos
- SDF Text
- Debugger tools with auxiliary wireframe rendering
GPGPU
- Fluid simulation
接下来准备做几件事:
1. 重点围绕序列化反序列化进行重构
2. 利用反射做UI绑定(基本方法已经加入,但各种组件都还要做适配)
3. 利用SwiftUI+Combine做编辑器框架
坐完这几件基础工作后,会再回到引擎层做功能的开发
感兴趣的小伙伴欢迎了解,有兴趣的话题我后续还会在社区里进行介绍。