Blender

【Blender】Eeveeでガラスのマテリアル表現

今回は、Blenderでガラスを作ってみたいと思います。

まず、BlenderにはCyclesEeveeというレンダーエンジンがあり、
Cyclesを使うとガラスの質感もリアルに表現できますが、PCのスペックによっては動作が重くなってしまいます。
なので、今回は動作の軽いEeveeを使用してガラスを表現する方法を紹介したいと思います。

参考例として、グラスを作りながら解説していきます。

Part2はこちら

結論

プリンシブルBSDFの設定例

  • Roughness(粗さ): 0
  • Transmission(伝播): 1.0
  • IOR: 1.57
  • Alpha(アルファ): 0.6
  • Blend Mode(ブレンドモード): アルファハッシュ

レンダープロパティのScreenSpaceReflectionsにチェックを入れる

目次

  1. 結論
  2. 環境
  3. 今回使うメッシュ
  4. マテリアルの設定
    1. パラメータを設定する
    2. グラスを透明にする
  5. レンダー設定
  6. まとめ

環境

OS: Windows10
メモリ: 32GB

Dependents
Blender: v2.92.0

今回使うメッシュ

グラスのメッシュを作っていきます。

メッシュ制作自体は詳細な説明はしません、手順だけ画像で流します。
マテリアルの説明までジャンプ

1.立方体を追加して、Modifireからサブディビジョンサーフェイスをかける
2.分割レベルは3に設定(お好みで)
3.ループカットで水平に2つ分割
4.一番下の面を、グラスの長さ分伸ばして、さらにループカットで分割
5.グラスの持ち手部分をループカットで分割。S+Shift+Z でZ軸以外の方向に縮小して細くしていく
6.さらに分割して、くびれを微調整する
7.グラスの内側を作る。一番上の面を選択して、I で内側に面を作成する。

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

8.Eキーで新しく面を作りEnter、G+Zでグラスの底面ぐらいの高さまで下げていく。これでグラスが凹んだ形になる。
9.内側を成形していく。ガラスの厚みがなくならないよう注意
10.Oでプロポーショナル編集モードにして、グラスの上の部分をすぼませる
11.グラスの底面は、Iキーで面を増やし、少しだけ上に凹ませる。最後にスムースをかけて完成!
出来上がったグラスのようなモノ

という事で、説明に使用するグラスが完成しました!

ではいよいよ、マテリアルの説明に入ります。

マテリアルの設定

今回はプリンシプル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つです。

  1. Roughness(粗さ)
  2. Transmission(伝播)
  3. IOR
  4. 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メッシュ)を置いてみます。

グラスの中にSphereを置いてみる

透き通ってますね!これでマテリアルの設定は完了です。
グラスの中に液体を入れてみたり、照明を追加して摺りガラス風にしてみるのも良いかもしれません。

レンダー設定

最後に、レンダー時の設定を少し調整してみたいと思います。
グラスの下に平面のメッシュを追加して、床の上に置いたグラスを再現してみます。
目立つように、平面のマテリアルの色を水色に設定しておきました。

平面メッシュを追加

水色の床の上に、グラスが置いてある状態です。
この状態で照明を当てると、床に当たった光が反射して、グラスに映ります。

これを再現するためには
レンダープロパティのScreen Space Reflections(スクリーンスペース反射)にチェックを入れます。

Screen Space Reflectionsをチェックすることで、照り返しを再現できる

少しですが、グラスに水色の光が照り返しているのが分かるでしょうか・・・?
また、グラスの足の部分を見てみると、床にグラスが反射しているのもわかりますね。

ここまでで、グラスのメッシュとガラスのマテリアルができました!
次回は、グラスの中に液体を入れて見た目を調整していきたいと思います。

まとめ

今回は、ガラスのマテリアル表現を紹介しました。
GlassBSDFや、RefractionBSDFなど、ガラスを表現するためのシェーダーは他にもBlenderには用意されているので、それらを使っても良いかと思います。

お手軽に、透き通るガラスの表現を使いたかったので
今回はプリンシプルBSDFを使った方法にしました。

上で紹介した他のシェーダーでも、ノードを組み合わせることで透明なガラスを表現はできますが
少し複雑になってしまうので、次の機会にしたいと思います。

ピックアップ記事

  1. 【WPテーマ自作】UnderScoresの導入
  2. 【Rails】オブジェクトの中身をログに出力する
  3. 【UE4】用語備忘録メモ
  4. 【Blender】アニメーションでポーズを左右反転してコピペしたい時
  5. 【Blender】起動時に強制終了してしまう問題

関連記事

 
  1. 慣れれば3分!Bumpノードを使用した質感表現の方法

    Blender

    【Blender】Bumpを使用した質感表現の方法

    マテリアルを設定したけど、リアルな見た目にならない。そんなお悩みの方へ…

  2. Blender

    【Blender】拡張機能(アドオン)の基本的な使い方

    Blednerにはアドオン(拡張機能)と呼ばれる、制作を効率化してくれ…

  3. 複数に分けたテクスチャを1枚に統合する方法

    Blender

    【Blender】複数に分けたテクスチャを1枚に統合(ベイク)する方法

    VRChat用のアバターを用意するに当たって、テクスチャをベイクする必…

  4. Blender

    【Blender】レンダリング結果を新規ウィンドウで開かないようにする

    カメラの微調整とか、FreeStyleで線画抽出作業をしている時に頻繁…

  5. Blender

    【Blender】SaplingTreeGenで木を生やしてみた

    Blenderのアドオン、SaplingTreeGenを使用して、木を…

  6. Blender

    【Blender】アニメーションでポーズを左右反転してコピペしたい時

    Blenderで、例えば歩いているアニメーションを作成したい場合、1つ…

カレンダー

2021年8月
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

最近の記事

  1. Ruby on Rails

    【Rails】railsでIndex name ‘xxx’…
  2. Blenderの複数バージョンを簡単に管理できるBlenderLauncherの使い方

    Blender

    【Blender】複数バージョンを簡単に管理できる、BlenderLaunche…
  3. Ruby on Rails

    【Rails】modelを作成する
  4. Ruby on Rails

    【Rails】findメソッドで連想配列から指定した値を検索する
  5. MySQL

    【MySQL】mysqlで新しくユーザーを追加する
PAGE TOP