もしかしたらものすごい初歩的な質問だったらすいません。教えて下さい。
背景に画像を設定した状態で、レンダリング設定で「背景を反映させる」(光源に使用するため)、
「描画はしない」(真っ黒にしたい)場合、
添付画像のように、透明に設定したオブジェクトには描画しないはずの背景画像が透けて見えてしまいます。
これは私の設定がおかしいのでしょうか?どうすれば透明の向こうも黒くなってくれるのでしょうか?
よろしくお願いいたします。
背景を黒にしたい目的はなんでしょうか?
(背景を後ほど画像合成ソフトで入込みたいので・・・とか
ただ背景を黒くしたい・・・とか・・)
大域照明はパストレーシングでしょうか?
その場合、透明度設定したオブジェクトの拡散反射が’0’でないと
そのオブジェクトに背景が映り込むようです。
レンダリングで「描画はしない」
(真っ黒にしたい)場合
描画はしないの真っ黒。
これは背景バックの黒い背景に
画像を合成するのに使用するものです。
だから黒い背景とは違います。
背景を本当の意味で
黒くしてみてレンダリングを
してみてください
そうすれば透明の向こうも
黒くなる可能性があります。
ただしその場合のレンダリング設定では
「背景を反映させる」「描画はする」で
総合パレット:背景選択
上半球基本色 黒
下半球基本色 黒
で設定
それで変わらないなら
自分もちょっとわかりませんね
理由が特に記載されてないので、他の皆様が応えてらっしゃいますが、
単純に背景を黒にする方法を私の方からも。
1.制作しているシーンのさらに外側を覆うようにオブジェクト(球体でも立方体でもいいです)を配置します。
2.そのオブジェクトに対して拡散反射色で完全な黒、または拡散反射の値を0にします。
その他の光沢・反射などのパラメーターも基本0で。
3.表面材質設定の「その他」をクリックして「影を落とさない」と「間接レイに表示しない」、「カメラに表示しない」をチェックします。
4.レンダリングすると背景が完全に黒くなっています。
グローバルイルミネーションの影響を繁栄しつつ、カメラに見えない真っ黒なオブジェクトを背景との
間の空間に置くことで背景黒を実現しています。
ただし完全な透明度1.00で屈折などのない透明オブジェクトは視認できません。
皆様丁寧なご回答ありがとうございます!
私の稚拙な説明にもかかわらず、有意義なご回答大変感謝いたします。
で、まず背景を描画したくない理由は、
レンダリング時には、大域照明/光源として背景に画像を使いたいのですが、
レンダリング後には別の背景を合成するため、
透明素材の向こう側にその設定した画像が出ていると合成処理が面倒なのです。
それゆえ、透明の向こうに見える背景も白もしくは黒、または無地ベタで
レンダリングを完了したい、というのが
今回の質問でございました。
で私的には、「背景は反映させるけれども描画しない、という設定にすれば
完全に透明オブジェクトの向こう側の背景も描画されないだろ」と思ったのですが
あさはかでございましたw
皆様の回答を拝見させていただいた感じだと
iun様の、背景とオブジェクトの間にカメラに表示しない黒い(もしくは他の色の)物体を
置くのは、試してみたところうまくいきました。
ありがとうございますっ!
要するところ、この方法が成功するということはつまり、
「カメラに表示しない」という設定は「直接的」に見えなくするという意味で、
「間接的」反射や透明を通して見る場合は見えてくるということですよね。
同様にレンダリング設定も、描画はせずとも「反映させる」という設定をしている以上は
反射と同様に透明の向こうに透けて見えてくるは当然といえば当然ですよね。
理解しましたが、なんだか残念ですw
開発者ではないしプログラマーでもないのであくまで想像の域ですが、
3DCGソフトは現実をある程度計算端折ってシミュレートしている側面がありますので、
完全な暗黒空間に透明なオブジェクトを置いたところで何も反映されず視認できません。
周りのオブジェクトが存在し影響されることで初めて人間に視認できていると考えます。
ですのでhdriなどを背景画像に使用している時点で透明体へ何かしら写り込むのは必然と言えます。
なのでどうしても背景画像をライティングとして使用された場合はなるべく
意図しない空間にいろいろ映り込みの邪魔になりそうな背景画像ではなくてスタジオ撮影などで
使う無機空間にライティングだけ入っている画像や抽象空間などを使用すると良いかと思います。
(studio hdriなどで検索すると出てくるような背景画像です)
【追記】
屋外のシーンでしたらshadeならフィジカルスカイなどを使っても良いかもですね。
最初から屋外のHDRI画像を使うか、自分で全天球買ってきてHDRI画像をお好みで撮影してしまうのも手法かと思います。
【追記ここまで】
レンダリング後には別の背景を合成するため、
こちらは例えばphotoshop等の画像合成ソフトでということでしょうか?
だとすれば画像書き出し時にphotoshopの場合「アルファチャンネルを有効」というチェックボックスに
チェックをいれてから書き出せば、透明オブジェクトの部分もある程度丁寧にアルファチャンネルが
つくられたphotoshopファイルで書き出されますので、そちらを利用すれば映り込みはshade画面上で
見るより目立たなくなります。
その他オブジェクトごとの切り出しにはマルチレイヤー機能なども使われると合成作業がスムーズに
進められるかと存じます。
iun様
度々ありがとうございます。
投稿後すぐに返信の欄少し書き直させていただきましたが、
おっしゃる通りですね。
実は現状で、マルチレイヤー、アルファチャンネルを使用して
Photoshopで編集しております。
結果的には絵としてちゃんと合成できるわけですが、
仕事上、レンダリングしただけの絵(未加工)を確認用としてさっと見せたいときに
背景白か黒ならいいですけど、ガラスの向こうだけ変な画像が見えてきてしまっていてイヤだなぁ、とw
しかし、おかげさまで仕組みというか理屈を理解できました。
解決策もわかりましたし。
ありがとうございました!
すっごい蛇足ですが、photoshop使ってらっしゃるなら、透明オブジェクトだけ同ポジで背景使わないで
別レンダリングしちゃって後でシーンの画像の方と合成とかでも良さそうですね。
iun様
透明オブジェクトだけをレンダリングして合成もときには必要ですよね。ときどきやります。
その透明オブジェクトの前後に別の物体がある場合、その分を消すかマスクする必要が出てくるので、
ポンと重ねて終われないのが、またひと手間ですがw
現状、アルファチャンネルで対応することが多いです。
バチッと後合成なしで決まるHDRI画像を背景にもってこれるのがベストですよね、やはりw