about ===== mR frameworkとは ===== * 仮想スクリーンと呼ぶメモリ上の画面に画素情報を保存するプログラム、\\ および仮想スクリーンを利用したアプリケーションを作りやすくするプログラムをまとめたものを指します。 * 利用者は仮想スクリーンに描画を行うことで、3D用API等を利用せず画面へのアクセスが可能になります。 * 仮想スクリーンへの出力については別途アクセスを構築する必要がありますが、主要なライブラリ用のアクセサは作成済みです。 ---- * 動作を確認しているライブラリは以下になります。 * DXライブラリ * SFML * raylib ===== mR frameworkを利用するメリット ===== * 描画を単純化することができる。点を打てば画面が作れる。\\ 3Dモデルやシェーダ、画像をあらかじめ作らなくても描画を確認できるので楽。 * レンダラーってどうやって出来てるんだろ?って調べることが出来る。オープンソースの醍醐味。 * そこそこCPU処理効率のいい書き方しているので、効率的なCPU処理の勉強になる。 * 移植が容易\\ ゲームやアプリを作って、別ライブラリや環境に移植する場合、ライブラリの出力に仮想スクリーンの内容を転送すれば移植できる。\\ 実際、作例にある通りライブラリに載せ替えたりアプリケーションを作っているが、2Dレンダラのコア部分については手を加えていない。 ===== mR frameworkの弱点(ここが苦手) ===== * GPUを使った描画と比較すると、描画速度は遅い。\\ 最終的な描画結果はGPUに載せるが、それまでの色をつける処理はすべてCPUで計算する。 * 前述のCPU処理で仮想スクリーンを実装したので、他の処理を一緒に動かすと当然描画に時間がかかる。\\ 対策としてメイン処理と描画処理をマルチスレッドで動かす事となる。 * 3Dモデル等を読み込んだり表示する機能は持ってない。 * フレームワーク単独でゲーム等の画面を出力すること。\\ フレームワーク自体は単独で描画する機能は持っておらず、出力が欲しい場合、仮想スクリーンの内容をGDIや別のライブラリの出力に書き込む必要がある。\\ 公開予定の実装ではGDIへの書き込みを行っているため、簡易的な確認は可能。 * 描画処理以外の機能を持っていない。\\ 音楽や入力、その他の機能は別ライブラリやAPIを使う必要がある。