スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スムージング角どう使う?

OpenGLでスムーズシェーディングをするのに頂点の法線を細工してやらない といけない。スムージング角(smoothing angle)という語はそれなりに使わ れているみたい。

  1. 隣接する面の法線の平均をポリゴンの各頂点ごとに設定
  2. 平均は単にそれぞれの法線ベクトルを加算する(後で単位ベクトル化)
  3. 単純に全ての隣接面の法線ベクトルを平均化するとおかしい形状がある の“想定外”で平均化する前の頂点の法線ベクトルと隣接面の法線ベクト ルの角度を比較して閾値以上の角度の場合は平均化から除外する
  4. 法線ベクトルの比較には内積を使う
  5. 閾値である角度のcosを予め求めておいて、内積とそれを比較する
  6. 閾値のcosより各法線ベクトルの内積が小さければ除外
Zで行こう!:X形式のファイルの書き出し その3 modo 301 - livedoor Blog(ブログ)

内積の計算式。


CGtext 第5.5章

スムーズシェーディングの理論


法線ベクトルとスムージング角

スムージング角をどう適用するか。どうなるかOpenGLでの説明。


面法線と頂点法線_3DCG - FreeStyleWiki

スムージング角の適用方法。


スムージング角度(2) - good enough?

法線ベクトルの平均化の実装。隣接面の検索が効率悪いかもしれない。


Yahoo!グループ : OpenGL メーリングリスト メッセージ : 8988件中 1797-1811件目を表示

メッセージ1807にて隣接面のリスト化をあらかじめ行っておくと計算量 の低減できるとのこと。


スポンサーサイト

この記事へのトラックバックURL

http://memolet.blog22.fc2.com/tb.php/896-16dfdedb

この記事へのトラックバック

この記事へのコメント



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。