Imaginantia

思ったことを書きます

正しい描画を行うための

ワールドを作りました。レンダリングパイプラインと、テクスチャサンプリングについてのある程度の可視化があるところです。

ニッチなコンテンツだとは思うんですが、この世界においては意外と普遍的に知られるべき事柄だと言えるとおもいます。

こういうのは文章だとやっぱりわかりにくくて、その実際の挙動を観察するのが一番理解にはつながると思うのです。なので。

経緯

実はここの歴史?は長くて。確かきっかけは Virtual Market 6 (2021年夏) じゃないかな。

いや、まぁ、ずっとではあるんですけど。ポスターにミップマップが無いんですよ。あそこのコンテンツ。

ものすごいジラつくじゃないですか。特にVRだと常時視点移動するからものすごい顕著に出るんです。

これは Z-Fight と同じくらい存在が悪だと思うんですが、平然と居るわけです。

これが認められている理由は、きっと「名前が無いから」だと思います。名前がない現象は認識できないので。

だから、これを否定する為には、「私たち」は知らなければならないのです。

そうすることで、にこやかに「ミップマップなし、よし!!!」と言えるようになるわけです。

 

そこで「アンチエイリアスの博物館」を作ろうと思いました。これがこの記事のおまけの「なんか2」というやつです。

一般層に来てもらう為にはワールドとしてまともである必要があったので、建物から作りはじめ、置くものとかちまちま作っていました。

あと折角なので一人でやりたかった。なんやかんや共同制作が多い最近なので、自分でどれくらいできるかをちゃんと確認しておきたかった、というのもあって作ってました。

実はあの1pxの線分とか完全な球体とかはここに置く予定だったミニ作品だったり。

まぁ、構想全体の1割も出来てなかったんですけど。

そんなワールドにのんびりと人が来て、穏やかにミップマップという概念を知るような場があれば良いなと思っていました。

 

が、これ、今の自分の手に負えないほど大きくなってしまって。色々やることがある中で、当分放置するしかないなと思っていました。

なので放置されていたわけですけど、こう、ワールドを全然作っていない現在、なんか作っておきたいなという気持ちと。あのワールド全体は辛くてもちっちゃくパイプライン部分だけ抜き出してもまぁ面白いんじゃないかという気持ちで。

Pipelineというワールドが出来ました。

元のワールド案の、軸となっている部分を取り出して、色々と操作可能にしたもの、がコレです。

アンチエイリアスの為に

「雑」なレンダリングでは基本的にバキバキで見るに堪えない絵が出ます。これに対策すべく行われる行為がアンチエイリアスです。

ぶいちゃ (というかUnity) では常識的にミップマップが用いられる他、MSAAが有効に使われています。MSAAは Performance Options で弄れるやつなのでちょっと身近ですね。

というわけで、「如何にその2つが実行され、結果に影響を与えているか」をちゃんと示す、ということを目的として、あのワールドは設計されています。

なので頂点バッファとかMVPとかは飾りみたいなもんです。まぁあれはあれで面白いところありますが。

 

この2つのテクニックは本質的に積分のことで、それ以外の何者でもありません。

何度か書いたように「1pxに含まれている描画範囲は点でなく、2次元領域」なのです。それを正しく表現する為の計算技法がこれらです。

そして、これはどちらも低レイヤAPIの段階で用意されているものです。それだけこの問題は普遍的であり、人類はこれまでちゃんと立ち向かってきた事柄なのです。

そういう美しい描画、正しい描画をする為の人類の歴史を、折角なので顕在化させたかったのです。

特にこれは過去ではなく、今使われているモノですから。

今後

…という、啓蒙を目的として作られたワールドですが、今のところ、あまりその目的を果たせません。

何故なら感情や因果が一切語られていないので、何も知らない状態での理解が困難だからです。

というわけで、そのうち、ちゃんと解説は入れようかなと思っています。が、いつになるかはよくわからないです。

とりあえず、ずっと長く燻っていた何かを多少は外に出せたので良かった、くらいの気持ちです。

 

ありがとうございました。

おわり。