レンダリング
Turian は Silk.NET を通して Vulkan 1.3 で描画します。同じレンダラーが Studio の Scene ビューと Game ビュー、CLI のスクリーンショット、そしてエクスポートしたゲームを描画します。
フレーム
各フレームは次の順でレンダーシステムによって描画されます:
| システム | 描画するもの |
|---|---|
| Standard | PBR マテリアルとシーンのライティングによるモデルとメッシュ。 |
| Mesh | シンプルなメッシュ。 |
| Gizmos | エディターのギズモとデバッグ線(Studio のみ)。 |
| World UI | ワールド内のクアッドに配置した .ui ドキュメント — Studio と CLI の描画のみ。エクスポートしたゲームではまだ描画されません。 |
| Overlay | シーンの上に描く画面空間の .ui ドキュメント。 |
レンダラーはウィンドウの Vulkan スワップチェーン、または Studio のビューやヘッドレス描画用のオフスクリーン画像に描画します。
カメラ
CameraComponent がビューを定義します:
| プロパティ | 意味 |
|---|---|
UsePerspective |
true なら透視投影、それ以外は平行投影。 |
FieldOfViewDegrees |
垂直方向の視野角(透視投影)。 |
Frustum |
ビューボリュームの高さ(平行投影)。 |
NearPlane、FarPlane |
クリップ距離。 |
AspectMode、FixedAspectRatio |
ウィンドウのアスペクト比に従うか、固定するか。 |
Priority |
アクティブなカメラのうち、最も高い優先度のものが描画します。 |
優先度を変えることでカメラを切り替えます — Bistro サンプルの CameraCycler は、カメラのリストに最高優先度を順に渡します。既製のコントローラー Free Fly、FPS、Orbit、Follow は Add Component → Rendering → Camera にあります。
ライト
LightComponent は次のどちらかです:
- Point — ノードの位置から全方向に発光し、距離の二乗で減衰します。1 フレームに最大 10 個。
- Directional — 太陽のように、ノードの前方軸に沿った平行光。位置は無視されます。1 フレームに最大 4 個。
Intensity と Color(RGBA)で強さと色を設定します。
マテリアル
表面は glTF の PBR メタリック・ラフネスモデルを使います。ベースカラー、メタリック、ラフネス、法線、オクルージョン、エミッシブに、それぞれ係数とオプションのテクスチャがあります。マテリアルの作成とモデルからのインポートは アセット を参照してください。
グラフィックス設定
プロジェクトの Graphics Settings アセットはレンダリングのオプションを持ちます。現在はテクスチャの既定の最大解像度です。プロジェクト設定 を参照してください。
ウィンドウなしでの描画
CLI は同じレンダラーでシーンを PNG ファイルに描画します。CI や回帰チェックに便利です:
turian-cli screenshot MyGame --camera "Main Camera" --width 1920 --height 1080 --out shot.png
turian-cli playmode MyGame --frames 120 --out after-two-seconds.png
GPU がなくても、Mesa の lavapipe のようなソフトウェア Vulkan ドライバーで動作します。turian-cli のコンテナイメージには 1 つ含まれています。
まだないもの
Turian 1.0 のレンダラーは意図的に小さくしています。シャドウ、イメージベースドライティング、スカイボックス、ポストプロセス、プロジェクトのコードからの独自レンダーパスはロードマップにあり、このリリースには含まれていません。