3D
新しい deki-3d パッケージは、2D と同じフレームに同じソート順でメッシュを描きます。UI は 3D シーンの上にも、ほかの画面と同じように置けます。
- ボード上ではソフトウェアラスタライザーです。タイル単位で描くので、深度バッファーは 1 タイル分で済みます。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 は実験的です。プロパティとファイル形式はまだ変わることがあります。
ライト
1 つの Light コンポーネントが、メッシュと 2D の世界の両方を照らします。種類は環境光、ディレクショナル、ポイント、スポットで、色と強さを持ちます。
- ボード上の 2Dは CPU で照らすので、T-Deck でも光だまりや夜のシーンが作れます。段階を 2〜8 にすると、ディザ付きのくっきりした輪になり、ピクセルアートらしい見た目になります。
- デスクトップの 2Dは GPU でピクセルごとに照らします。
- カメラの「照らすソート順の上限」設定で、UI を光の外に置けます。
- GPU の影: 1 フレームでディレクショナルかスポットのライト 2 つまでが影を落とします。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 に名前を変えます。シーンとアセットには触れず、すべての変更はバージョン管理で確認できます。キャンセルすればプロジェクトはそのままです。
パッケージはそのままでも動きます。更新するには、Package Manager か DekiEditor --packages-update all <project> を使ってください。
パッケージの作者向け: 0.22 でビルドしたパッケージは再ビルドされます (リフレクション ABI 23)。
Sponza: Frank Meinl (Crytek)、Marko Dabrovic のオリジナルに基づく。Morgan McGuire の Computer Graphics Archive より (CC BY 3.0)。
