ベイク機能の仕様について
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
3件表示
(全3件)
すべてのコメント一覧へ
投稿ツリー
-
ベイク機能の仕様について
(asha, 2008/12/5 19:11)
-
Re: ベイク機能の仕様について
(uimac, 2008/12/5 22:18)
-
Re: ベイク機能の仕様について
(asha, 2008/12/6 9:46)
ベイク機能の仕様について
msg# 1
asha
投稿数: 23
Blenderでハイポリとローポリの差をNormalBakeさせて使用したいと考えています。
スペースをタンジェントスペースに設定し。SelectedToActiveにチェックを入れベイクさせたものを自分のアプリ(シェーダ)にて表示させます。
この時、ローポリとハイポリの傾きの差がそのままテクスチャに焼きこまれているものとしてシェーダを作成したのですが、どうも挙動が違う気がします。
具体的に言うとその差が大きく書かれていると思うのですが、Blenderの仕様が分からず困っております。
同じ物体でベイクすると法線向きは(0,0,1)でほんの少しずらすと数値がその方向にずれた状態でノーマライズされたものが書き込まれている点から、「差」が書き込まれていることは確かだと思うのですが、その計算がわかりません。
よろしくお願いします。
スペースをタンジェントスペースに設定し。SelectedToActiveにチェックを入れベイクさせたものを自分のアプリ(シェーダ)にて表示させます。
この時、ローポリとハイポリの傾きの差がそのままテクスチャに焼きこまれているものとしてシェーダを作成したのですが、どうも挙動が違う気がします。
具体的に言うとその差が大きく書かれていると思うのですが、Blenderの仕様が分からず困っております。
同じ物体でベイクすると法線向きは(0,0,1)でほんの少しずらすと数値がその方向にずれた状態でノーマライズされたものが書き込まれている点から、「差」が書き込まれていることは確かだと思うのですが、その計算がわかりません。
よろしくお願いします。
投票数:19
平均点:1.58
Re: ベイク機能の仕様について
msg# 1.1
uimac
投稿数: 49
仕様と言うのはソースコードのことでしょうか
https://svn.blender.org/svnroot/bf-blender/trunk/blender/source/blender/render/intern/source/rendercore.c
NormalMapは、やったこと無いですが見てみました。
まず、2412行あたり(do_bake_shade()の中)から、Selected to ActiveがONの場合の処理があります。座標を、(ローポリのほうに)出来るだけ合わせて計算しているだけで、差を計算しているようには見えないような…。
それから2169行あたり(bake_shade()中)から、実際にbakeする処理があります。
shr.combined[0]= nor[0]/2.0f + 0.5f;
shr.combined[1]= 0.5f - nor[1]/2.0f;
shr.combined[2]= nor[2]/2.0f + 0.5f;
で、-1〜1の範囲の法線を、0〜1の範囲にしているみたいです。
つまり、NormalMapは、BumpMapと違って、法線をそのままマッピングしているからNormalMapなんじゃないでしょうか…?(自信無し)
外していたらすみません。
https://svn.blender.org/svnroot/bf-blender/trunk/blender/source/blender/render/intern/source/rendercore.c
NormalMapは、やったこと無いですが見てみました。
まず、2412行あたり(do_bake_shade()の中)から、Selected to ActiveがONの場合の処理があります。座標を、(ローポリのほうに)出来るだけ合わせて計算しているだけで、差を計算しているようには見えないような…。
それから2169行あたり(bake_shade()中)から、実際にbakeする処理があります。
shr.combined[0]= nor[0]/2.0f + 0.5f;
shr.combined[1]= 0.5f - nor[1]/2.0f;
shr.combined[2]= nor[2]/2.0f + 0.5f;
で、-1〜1の範囲の法線を、0〜1の範囲にしているみたいです。
つまり、NormalMapは、BumpMapと違って、法線をそのままマッピングしているからNormalMapなんじゃないでしょうか…?(自信無し)
外していたらすみません。
投票数:4
平均点:7.50
Re: ベイク機能の仕様について
msg# 1.1.1
asha
投稿数: 23
ソースを確認いただき感謝致します。
NormalSpaceが「Worlad」や「Object」の場合法線をそのままマッピングしているのだと思うのですが、「Tangent」の場合どうなっているのか?というのが質問の内容でした。分かりにくくてすいません。
if(bs->type==RE_BAKE_NORMALS && R.r.bake_normal_space==R_BAKE_SPACE_TANGENT)
この辺の処理を追うのがよいのでしょうが、私の頭ではソースを読み取ることができず困っております。
質問するだけでは失礼なので、出来る限り自分でも勉強して調べてみようと思います。
連続投稿を避けるために書き込み時間が違いますが編集にて付け加えます
↑の処理を追ったところ問題は解決しました。
誤解していたのはスムージングとベイクの連携でした。
ベイク機能自体には特別な演算が含まれているわけではなさそうです。
ありがとうございました。
NormalSpaceが「Worlad」や「Object」の場合法線をそのままマッピングしているのだと思うのですが、「Tangent」の場合どうなっているのか?というのが質問の内容でした。分かりにくくてすいません。
if(bs->type==RE_BAKE_NORMALS && R.r.bake_normal_space==R_BAKE_SPACE_TANGENT)
この辺の処理を追うのがよいのでしょうが、私の頭ではソースを読み取ることができず困っております。
質問するだけでは失礼なので、出来る限り自分でも勉強して調べてみようと思います。
連続投稿を避けるために書き込み時間が違いますが編集にて付け加えます
↑の処理を追ったところ問題は解決しました。
誤解していたのはスムージングとベイクの連携でした。
ベイク機能自体には特別な演算が含まれているわけではなさそうです。
ありがとうございました。
投票数:5
平均点:4.00
3件表示
(全0件)
すべてのコメント一覧へ
ログイン
クイックリンク
2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)
●ニュース(英文)
BlenderNation
●Blenderコミュニティ
blenderartists.org
●Blender Q&A
- Blender Stack Exchange
●テストビルド
Buildbot(自動生成)
●開発関連
公式開発サイト
Blender開発blog
Blender Wiki
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)
●ニュース(英文)
BlenderNation
●Blenderコミュニティ
blenderartists.org
●Blender Q&A
- Blender Stack Exchange
●テストビルド
Buildbot(自動生成)
●開発関連
公式開発サイト
Blender開発blog
Blender Wiki