今回は、Blenderでガラスを作ってみたいと思います。
まず、BlenderにはCyclesとEeveeというレンダーエンジンがあり、
Cyclesを使うとガラスの質感もリアルに表現できますが、PCのスペックによっては動作が重くなってしまいます。
なので、今回は動作の軽いEeveeを使用してガラスを表現する方法を紹介したいと思います。
参考例として、グラスを作りながら解説していきます。
Part2はこちら
結論
プリンシブルBSDFの設定例
- Roughness(粗さ): 0
- Transmission(伝播): 1.0
- IOR: 1.57
- Alpha(アルファ): 0.6
- Blend Mode(ブレンドモード): アルファハッシュ
レンダープロパティのScreenSpaceReflectionsにチェックを入れる
目次
環境
OS: Windows10
メモリ: 32GB
Dependents
Blender: v2.92.0
今回使うメッシュ
グラスのメッシュを作っていきます。
メッシュ制作自体は詳細な説明はしません、手順だけ画像で流します。
マテリアルの説明までジャンプ







内側のメッシュを編集する時、頂点が見えづらくなるので、
外側の頂点を間違って選択しないように注意してください。





という事で、説明に使用するグラスが完成しました!
ではいよいよ、マテリアルの説明に入ります。
マテリアルの設定
今回はプリンシプルBSDFを使用します。
Principled (プリンシプル) BSDF は、複数の階層を一つにまとめ、ノードを使いやすくしたものです。これは、”PBR”シェーダとして知られる、ディズニーの原理モデルに基づいています。PixarのRenderman ® 、Unreal Engine ® などのソフトウェアとの互換性があります。 Substance Painter ® のようなテクスチャペイントソフトのパラメータに直接リンクすることも可能です。
https://docs.blender.org/manual/ja/2.90/render/shader_nodes/shader/refraction.html
改めてマニュアルの説明を読んで見ましたが、UEやSubstancePainteとも互換性があるようで
とりあえずこれを使っておけば安心できそうなシェーダーですね!
さて、マテリアルを設定する前に、Enviroment Texture(環境テクスチャ)を設定しておきましょう。
ガラスは周囲の景色を反射するので、背景がないとガラスの質感が上手く表現されません。
シーンプロパティにある、Colorの丸い所をクリックするとメニューが開きます。
メニューの中から、Enviroment Texture(環境テクスチャ)を選択してください。

Enviroment Textureを選択したら、OpenからHDRI画像を開きましょう。

HDRI画像とは、ハイダイナミックレンジイメージ(high dynamic range image)の略で
今回は、3D用の背景という役割で使用します。
ガラスは、周囲の光を反射してディティールが再現されるので、HDRI画像があるとよりリアルになります。
HDRI HAVEN というサイトで、HDRI画像をダウンロードできるので設定してみましょう。
パラメータを設定する
パラメータを設定していきましょう。
今回調節するパラメータは以下の4つです。
- Roughness(粗さ)
- Transmission(伝播)
- IOR
- Alpha(アルファ)
Roughnessは表面の粗さ
0でツルツル、1.0に近づく程ザラザラになっていきます。
摺りガラスなど作りたい場合は、少し高めに設定するとよいかもしれません。
今回は0にします。
Transmissionはガラスの透明度
値を変更してみると、Roughnessと似たような変化をしますが
Roughnessよりもマテリアルの色が強く反映されます。
IORは光の屈折率
材質名と屈折率で検索すると、大体出てくるので調べてみましょう。
ガラスのIORは大体1.51くらいなので、この数値で設定しておきます。
今回はこちらのサイトを参考にさせていただきました。
材料の屈折率一覧表 《光学》Material IOR (Index of Refraction Values) List
今回はこんな感じに設定しました。
Roughness: 0.0
Transmission: 1.0
IOR: 1.51
Alpha: 0.6
ノードの画像も貼っておきます。

一通りマテリアルの設定ができたので、
Renderedビューポートにして見た目を確認してみましょう。

かなりガラスっぽくなりましたね!
ですが、シェーダーでAlphaを0.6に設定しましたが、ガラスが透けていません。
このままでは、グラスの中身が見えないので、グラスを透き通るようにする設定をしていきましょう!
グラスを透明にする
透明にするためには、シェーダーのAlphaに設定した値が
有効になるように設定しなくてはいけません。
Alphaを有効にするためには、マテリアルのBlend Mode(ブレンドモード)を変更します。

アルファハッシュにすることで、グラスが透き通りました!
そのままだと確認しづらいので、グラスの中に球体(Sphereメッシュ)を置いてみます。

透き通ってますね!これでマテリアルの設定は完了です。
グラスの中に液体を入れてみたり、照明を追加して摺りガラス風にしてみるのも良いかもしれません。
レンダー設定
最後に、レンダー時の設定を少し調整してみたいと思います。
グラスの下に平面のメッシュを追加して、床の上に置いたグラスを再現してみます。
目立つように、平面のマテリアルの色を水色に設定しておきました。

水色の床の上に、グラスが置いてある状態です。
この状態で照明を当てると、床に当たった光が反射して、グラスに映ります。
これを再現するためには
レンダープロパティのScreen Space Reflections(スクリーンスペース反射)にチェックを入れます。


少しですが、グラスに水色の光が照り返しているのが分かるでしょうか・・・?
また、グラスの足の部分を見てみると、床にグラスが反射しているのもわかりますね。
ここまでで、グラスのメッシュとガラスのマテリアルができました!
次回は、グラスの中に液体を入れて、見た目を調整していきたいと思います。
まとめ
今回は、ガラスのマテリアル表現を紹介しました。
GlassBSDFや、RefractionBSDFなど、ガラスを表現するためのシェーダーは他にもBlenderには用意されているので、それらを使っても良いかと思います。
お手軽に、透き通るガラスの表現を使いたかったので
今回はプリンシプルBSDFを使った方法にしました。
上で紹介した他のシェーダーでも、ノードを組み合わせることで透明なガラスを表現はできますが
少し複雑になってしまうので、次の機会にしたいと思います。