Blender で輪郭抽出する方法まとめ

カテゴリ:blender

目次

反転ポリゴンを使う

法線/深度を使う

明度差/色を使う

Object/Material ID を使う

UV を使う

フリースタイル

応用編

輪郭の太さを変更する

頂点色を使ってソーベルの輪郭抽出をコントロールする

オブジェクトの交差する部分に線を出す

余計な線を消す方法

反転ポリゴンを使った輪郭抽出

入りと抜きがある色っぽい線を作る
Solidify modifier Contour/Outline(Cycles を使ってやる方法.英語)

法線/深度を使った輪郭抽出

単純な法線を使った輪郭抽出

Blender は法線の XYZ をそのまま RGB に変換できないので, 3 つの直交するベクトルとの内積をそれぞれ RGB として解釈する.

法線を使って輪郭抽出するノード
結果
法線を使った結果
単純なソーベル
単純なソーベル

単純な深度を使った輪郭抽出

単純な方法では微妙な深度を検出しづらい. コントラストを上げれば検出できるが,手前や奥の情報が飛び背景に不要な線が現れる. エッジノード では深度を対数に変換してから輪郭を抽出している.

深度を使った輪郭抽出
結果
結果

AA をかける方法

Render > Anti-Aliasing > Full Sample にチェックを入れる.ただしレンダリング時間は長くなる.

AA の設定
AA の設定

ふたつを合成

法線と深度を合成する
Depth+Normal
深度と法線の合成

NormalノードでNormal抽出エッジを調整

エッジノード

明度差/色を使う

明度差

ColorRamp で線の出る範囲を調節できる.

明度差を検出する

上の ColorRamp は明度差をコントロールし,下の方は他の色を引き算する強さを調整する.

赤を検出する
結果
結果

Object/Material ID を使う

輪郭抽出したいオブジェクトに Object > Pass Index を設定. マテリアルの場合 Material > Options > Pass Index.

オブジェクト ID の設定
オブジェクト ID の設定
Material ID
マテリアル ID の設定

オブジェクトのみを表示したいので,Render > Shading > Alpha を Transparent にする. Render Layer > Passes > Object Index にチェックを入れる. マテリアルの場合は Material Index.

オブジェクト ID の入力
オブジェクト ID の入力
アルファを有効
アルファでオブジェクトのみを表示

以下のようにノードをつなぐ.ID Mask の Index に設定した ID を指定する.

ID 検出ノード
for Material
マテリアルの場合
結果
レンダリング結果

blender - 鏡音リン(4)

UV を使う方法

超簡単!blender 3d 輪郭線を抽出方法の『node』アニメ調に最適

フリースタイル

基本編 06: FreeStyleの使い方とおすすめ設定

トゥーンシェードにおける Freestyle の使用例

CyclesでFreeStyleを使う

FreeStyle 101: Edge Types(英語)

特定の部分の線を出さないようにする方法

輪郭の太さを変更する

拡張/浸食(Dilate/Erode)を使えば輪郭の太さを変更できる.

拡張/浸食(Dilate/Erode)で輪郭の太さを変更するノード
結果
結果

頂点色を使ってソーベルの輪郭抽出をコントロールする

コンポジティングノードを使用して輪郭線を検出する方法

オブジェクトの交差する部分に線を出す

フリースタイルとブーリアンを使う方法は 交差した部分に線が出ないんですけど… を参照.

フィルタのキルシュを使う方法は セルアニメ風輪郭線の生成方法 を参照.

そのほか ID法線も使える.

余計な線を消す方法

ノードで作成した輪郭の一部を消す方法

関連記事
Blender 記事の目次