個人が設計した3D描画チップ「TinyGPU」が本物のシリコンになった

3Dの絵を描くGPUは、いまや中身を外から確かめようのない巨大なチップになった。では、立体を画面に映すのに最低限必要な回路は、どこまで小さくできるのか。Matt Pongsagon氏が設計した「TinyGPU v2.0」は、約24万個のトランジスタでその問いに答えようとした自作のGPUだ。設計は共同製造サービスのTiny Tapeoutを通じて実物のチップになり、プロジェクトページには2026年8月2日時点で、届いたチップがFPGAでの試験と同じように動いたという同氏の報告が載っている。

TinyGPU v2.0が備えるのは、立体の頂点を回転や拡大に合わせて計算し直す処理と、その結果を画面のドットに置き換えるラスタライズだ。光源は向きを変えられる平行光を1つ持ち、面ごとに明るさを決める。奥行きをドット単位で記録して手前の面が奥の面を隠すようにするZバッファー、見えない裏側の面を省く裏面カリング、模様の画像を表面に貼るテクスチャーマッピングも入る。解像度は320×240ドット、色は4bitで16色、模様の画像は256×256ドットまで扱う。1000ポリゴンのモデルを毎秒6.5コマで描き、動作周波数は25MHzだ。

チップ単体では絵が出ない。Tiny Tapeoutのデモボードに、外付けメモリー、VGA出力、ゲームパッド接続の3つの拡張基板(PMOD)を挿して使う。3Dモデルはあらかじめバイナリー形式に変換してフラッシュメモリーへ書き込み、GPUがそこから読み出す。描画用に画面2枚分を持つダブルバッファーと奥行きの記録も、チップ内ではなく外付けのメモリーに置く。操作にはスーパーファミコン用のコントローラーを使い、十字キーでモデルを回し、AとBのボタンで拡大と縮小、XとYのボタンで光の向きを変える。

制約も残る。モデルが表示領域の外へはみ出すとGPUが止まり、リセットしないと戻らない。同氏は、この点を次の「TinyGPU v3.0」で解消したと書いている。Verilogで書いた設計一式と、3DのデータをGPU用に変換するツールは、Apache License 2.0のもとGitHubで公開されている。回路を書くところから実物のチップで動かすところまでを、一通りたどれる作りになっている。

関連情報

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!

最新記事

YouTube / PodCast

【PR】読んで役立つ注目記事

目次