3D
新的 deki-3d 包在与 2D 相同的帧中、以同一排序顺序绘制网格,所以 UI 可以像放在其他画面上一样放在 3D 场景之上。
- 在开发板上它是软件光栅化器。它按图块绘制,所以深度缓冲区只需一个图块:32 像素时为 2 KB,而不是整个 320x240 所需的 150 KB。
- T-Deck 上 2,000 个三角形的带纹理回廊:每秒 20 帧。
- 82,000 个三角形的 Sponza 在 T-Deck 上以每秒 1.3 帧运行。
- 在 Miyoo Mini 上,6,000 个三角形的场景保持 60 帧。
- 在桌面上它用 OpenGL 绘制,带阴影和着色器。
- 模型来自
.obj文件,大小不限。每个平台的构建保留一定比例的三角形(细节),纹理遵循图像针对该平台的设置。模型放不进开发板内存时,开发板构建会停止。 - 相机在投影为透视时绘制网格。
deki-3d 是实验性的:其属性和文件格式仍可能改变。
光照
一个 Light 组件同时照亮网格和 2D 世界:环境光、方向光、点光源或聚光灯,带颜色和强度。
- 开发板上的 2D 由 CPU 计算光照,所以 T-Deck 也能有光斑和夜景。把光环数设为 2 到 8,就是带抖动的清晰光环,像素画的风格。
- 桌面上的 2D 由 GPU 逐像素计算光照。
- 相机的“照亮至排序顺序” 让 UI 不受光照影响。
- GPU 阴影:每帧最多两个方向光或聚光灯投射阴影。没有 OpenGL 的开发板会绘制光照但没有阴影,其构建会说明是哪些光源。
- 没有 Light 的游戏不会在光照上占用内存。
着色器与 GPU
- HLSL 着色器。 网格上的
.shader决定它的颜色(Shade()),也可以像草或水那样移动顶点(Displace())。屏幕效果在整个帧上运行着色器。 - 桌面上 2D 也走 GPU: 精灵、文本和形状直接画进帧。
- 按平台的纹理滤波: 每张图像可选点、双线性或三线性。没有 GPU 的开发板按点采样绘制,检查器会说明。
Miyoo Mini
新的 deki-miyoo-boards 包可为 Miyoo Mini 构建游戏并安装到 SD 卡上,原厂固件和 Onion 都可以。
- 320x240 的 ARGB8888,放大 2 倍显示到面板上。
- 6,000 个三角形的 3D 场景每秒 60 帧,13,000 个三角形的场景稳定在 30 帧。
- 按 MENU 退出游戏。
已在 Onion 上测试。原厂固件尚未测试,声音、电池和亮度不在这个版本中。
其他新功能
- 重命名项目:在 Project Settings > Project > Name 中修改。
- 构建错误会说明哪里失败: 是包、项目代码还是引擎。
- 桌面目标改名为 Desktop。 它为 Windows、Linux 或 macOS 构建游戏的 PC 版。
- Tactility:声音,以及通过 USB 或 Wi-Fi 安装。 实验性:能构建,但尚未在设备上看到它运行。
- 作为程序运行的游戏从引擎自己的
main()启动,桌面和 Miyoo Mini 都一样,退出时会释放全部内存。
更新
打开用 0.22 制作的项目时,会先询问是否升级。升级会把项目自身文件中的 desktop-os 改名为 hosted,SIMULATOR 改名为 DEKI_HOSTED。场景和资源不会被改动,每处更改都能在版本控制中看到。选择取消则项目保持原样。
项目的包照常工作。要更新它们,请使用包管理器,或 DekiEditor --packages-update all <project>。
给包作者:用 0.22 构建的包会重新构建(反射 ABI 23)。
Sponza:Frank Meinl(Crytek),基于 Marko Dabrovic 的原作,来自 Morgan McGuire 的 Computer Graphics Archive(CC BY 3.0)。
