参加記事です》さて、気になるタイトルですね。私にとって十数年のあいだ気になっていた疑問が、今年になって溶けたことがあったのです。今まで様々なレンダラーを使用してきましたが、いわゆる『物理的に正確』と言われるものが持っている表現上のある死角について、ずっと気になっていました。それは、ガラスの表現です。コースティクスの話ではありません。コースティクスについてはもうレンダラーの作りの問題ですので、気にしても仕方がありません。(良いフェイクの方法も各種ありますし)もっと基本的なことです。それが何か?じゃなくて、質感です。スザンヌはガラス、奥のシリンダーはグロッシーなメタルです。何かがおかしいと思いませんか?そう、スザンヌの中の黒ずみはまだガラスだから納得いきそうな部分があるとしても、シリンダーの側面にある真っ黒い部分はおかしくありませんか?周囲は物理スカイで囲まれており、真っ黒な場所など全くありません。金属反射の中に真っ黒なものがある理由はないはずです。Renderなどでも起こります。忘れていたのですが、先日たまたま困っている人がいたことで思い出して、ガラスシェーダーのことをWEBで調べていました。すると、Cyclesシェーダーの不具合じゃないかと(過去に)海外で話題になっていたものを見つけたり、「ガラスの表現がどうしても上手くいかない」と嘆いている人を見つけたりしました。そこで言われていた解決法は、従来型のレイトレーサーにおけるガラス表現の向上法でした。「レイが届かない時の色(=エンドカラー)を設定せよ」というもの。グリーングラスなどの場合、エンドカラーを深緑や環境色に設定することで透過の屈折が足りない部分を誤魔化すことが出来ますが、Cyclesでは少々シェーダーノードに手を入れないとエンドカラーの設定は出来ません(それを解説をしている人もいましたが、私には少々ハードルが高いものでした)。それより何より、「Lightpaths」で「Transparency」をやたらと増やしたり、「Glossy」のバウンスを増やしたりしても、この黒ずみに対する改善効果はないのです!それに、問題が起こるのは透過だけでなく、メタルの質感も同様なのです。そこにはまた別の問題と解決方法が、あるはずなのです。──そろそろ勿体ぶるのはやめますか(笑15年ほど前にSubdivisionサーフェスが登場して以来、CGにおける滑らかな形状の表現は飛躍的に向上しました。それと並行して従来の法線スムージングによる疑似的な滑らかさの表現もそのまま残りました。ゲームなどのリアルタイムCGでは様々な再生端末やネットワーク帯域上のボトルネックもあり、ポリゴン数を少なく抑える方がいいという事情に変わりはないのですから。そこで、法線スムージングの問題が起こることになったわけだと思います。要するに、次の画像と同じ(全く同じではありませんが)問題が、Cyclesのレンダリングでも起こるわけです。ローポリオブジェクトの法線をスムーズシェーディング。シリンダー天面の奥が不自然に黒ずんでいます。先ほどのレンダリング画像は、シリンダーをスムージングした上で「EdgeSplit」モディファイアを掛けることでエッジを立てています。「EdgeSplit」を外すと次のような結果が待っていることは、誰でも想像が付くことですね。シリンダー天面のエッジが消え、無理やりスムーズシェーディングを掛けた結果として、《現実世界ではあり得ない黒ずみ》が発生しています。「光が屈折しあって暗くなる領域があるのだからそんなものか」と考えてしまいがちですが、この現象と同じだったのですね。実験をしてみましたので、結果を報告しますね。スザンヌやシリンダーのようなソリッド形状ではなく、ワイングラスです。画像の中の文字は判別出来ますでしょうか。センターの手前、青い文字で説明を書いているグラスが、ほぼ理想的な見え方です。曲面に厚みがあって複雑な屈折をする部分では黒っぽい部分がわずかにあり、それ以外には不自然な要素はありません。フラットシェーディングになっているのはもう2つ、後列のものです。左はポリゴンではなくカーブを回転体にしたもの。どちらも面の角は目立ってしまいますが、明らかに不自然な黒ずみはありません。手前の左右にあるスムーズシェーディングの2つは、トップ部分が妙に黒ずんでいます。2脚だけをアップでレンダリングしてみました。左右ともスムーズシェーディングを掛けた状態にしています。コースティクスがオンなので、サンプル数が足りないのはご容赦くださいませどちらのグラスも見た目の曲面は十分にきれいですが、実際のポリゴン数は右の方が遥かに多いものです。次は、左右で同じポリゴン数でシェーディングのみの違いです。黒ずみはどうなるでしょう?ね、同じ条件だと違いが顕著ですね。カットガラスでもない限りフラットシェーディングでは絵になりませんが、グラスの表現で黒ずみを抑えたかったら、嘘のシェーディングをなくす、つまり、実際の法線とシェーディングによって滑らかにされる法線の角度を出来る近づけることです。簡単にいえば、法線スムージングで作られる滑らかな面と同じくらい滑らかにポリゴンを分割することです。・ガラスの黒ずみは透過のレイが足りないのではない。エンドカラーを設定しても意味はない。原因は、実際の面法線とは異なるスムーズシェーディングによる法線にある。・面を分割すること、これに尽きる。独立した面法線が判別出来ない程度に細かくSubdivisionすること、です。最後に、スザンヌ(Subdivision=4、スムーズシェーディング)とシリンダー(曲面の分割=256面、フラットシェーディング)をレンダリングしたものをどうぞ。「ガラスがどうしても黒くなる!」なんていう悩みで眠れないことはなくなりますね!皆さまの制作に、少しでもご参考になれば幸いでございます。絶対に挫折しない3DCG入門』のシリーズ最終巻が、ちょうど12/9発売なのですよ!いや、もう本当に狙ってませんから。当ブログ記事は12/9になると同時の公開ですが、Blender99は12/9の陽が暮れる頃に発売されるのではないかと思います......。2018、次はgotz_zampachさんの『コンポジットノードは怖くない!小学校数学と実践VFXで基本から理解!』です。(あ、これちょうどBlender99の最終巻でも少し触れている内容と近いかもしれません......。AwaRyoコメントをどうぞWEB上にアップされているBlenderの操作画像・動画を見ていると、Windowsを使っている人のほうがずっと多いように思います。ぼくはずーっとMac派なので、ショートカットなどの操作が世間と少々違うかもしれないと考えていました。先週、こんなツイートをしました。Sierra10.13.6)にすると、「英語UI+日本語ツールチップ」の機能を使うための設定が少し変わります。2018年8月17日これはショートカットではなくて初期設定の話ですが、Ctrlキーの替わりにCommandキーを使ったり、Ctrlキーのままだったりと、Mac使いにとって、Blenderの各種キーなどはちょっと思い通りにいかないこともあります。あの有名な【@BLUGjp(Blender日本ユーザー会】さんのTwitterアカウント主さんって、Macユーザーですよね。そのBLUGjpさんは頻繁にBlenderの「ちょっと役立つ機能やTips」をツイートしてくださってますが、ちょっとした気付きがありました。最近BLUGjpさんがツイートした中でAlt+Fという自動面貼り&三角化機能がありますが、僕は使っていませんでした。いうのも、Alt+Fというショートカットが、僕のMacでは効かないのです。そんなこともあるだろうとPreferenceを開いて設定を試みましたが、これが設定出来ないんですよ!ショートカットを設定しようとしてキー入力待ちにして、AlfとFを押してもボタンが反応しない!(しかも、ちゃんと元からAlt+Fになっている......)ただ、Alt+Mのマージ機能などは普通に働くので、Altが機能していないわけではないのです。調べたら、答えは簡単でした。僕のMacには、「かわせみ2」というIMEを入れています。小説などを書くためにMac標準ではないものを入れているわけです。(かわせみ2は、Mac日本語環境の黎明期にあったEGBRIDGEの流れを汲むすぐれもののIME)ところが、これのショートカット設定がBlenderとぶつかってしまうのですね。「かわせみ2」では、Alf+Fに和英変換という機能が当てられていました。日本語で打ってAlf+Fを押すと、こんな風になります。http://awa.newday-newlife.com/blog/wp/wp-content/uploads/2018/08/kawasemi.mp4まあ、役に立つこともあるでしょうが、この機能は別のキーに引っ越しして、Alt+FはBlenderのためにとっておくことにしました。Blender側のショートカットキーを変更する手もありますが、それだとチュートリアルを書いていてこんがらがってしまいますからね。それからもちろん、Blenderを使う時には「かわせみ2」を使わない手もあります。すると、これはWindowsや、別のIMEでも起こり得ることかもしれませんね。そんなことで、本日の教訓。ショートカットキーが効かない時は、同時に動いているソフトのショートカットキーを調べてみよう。中でもIMEは常時動いているから怪しいぞ!以上です。AwaRyoコメントをどうぞさてさて、先週鼻の差で公開されたVer1.61ですが、もう皆さんはお使いになりましたか?僕もようやくインストールして使い始めたところです。(ダウンロードはこちらから)さて、ここで早速1つ、注意点があります。Labは、旧バージョンのデータが残っているとインストールしても動作しないことがあります。インストール時に意味不明なPythonエラーが出て困ってしまったひと、原因はここですよ!まず、Ver1.6をリムーブして、Blenderを再起動しここ重要!、更な状態になっているのを確認してからインストールしましょう。