読者です 読者をやめる 読者になる 読者になる

lumino trail

ゲームエンジン作ってます。Github:https://github.com/lriki/Lumino Twitter:https://twitter.com/lriki8

卯月と作業報告の候

もうちょっとレンダリングフローの見直し中

前月に引き続き。

2D/3Dシーンと UI モジュールの関係がかなり変わってきています。

前はシーンのほうが偉くて、それの後描画的な立ち位置で UI の描画が入り込んでました。 今は UI のほうが偉くて、UIFrameWindow クラスをルートとした、ちょうど WPF や HTML のような UI要素の階層構造の一部(Canvas とか)としてシーンが描画されるようになりました。

なんでこんなふうになったの?

  • Lumino で作るゲームのエディタも Lumino で作りたい。
  • 本業ではネイティブアプリの GUI とか作ってるんだけど、そういうフレームワーク作ってみたくなっちゃった。

ウリというかコンセプトもちょっと変わってくると思います。 今までは「ゲームエンジン」だったけど、それプラス、「リアルタイムグラフィックスアプリケーション」。 なんかかっこいい。字面が。

あと、描画はコールバックの外側でもできるようになりました。 コードはこんなイメージ。

void Main()
{
    // コードをコンパイルして Shader オブジェクトを作る
    auto shader = Shader::Create("test.fx");
    
    while (Engine::UpdateFrame())
    {
        // Lumino 自体の描画処理
        Engine::RenderFrame();
        
        // 画面全体への、シェーダを用いた直接描画
        auto* r = Engine::GetSceneGraph3D()->GetRenderer();
        r->SetShader(shader);
        r->DrawScreenRectangle();

        // 描画結果をウィンドウに表示する
        Engine::PresentFrame();
    }
}

ピクセルシェーダをゴリゴリ書くとこんなのが出たりします。 f:id:lriki:20170430220705p:plain

ドキュメントとホームページ

ドキュメント書きたい。でもデザインめんどい。

こんなことがしたい。

  • Markdown で書ける
  • カテゴリやtocが柔軟に管理できる
  • 全文検索できる
  • 拡張しやすい
  • ソース管理しやすい

サイトジェネレータとか今時は星の数ほどあるけど、 がっつりとしたマニュアルやAPIドキュメント作りたいときはイマイチ力不足を感じます。

で、自作とかしてた最中に DocFX を見つけました。 この子はねぇ・・・つよいよ。

自作とかするまえにかなりたくさん調べたつもりだったけど、なんでヒットしなかったのか・・・。無能なだけか。

日本語情報もまだ少ないみたいだからそのうち使い方まとめとこう。

お試し版

ごめんね