スポンサーサイト

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

大規模ポリゴンのレンダリング,法線平滑化など

今日も引き続きCGを.
まずは10万ポリゴンを超える複雑形状のレンダリング.
レンダリング時間はあまり変わらないが,モデルデータのロードにすごく時間がかかる.
特にPov-Rayが扱うテキストベースの形状データはものすごく巨大なファイルになってしまうためコピーなどの取回しが悪い.


Chinese-Dragon(82万ポリゴン):


Nihonbasi-Kirin(22万ポリゴン):



立体を形成するポリゴン数を増やすと滑らかにはなるが,あまり良い方法とは言えない.
3Dでは特に面の数で勝負しようとすると,どうしてもデータ量が巨大になってしまう.
ポリゴン数を増やさず,少ないデータ量できれいにレンダリングできればそれに越したことはない.


少ないポリゴンで滑らかな曲面を得る方法として,古典的な手法である面法線の平均化を試す.
手順は以下の通り.

①STLをロードする際,ある頂点を共有する面を選び出す
②頂点を共有する面法線(STLが元々持っている)の角度差を調べ,一定値以下なら法線ベクトルを平均する.
③平均を取った法線ベクトル正規化し単位ベクトルを頂点に設定する.
④すべての頂点について①~③を繰り返す.
⑤頂点に設定された平均化ベクトルをPovのSmooth-Triangeの法線ベクトルに渡す

例:
スムージング前

スムージング後


これでポリゴンの数が少なくても,それなりにきれいな曲面が得られる.
注意すべきは②のところで閾値をうまく設定しないと,もともと四角い形状で下のような変な面が表示されてしまう.


オリジナル(曲面にカクつきあり):




全ての面を平滑化(曲面はきれいになったが誤った法線が発生!平面部の表示がおかしい):





50°以下で接する面のみ平滑化(曲面はきれいになり平面の破綻もない):



スポンサーサイト

この記事へのコメント

トラックバック

URL :

プロフィール

もやね

Author:もやね
長野県在住の会社員(メカニカル・エンジニア).
ロボットは完全な趣味としてやってます.
E-mail:
mo_ya_ne[a]yahoo.co.jp
[a]⇒@

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
FC2カウンター
ブログ内検索
RSSフィード
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。