・キレイな線をだすために・

おかげさまでunRealリリースから1年。当初はこんなにバージョンアップするとは思ってなかったので、何も考えず無邪気にガンガンバージョンナンバーを上げていたら、大した機能も追加されてないのにいつのまにか2.0を超えてしまい、今では0.01単位でちまちま上げている今日この頃。

ボタンの数だけはサスカッチ並についており一瞬とても高機能なのではないかと錯覚してしまうものの、実際には死ぬまでその存在を知らなくてもいいようなどうでもいい機能が目白押し。

なもんでNewtekのフォーラムを見ていると使い方教えて!みたいな書き込みが散見され、英語マニュアルがないこと以外にも、このボタンの多さがわかりにくさを加速させている原因なのかなと思ったり思わなかったり。

でも英語はできないのできっと「インターフェイスが屑」「設定がわかんね」と色々叩かれてるんだろうなぁと妄想だけが加速し、まるで鬼軍曹の言葉攻めにあう新兵の気分に。
夜中に寝言で「イエッサー!」とか「軍曹殿!」とか叫んだりする日々が続いておりました。嘘だけど。

読めないものを気にしてもしょうがないのでここは見なかったことにしてブラウザの閉じるボタンをそっと押しつつ、同胞でもわかりにくいと感じている人のために少しでも綺麗な線が出るように注意するポイントとかをだらだら〜っと説明してみるのです。

1.各エッジの差を考える

・エッジいっこいれる

unRealでは2.20現在で5種類の境界判定が存在します。
これらはエッジの発生条件が違う以外に、種類によって線のクオリティに大きな差があります。
以下がエッジの種類によるクオリティの順位を表したものです。

綺麗   汚い
オブジェクト境界
サーフェイス境界
グループ境界
深度境界 ジオメトリエッジ

ということは、なるべくオブジェクト、サーフェイス境界で線が発生するようにしたほうがいいわけです。
LightWave標準のエッジでも綺麗な線が出るようにモデリングの段階から気をつけようなんて言われてましたが、それはunRealでも同様です。
unRealで注意すべき点はただ1つ。それは「サーフェイス分け、オブジェクト分けを駆使する」ことです。
つまり前述のオブジェクト、サーフェイス境界でできる限りのエッジを出すようにすることで絵のクオリティを上げようって考えです。
以下はその例になります。


・分割行為手当

この車のモデル、あなたの心を盗んでいってしまうアレな車ですが、車体は同一色なのでついつい同じサーフェイスにしてしまいがちです。
しかし、それだとサーフェイス境界の判定から外れ、ドアとボディなどの絶対に線を出したい継ぎ目は深度境界とジオメトリエッジのダメダメコンビに任せてしまうことになります。
すると結果はこのような惨憺たるものに…

・ボディとドアの境界が途切れまくり・

そこでドア、ボディにそれぞれ違うサーフェイスを割り当て、サーフェイス境界が発生するようにしてやれば…

・綺麗になりました・

このように、バッチリ線がつながります。
6.5B以降なら複数サーフェイスの同時編集が可能なので多少サーフェイスが増えても後からのパラメータ調整はさほど苦にはならない筈。ガンガン分けろ!!


・分割行為手当2

このシームレスな人体モデル。
普通なら右足と左足は同一サーフェイスで済ませてしまいますが、それだとやはりサーフェイス境界の判定ができなくなるのでこんなことに。

・1.0の頃はこんなの当たり前でしたが・

そこで右足と左足で別サーフェイスにすればこれまた解決。

・バッチリチリ足(死語)・

衣服の継ぎ目ごとにサーフェイスを分けたりすればより確実になります。
6.5B以降なら複数サーフェイスの同時編集が(中略)。ガンガン分けろ!!


2.LightWave側での設定

・高すぎてソンはない

アンチエイリアスレベルの話です。
これがかなり重要でアンチエイリアスをなしにすると、レンダリング時のピクセルの評価が完全に行われなくなります。
するとunRealは隙間を補完するために隣のピクセルの特殊バッファ値を単純にコピーしてきます。
そのためすべての種類のエッジのクオリティが低下します。
また、アンチエイリアスのレベルを上げれば上げるほどジオメトリエッジ、深度境界(こちらは深度計算をunRealにしてある場合のみ)のクオリティも上がるので、最終レンダリングはなるべく中以上のレベルに設定して行ってください。

・あ エンハンスモードとアダプティブサンプリング

6.0ではLightWaveの仕様のせいか、エンハンス付のアンチエイリアスやアダプティブサンプリングを有効にしているとレンダリング結果にゴミが表示されたり、透過サーフェイスが正常に処理されない現象が起きていました。
Intel版6.5B以降、その現象は確認されなくなりましたが、Mac版などで万が一このような現象が確認された場合はこれらのアンチエイリアスオプションを切って試してください。

・ひるいなき、マルチスレッドたち

プログラム上では対応していますが、こちらも6.0のころはゴミが発生する原因となっていました。
現在、6.5B以降は確認されておりませんので大丈夫とは思いますが、やはりゴミが表示されるような場合は1スレッドでレンダリングしてみてください。

 

3.最後に

まーなんつーんでしょうねぇ、言い訳になってしまいますがスイッチ1つでステキなラインがシャッキリポンってのはまだまだ先のようです。