LoginSignup
1
2

More than 1 year has passed since last update.

Blender 自作シェーダー(OSL)で簡単なリムライト

Last updated at Posted at 2022-12-12

概要

リムライトとは、モデルの輪郭を光らせるコンピュータグラフィックスの技法の1つです。
1.png

モデルの頂点座標からカメラまでのベクトル法線ベクトルのなす角度を求めて、その角度が一定値より多ければ、モデルを光らせます。

シェーダー

shader rim_shader(
    //テクスチャ
    color texture_color = color(0.0,0.0,0.0),
    //法線
    normal n = N,
    //座標
    point position = point(0,0,0),
    //計算結果カラー
    output color final_color  = color(0.0,0.0,0.0)
)
{
    final_color = texture_color;    
    
    //カメラの座標
    point camera_pos = point("camera",0,0,0) - point("world",0,0,0);
    //カメラに向かうベクトル
    point to_camera = normalize(camera_pos-position);
    //カメラに向かうベクトルと法線ベクトルのなす角を求める。
    float angle = acos(dot(n,camera_pos));
    //角度が約68.7度より大きかったら。
    if(d > 1.2)
    {
        //光らせる。
        final_color *= 10.0;
    }
}
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2