部品やアセンブリからサムネイルや資料などの画像を作成したけど、見た目がパッとしない!リアルな画像を出力したい!と思ったことはありませんか?
リアルな画像を作成する場合「Renderワークベンチの使い方」と「レンダリング(レイトレーシング)の知識」が必要になります。
そこでこの記事は、Renderワークベンチの使い方について、筆者が自分の力で調べて操作できるようになったことを整理したので、参考にしてください。
この記事でわかること。
- カメラの設定
- ライトの設定
- マテリアルの設定
- レンダリングの実行
レンダリングを習得したい方は、是非ともこの記事を読んであなたの「ものづくり」に役立ててください。
レンダリングとは
色々なレンダリングがありますが、ここでは3Dモデルから画像を生成することをいいます。
ワークベンチの追加
Renderワークベンチは、FreeCADの標準ワークベンチに含まれていないため、アドオンマネージャーで追加しておく必要があります。
執筆時のバージョン情報は「v2023.8.18」です。
レンダリングエンジンの追加
FreeCADはRenderワークベンチとレンダリングエンジンを連携することによってレンダリングを行います。
そのため、1つ以上のレンダリングエンジンをダウンロードして、インストール及び設定をしておく必要があります。
レンダリングエンジンとは、レンダリングを行うソフトウェアのことで、レンダラーとも呼びます。
サポートされているレンダリングエンジンは下記のとおりで、オープンソースのソフトウェアのため無償で使えます。
- Appleseed
- Cycles
- LuxCoreRender
- Pov-Ray
- Intel Ospray Studio
- Pbrt(試験的)
レンダリングエンジンの特徴はそれぞれ異なるので、そのサイトでレンダリングしたサンプルの画像を確認して、自分がレンダリングしたい対象と似ているものがあれば、そのレンダリングエンジンを優先的に使います。
この記事を参考にレンダリングする方は、初期設定の記事でレンダリングエンジンの追加とRenderワークベンチの設定を済ませてから読み進めてください。
レンダリングの流れ
Renderワークベンチはレンダリングプロジェクトというレンダリングの基となる情報を、レンダリングエンジンに転送してレンダリングします。
そのため、オブジェクト(3Dモデル)やカメラ、ライトを作成したら、レンダリングプロジェクトに追加しておく必要があります。
3Dモデルを作成したら、下記の手順でレンダリングをします。
- 3Dモデルを開く
- 視点の設定
- レンダリングプロジェクトの作成
- オブジェクトのビューをレンダリングプロジェクトに追加
- カメラの作成
- カメラのビューをレンダリングプロジェクトに追加
- ライトの作成
- ライトのビューをレンダリングプロジェクトに追加
- マテリアルの作成
- マテリアルをオブジェクトに割当てる
- レンダリングの実行
3Dモデルを開く
レンダリングする3Dモデルを作成して開きます。
ここでは原点を中心に一辺が10mmの立方体(Body)と、Φ10の球体(Body001)を作成しました。
モデリングの仕方がよくわからない!という方は、モデリングの仕方をこちらの記事にまとめているので参考にしてください。
視点の設定
通常の作業はデフォルト設定の正射投影表示で行いますが、レンダリングで生成される画像は自動で透視投影表示に切替わります。
透視投影とは、対象を遠近法で表示することをいいます。パース(perspectiveの略)とも呼びます。
表示方法が異なると見え方が変わるため、レンダリングの前に表示方法を切替えて見え方を統一しておきます。
メニューバーの「表示」から「透視投影表示」を選択して、3Dモデルの表示を切替えます。
レンダリングプロジェクトの作成
レンダリングで使用する3Dモデルを開いて、透視投影表示に切替えたら、ワークベンチをRenderに切替えます。
ツールバーの「レンダリングプロジェクト」アイコンをクリックすると、テンプレートの選択ウィンドウが表示されるので、どれか1つを選択して開くと、コンボビューのツリーにレンダリングプロジェクトが追加されます。
ここでは「Appleseed Project」のアイコンをクリックして、テンプレートに「Studio light」を選択したところ、ツリーに「Appleseed Project」が追加されました。
テンプレートにはレンダリングにおける背景色やライトの設定が含まれています。
そこで、Appleseedのテンプレートについて、Φ10の球体をレンダリングしたときの見え方の違いをまとめておきます。
レンダリングプロジェクトのオプションを変更
グラウンドの作成
オブジェクト(3Dモデル)のみをレンダリングすると、宙に浮いた画像が生成されますが、グラウンドを表示するとXY平面にグラウンドが作成され、オブジェクトを地面の上に置いた状態を表現できます。
手順は、ツリーに追加されたレンダリングプロジェクトをクリックして、プロパティを表示させます。
グラウンドのパラメータは下記のとおりです。
- Ground Plane グラウンドの表示と非表示の切替え(3Dビューには非表示)(※1)
- Ground Plane Color グラウンドの色
- Ground Plane Size Factor グラウンドのサイズ
- Ground Plane Z グラウンドのZ軸方向の位置(※2)
※1…「false」→「true」に変更すると、レンダリングの画像のみグラウンドが表示される
※2…グラウンドのデフォルト設定はXY平面上のため、-Z軸方向の形状はグラウンドで隠れる
ここではGround Planeの値を「true」、Ground Plane Colorの値を「#666666」、Ground Plane Zの値を「-5」に変更しました。
テンプレートの変更
必要に応じて「レンダリングプロジェクトの作成」で選択したテンプレートを変更できます。
ツリーのレンダリングプロジェクトを右クリックして、表示されるメニューから「Change template」をクリックすると、テンプレートの選択ウィンドウが再表示されるので、どれか1つを選択して開くと、プロパティのTemplateの値が更新されます。
ここでは「Studio light」から「standard」に変更しました。
オブジェクトのビューをレンダリングプロジェクトに追加
オブジェクトと先程追加したレンダリングプロジェクトの両方を選択して、ツールバーの「Rendering View」アイコンをクリックすると、レンダリングプロジェクトにオブジェクトのビューが追加されます。
ここでは「Body、Body001」と「Appleseed Project」を選択して「Rendering View」アイコンをクリックしたところ「Appleseed Project」に「Body@AppleseedProject」と「Body001@AppleseedProject」が追加されました。
カメラの作成
レンダリングで生成する画像の構図を決めるため、カメラを作成します。
カメラを作成しておくと、視点を移動させても指定したカメラの構図を再現できます。
まず、3Dビューの現在の視点がカメラとなるため、構図を決めておきます。
画像の生成される領域は3Dビューに表示されないため、3Dビューの中心からおおよその生成範囲(デフォルト設定の場合800×600ピクセル)をイメージして調整します。
構図をズームの拡大縮小で調整する場合「視点の設定」で行った透視投影表示にしておく必要があります。(正射投影表示ではズームの調整が反映されません)
次に、ツールバーの「Camera」アイコンをクリックすると、3Dビューにカメラ(ズームで縮小すると四角錘のマークが表示される)とコンボビューのツリーにCameraが追加されます。
ここでは下図の構図で「Camera」を作成しました。
カメラの編集
カメラの編集は必要に応じて読み進めてください。
カメラの視点を調整する
ツリーに追加されたカメラをクリックして、プロパティを表示させます。
Placement→Positionまで展開してx,y,zに数値を入力します。
カメラの向きを調整する
カメラは向きを調整するのが難しいので、下記の方法で対応します。
ツリーのカメラを右クリックして、表示されるメニューから「Point at…」を選択します。
オブジェクトの点や線、面のどれかを選択すると、カメラは選択した対象に向けられます。
カメラの構図を再現する
ツリーのカメラを右クリックして、表示されるメニューから「Set GUI to this camera」を選択します。
カメラを作り直す
作成したカメラを削除せずに、新しい構図に変更できます。
先に構図を決めておいてから、ツリーの構図を変更したいカメラを右クリックして、表示されるメニューから「Set this camera to GUI」を選択します。
カメラの表示と非表示
通常はレンダリングプロジェクトに追加した最後のカメラが有効となりますが、ツリーのカメラをクリックして、スペースキーを押すと表示と非表示を切替えできます。
カメラのビューをレンダリングプロジェクトに追加
レンダリングプロジェクトと先程追加したカメラの両方を選択して、ツールバーの「Rendering View」アイコンをクリックすると、レンダリングプロジェクトにカメラのビューが追加されます。
ここでは「Appleseed Project」と「Camera」の両方を選択して「Rendering View」アイコンをクリックしたところ「Appleseed Project」に「Camera@AppleseedProject」が追加されました。
なお、複数の視点でレンダリングする場合、あらかじめ決めておいた場所にカメラを作成して、レンダリングプロジェクトにすべて追加してから表示と非表示で切替えます。
ライトの作成
レンダリングでオブジェクトの見え方をコントロールするため、ライトを作成します。
テンプレートに「studio_dark」あるいは「studio_light」を選択していた場合、ライトを追加すると明るさのバランスを壊してしまうため、ライトは作成しないことをおすすめします。
手順は、ツールバーの「ライト」アイコンをクリックすると、3Dビューに光源とコンボビューのツリーにライトが追加されます。
作成できるライトは下記のとおりです。
- Point Light 1点から全方向に均等の光を放射
- Area Light 面全体から法線方向に光を放射
- Sunsky Light 直射日光と天空光で構成された光を放射(※1)
- Image Light 全天周映像に用いられる照明の光を放射(※2)
※1…AppleseedとLuxCoreRenderのみ対応
※2…使い方不明
ここでは「Point Light」を作成しました。
ライトの編集
ライトの編集のうち「エリアライトの向きを調整する」以降の内容は、必要に応じて読み進めてください。
ライトの色と配置、強さを調整する
ツリーに追加されたライトをクリックして、プロパティを表示させます。
ライトのパラメータは下記のとおりです。
- Color 光の色
- Location 光の配置…位置や向き(Locationを展開してx,y,zに数値を入力)
- Power 光の強さ
ここでは「PointLight」のプロパティから、Locationの値を「-20,-20,50」、Powerの値を「0.02」に変更しました。
エリアライトの向きを調整する
エリアライトは光源の向きを調整するのが難しいので、下記の方法で対応します。
ツリーの「AreaLight」を右クリックして、表示されるメニューから「Point at…」を選択します。
オブジェクトの点や線、面のどれかを選択すると、ライトは選択した対象に向けられます。
エリアライトの光源の面について
エリアライトの光源は3Dビューに長方形の面で表示されますが、構図の中に光源が入ると、長方形の面がレンダリングで生成された画像に表示されてしまいます。
光源の面を画像に表示させたくない場合、光源を構図の外へ移動させます。(「AreaLight」のプロパティからTransparent(透明)の値を「true」に変更しても、光源の面を非表示にできないため)
ライトの表示と非表示
ツリーのライトをクリックして、スペースキーを押すと表示と非表示を切替えできます。
ライトのビューをレンダリングプロジェクトに追加
レンダリングプロジェクトと先程追加したライトの両方を選択して、ツールバーの「Rendering View」アイコンをクリックすると、レンダリングプロジェクトにライトのビューが追加されます。
ここでは「Appleseed Project」と「PointLight」の両方を選択して「Rendering View」アイコンをクリックしたところ「Appleseed Project」に「AreaLight@AppleseedProject」が追加されました。
なお、複数のライトでレンダリングする場合、あらかじめ決めておいた場所にライトを作成して、レンダリングプロジェクトにすべて追加します。
マテリアルの作成
レンダリングでオブジェクトの外観(質感や色)を決めるため、マテリアル(材質)を作成します。
ツールバーの「Create Material」アイコンをクリックすると、コンボビューに「Render Material」が表示されます。
「プリセットを選択」をクリックして、プルダウンメニューからマテリアルを選択します。
選択できるマテリアルは下記のとおりです。
- RenderAluminium
- RenderBrass
- RenderCarpaint
- RenderGlass
- RenderGlossyPlastic
- RenderGold
- RenderGreenMarble
- RenderIron
- RenderMatte
- RenderRoughPlastic
- RenderTerrazzo
「OK」をクリックすると、コンボビューのツリーに「Materials」と選択したマテリアルが追加されます。
ここでは「RenderCarpaint」を作成し、同様の手順で「RenderGlass」のマテリアルも作成しました。
マテリアルの編集
Materialsに追加されたマテリアルをクリックして、ツールバーの「Edit Material Render Settings」アイコンをクリックすると、コンボビューに「Material Rendering Settings」が表示されます。
Material TypeとColorを選択して「OK」をクリックします。
Colorは「Use constant color」にチェックを入れてから、カラーバーをクリックして指定したい色に変更します。
ここでは「RenderCarpaint」の色を橙、「RenderGlass」の色を青にしました。
Material Typeにはレンダリングにおけるオブジェクトの質感の設定が含まれているので、AppleseedのRenderCarpaintについて、Φ10の球体をレンダリングしたときの見え方の違いをまとめておきます。
Carpaintは車の外装のような光沢のある質感、Diffuseはマットな質感(ランバート反射に基づくため、表面の凹凸が細かい素材の表現に向く)、Glassはガラスやプラスチックなどの透明な質感、MixedはDiffuseとGlassの効果を混合した質感となります。(Diffuse、Disney、Mixed、Substance_PBRの見た目に大差はありませんでした)
マテリアルをオブジェクトに割当てる
マテリアルは「Rendering View」アイコンで追加するのではなく、オブジェクトあるいは、レンダリングプロジェクト内にあるオブジェクトのビューのどちらかに割当てます。
オブジェクトを選択して、ツールバーの「Apply Material」アイコンをクリックすると、「Material Applier」ウィンドウが表示されるので、適用するマテリアルを選択して「OK」をクリックします。
オブジェクトのプロパティにマテリアルが割当てられたことを確認しておきます。
ここではBodyに「RenderCarpaint」、Body001に「RenderGlass」を割当てました。
なお、外観の設定が重複したときの優先順位は下記のとおりです。
- レンダリングプロジェクト内のオブジェクトのビュー(※1)
- オブジェクト(※2)
- オブジェクトの表示プロパティ
※1…オブジェクトのマテリアルを変更したくない場合に使用
※2…レンダリングプロジェクト毎にマテリアルを割当てしなくて済むのでおすすめ
例として、オブジェクトの「表示プロパティ」でシェイプの色を変更していたとしても、オブジェクトに割当てたマテリアルの設定が優先されます。
設定のまとめ
ここまでの設定をまとめておきます。
レンダリングの実行
レンダリングプロジェクトを選択して、ツールバーの「Render」アイコンをクリックすると、レンダリングエンジンが起動します。
ここでは「Appleseed Project」を選択して「Render」アイコンをクリックしたところ、Appleseedのレンダリングエンジンが起動しました。
ここからは、各レンダリングエンジンの簡単な操作について解説していきます。
Appleseed
Appleseedのウィンドウが表示されたら、手動でレンダリングを開始させます。
インタラクティブレンダリング
インタラクティブレンダリングはライトやカメラ、マテリアルなどの調整に適したレンダリングモードなので、レンダリングを行いながら見え方を調整したいときに使います。
メニューバーの「Rendering」→「Start Interactive Rendering」をクリックしてレンダリングを開始させます。
一例として、カメラの調整は下記のとおりです。
- オブジェクトの回転 画像の上でCtrlキー+マウスの左ボタンをドラッグ
- オブジェクトのパン 画像の上でCtrlキー+マウスの中ボタンをドラッグ
- オブジェクトのズーム 画像の上でCtrlキー+マウスの右ボタンをドラッグ
レンダリングはユーザーが止めるまで継続されるため、調整が完了したら、メニューバーの「Rendering」→「Stop Rendering」をクリックして停止させます。
なお、画像の細部や構図のチェックをする場合、マウスの中央ボタンを回転させてズームさせます。
最終レンダリング
最終レンダリングは画像の生成に適したレンダリングモードなので、インタラクティブレンダリングで調整が完了したら使います。
メニューバーの「Rendering」→「Start Final Rendering」をクリックしてレンダリングを開始させます。
処理が完了するとレンダリングは自動で止まります。
画像の保存方法が見つからないため、スクリーンショットで対応します。
LuxCoreRender
LuxCoreのウィンドウが表示されると、自動でレンダリングが開始されます。
ウィンドウの中の粗い画像は、時間の経過とともに滑らかになっていきますが、レンダリングはユーザーが止めるまで継続されるため、画像を見て十分な品質に達したと判断したら、メニューバーの「Rendering」→「Pause」をクリックして停止させます。
メニューバーのRenderingでよく使うコマンド
- Pause (一時停止)
- Resume (中断したところから再開する)
- Cancel (中止して終了する)
- Restart (初めからもう一度やり直す)
メニューバーのEngine
項目の横の数字が大きい物を選択すると画像の品質は良くなりますが、時間もかかります。
また、Engineの設定を変更すると、初めからもう一度やり直します。
- PATHCPU 3(デフォルト設定)
- BAKECPU 0(画像が真っ黒のままレンダリングが始まらない)
LuxCoreのウィンドウを閉じると、結果の画像がFreeCADの3Dビューに表示されるので、画像を右クリックして表示されるメニューから、「Save Image as…」(名前を付けて画像を保存)か、「Copy Image to Clipboard」(画像をクリップボードにコピー)で保存します。
Pov-Ray
Pov-Rayのウィンドウが表示されると、自動でレンダリングが開始されます。
処理が完了するとメロディーとともにレンダリングは自動で止まります。
Pov-Rayのウィンドウを閉じると、結果の画像がFreeCADの3Dビューに表示されるので、LuxCoreRenderと同様に画像を保存します。
Intel Ospray Studio
OSPRay Studioのウィンドウが表示されると、自動でレンダリングが開始されます。
LuxCoreRenderと同じく、レンダリングはユーザーが止めるまで継続されるため、メニューバーの「View」→「Pause Rendering」をクリックして停止させます。
OSPRay Studioのウィンドウを閉じると、結果の画像がFreeCADの3Dビューに表示されるので、LuxCoreRenderと同様に画像を保存します。
まとめ|FreeCAD レンダリング|リアルな画像の生成方法を解説
この記事では、Renderワークベンチを使って、3Dモデルからレンダリングで画像を生成する方法について解説してきました。
レンダリングエンジンにはいくつかのソフトがありますが、ソフトごとに操作方法を一から学ぼうとすると覚えることが多くて大変です。
これに対して、Renderワークベンチは複数のレンダリングエンジンと連携できるため、カメラやライト、マテリアルを同様の操作方法で設定できるところがメリットです。
解説では、Appleseedのレンダリングエンジンに調整した設定を行い、立方体に球体を映り込ませてみました。
この設定をほかのレンダリングエンジンに流用したところ、見え方が変わってしまったため、やはりレンダリングエンジンごとに設定を調整する必要がありました。
設定については、パラメータの組合せによって良くも悪くもなるので、よりリアルな画像を生成したいのであれば、照明やマテリアルの知識を習得することも視野に入れてみてください。
レンダリングを習得したら
レンダリングを習得したら、下記のリンクから学びたい内容の記事に進んでください。