Moritz Falk · ドイツ・シュトゥットガルト

グラフィックス・システム
プログラマー

レンダラーや開発ツール、それらを支えるシステムを作っています。主に取り組んでいるのは、イミディエイトモードUI、GPUレンダリング、自作エンジンです。性能を重視し、内部の仕組みを理解しながら開発しています。

日本語はJLPT N4程度(自己評価)です。技術的な議論は英語でのやり取りを希望しています。

Moritz Falk
現在
Dihedron Software 共同創業者
Blick Video Editorを開発中
プログラミング言語
C / C++ · Odin · HLSL · MSL
希望する仕事
システム・グラフィックス開発職
業務委託の開発案件

主なプロジェクト

業務・個人開発

01 /

Blick Video Editor

Dihedron Software GmbH
共同創業者 · UI・レンダリング

2026年 — 現在

コンピュートシェーダーSDFレンダリングmacOS / Windows

多くの要素を持つインタラクティブなUIに合わせてレンダラーを設計した、軽量な動画編集ソフトです。

少人数のチームで、BlickのUI基盤とレンダリングシステムを開発しています。BlickはイミディエイトモードUIを採用した、クロスプラットフォームのノンリニア動画編集ソフトです。

  • コンピュートシェーダーを使うタイルベースのレンダラー。符号付き距離場(SDF)をGPU上で評価します。
  • シェーダー内で解釈する小さな描画言語を使い、CPU側の描画ロジックを最小限に抑えています。
  • 変化のない描画結果を再利用するキャッシュを実装。エネルギー効率を設計目標の一つにしています。
メディアブラウザー、動画プレビュー、レンダリング設定、マルチトラックのタイムラインを表示したBlickの編集画面。
Blick · 編集画面元のサイズで表示 ↗
02 /

ARC

AnyDesk
レンダラー・プラットフォーム開発

2024 — 2026

イミディエイトモードUI描画キャッシュチームリード

4人のチームで開発したイミディエイトモードUIライブラリです。

主にレンダラーとプラットフォーム層のコードを担当しました。このプロジェクトに携わった最後の4か月間は、チームリードも務めました。

レンダラーの一例では、ハッシュグリッドで変更された領域を特定します。ステンシルバッファと早期深度・ステンシルテストによって、変更のない領域ではピクセルシェーダーの実行を省きます。アプリケーションがUIを毎回記述し直しても、不要なピクセル処理を避けられます。

GPUの処理能力と消費エネルギーをより有効に使うイミディエイトモードUIを目指しました。

ARCの講演をYouTubeで見る新しいタブで開きます
Taha Torabpour · Better Software Conference 2025YouTubeで見る ↗

ARCで一緒に開発していたTaha Torabpourによるデモと質疑応答です。

03 /

ゲームと自作エンジン

個人プロジェクト
グラフィックス・エンジン開発

2020年 — 現在

ボクセルレイトレーシンググローバルイルミネーション開発ツール

動的なライティングと絵画的な表現を探るための、自作3Dエンジンです。

レンダリング手法を試し、その挙動や性能を理解するためのツールも開発しています。

  • ボクセルベースの動的グローバルイルミネーションを繰り返し改良。GPUでのメッシュのボクセル化、キャッシュ効率を考慮した高速化用グリッド、空間・時間方向のノイズ除去を実装しました。
  • Interleaved Gradient Noiseを用いた確率的なアルファ処理により、ディファードデカールとボリューメトリックビルボードをディファードシェーディングのパイプラインに組み込みました。
  • MSAAを利用したボクセル化手法で、ボリューメトリックビルボードのデータを独自形式で生成するツールを開発しました。
  • 処理時間の計測、エンティティの確認、デバッグ表示のために、microuiを使った開発用UIを実装しました。
エンジンのデモをYouTubeで見る新しいタブで開きます
It's voxel o'clock · エンジンのデモYouTubeで見る ↗

その他のプロジェクト・実験

各項目を開くと詳細を表示します

2023

SynthForce 2099

10日間のゲームジャムで4人のチームが制作した、疑似3Dのアーケードレースゲームです。

短い制作期間の中で、異なる分野のメンバーと連携しました。レンダラーはスプライトの拡大縮小と移動によって、OutRunのようなアーケードゲーム風の奥行きを表現します。

配置やパラメーターの調整用に、実行中に値を変更できる小さな仕組みを実装しました。ゲームのソースコードを読み、ハッシュテーブルとマクロを使って、選択した変数の値を実行中に再読み込みします。

チームがitch.ioに公開したSynthForce 2099のゲーム画面。
SynthForce 2099 · ゲームジャム作品
2022–23

動的な拡散グローバルイルミネーション

NVIDIAの論文を参考にしたD3D11実装です。

グラフィックスAPIとシェーダーを使った最初の本格的なプロジェクトです。プローブの配置や動的オブジェクトへの対応など、プローブベースのライティングの仕組みとトレードオフを理解するために実装しました。

動作する実装ですが、高速化のための構造はなく、シェーダーも素朴な実装です。その後のボクセルベースの開発につながる、よい出発点になりました。

開発中の録画 · 2023年2月10日動画を開く ↗

このプロジェクトはHandmade NetworkのDiscordにある#showcase-projectsチャンネルでも紹介しました。

2022

ソフトウェアラスタライザー

CPU上で変換・ラスタライズのパイプラインを実装し、仕組みを学びました。

tinyrendererをベースに、リアルタイム描画、動かせるカメラ、簡単なクリッピング手法を追加しました。変換の流れ、特にクリップ空間と正規化された視体積への理解を深めることができました。

ソフトウェアラスタライザー · デモ

このプロジェクトはHandmade NetworkのDiscordにある#showcase-projectsチャンネルでも紹介しました。

2022

MiniRay · CPUレイトレーサー

BVHの走査、マルチスレッド処理、モデルの読み込みから描画までの高速化に取り組みました。

インタラクティブな描画を目指して、バウンディングボリューム階層(BVH)と、単一プロデューサー・複数コンシューマー方式のマルチスレッド処理を実装しました。

自作のOBJローダーは、読み込んだモデルを独自形式でキャッシュし、大きなファイルを再解析するコストを省きます。依存関係を理解して減らす練習として、Cランタイムへの依存も取り除きました。

剣と盾を持つ像と、その上に浮かぶ反射する球体を描画したMiniRayの画像。
MiniRay · Whitted型CPUレイトレーシング

自己紹介

ドイツのシュトゥットガルトを拠点とするプログラマーで、Dihedron Software GmbHの共同創業者です。少人数のチームでのグラフィックス・プラットフォーム開発と、個人でのエンジン開発に取り組んできました。

システムプログラミング、レンダリング、性能が交わる仕事に関心があります。処理の特性を理解し、適切なデータ表現を選び、それに合った実装を考えることが好きです。

C / C++   Odin   HLSL   MSL

お問い合わせ

グラフィックス・システムプログラミングの開発職や、業務委託の案件を探しています。プロジェクトやお仕事について、メールまたはXでお気軽にご連絡ください。