top of page

ボクセルの世界の光 ― 本物のライトか、フラッドフィルか

執筆者の写真: Marcel Dütscher
Marcel Dütscher
6月27日
読了時間: 2分

プレイヤーが、基地に光るランプを置きます。技術的には何が起きているのでしょう? この素朴な疑問が、根本的な決断のきっかけになりました。そして答えは、「より新しい」解決策が、いつも良いとは限らないことのよい例です。


案A:Unity の本物のライト。光るブロックのすべてが点光源になり、エンジンがすべて計算します。見栄えはすばらしいのですが、数が増えると耐えられません。ボクセルの世界では、視界に何百もの光るブロックが入ることもあります。それだけの数のリアルタイム点光源は、どんな GPU も汗をかきますし、ブラウザ版ではなおさらです。


案B:フラッドフィルの光。このジャンルの定番です。光は、ブロックごとの数値で、光源から広がり、一歩ごとに減っていきます。とても軽く、光源はいくつでも置けます。でも、光に向きがないので、見た目は平らです。ランプの隣の壁も、足元の面と同じ明るさになってしまいます。


私たちの選択:向きのあるフラッドフィル。フラッドフィルの方式のまま、向きの情報を教えこみました。光は、どの方向から来ているかを知っていて、面はそれに応じて違う明るさで照らされます。結果は、メッシュ化のときにチャンクのメッシュに焼きこまれます。実行時にはほとんど負荷がないのに、従来のブロックの光よりも、ずっと立体的に見えます。


ここで得た教訓は、それ以来どこでも活かしています。まず、このジャンルの本当の問題は何かを考える(ここでは、とても多くの光源と、動かない形状)。技術を選ぶのはそのあとです。本物のライトは、私たちにはない問題を解いてくれて、私たちに解けない問題を作るところでした。

最新記事

すべて表示
新しいバージョンが2026.7.19で、0.9.2ではない理由 🗓️

今日アップデートする人は、バージョン0.9.1から2026.7.19にジャンプします。打ち間違いに見えますが、意図した決定です。バージョンの付け方を、「セマンティック」から日付ベースのバージョン(年.月.カウンター)に変えました。その理由をお話しします。 古い方式は、だれも聞かない質問に答えていました。 セマンティックバージョニング(0.9.1、1.2.3…)は、ソフトウェアライブラリの世界から来

 
 
おそうじ完了:GitHubのキャッシュをようやくちゃんと使えるようになりました 🧹

前回の技術記事では、ビルドとチェックのパイプラインに本当は何がかかっているのかを測りました。わかったのは、お金ではなく、待ち時間と保存容量だということでした。その記事は「おそうじの作業は計画してあるけれど、まだ終わっていない」で締めくくっていました。ところが、思ったより早く進みました。今日のお昼の時点で、メインブランチに入っています。数字をご紹介します。 まず結果から。 リポジトリのキャッシュ使用

 
 
月に1000回のビルド実行、そのどれにもお金はかかっていません ⚙️

まず訂正です。この記事の最初のバージョンでは、GitHubのビルド時間を使い切ってしまい、そのせいでProアカウントにアップグレードせざるをえなかった、と書いていました。それは間違いでした。ドキュメントを一目見ればわかったことです。公開リポジトリでは、GitHubのビルド時間は無料です。アーティファクトもキャッシュもです。うちのリポジトリは5月末から公開されているので、1分もお金を払ったことはあり

 
 

コメント


この投稿へのコメントは利用できなくなりました。詳細はサイト所有者にお問い合わせください。
bottom of page