サイト内検索
メインメニュー
クイックリンク
Blender本体、作品、文書等
BlenderFoundation
- Blenderのダウンロード
- 公式ギャラリー
- 公式チュート等
- 公式動画チュートリアル
- 公式 Wiki マニュアル
- 公式スクリプトカタログ
- Durian プロジェクト

日本語化・翻訳サイト
日本語化の設定など
ドキュメント翻訳プロジェクト(JBDP)
Python API Reference 日本語版

日本語初心者用チュートなど
WBS+

よくある質問と答え
BlenderFAQ

日本語コミュニティ
Blender@2ch
Studio MOMO(総合)
GameBlender Wiki
BLUG.JP
(BLender User Group of JAPAN)


ニュース(英文)
BlenderNation

Blenderコミュニティ
blenderartists.org
- フォーラム
- 記事検索
- New feature tests
- Model Repository

ギャラリーサイト
Blender ARt Gallery

開発サイト
Blender Project Site
- BugTracker
- BugTracker2.5用
- PatchTracker
Blender Wiki
開発情報
SVNコミットログ
SVNコミット速報

非公式テストビルド
Graphicall.org

GameBlender
公式マニュアル
専用API
BugTracker(専用)
Bullet 物理演算ライブラリ
Blender-Games.com

YafRay
YafRay
YafRay-TALK-JPN
YafRayFAQ

LuxRender
LuxRender私家版資料

Scripts & Plugins
Python2.6.4

(2.44-2.48は下記を使用)
Python2.5.2
(2.43-2.40は下記を使用)
Python2.4.2
(2.37a以前などは下記を使用)
Python2.3.5
Python Japan User's Group
BlenderArtists::python & plugins
Blender Plugin Repository
awalker's(?)page
L-sysytem(Blender Dungeon)

チュートリアルなど
Blender Cookie Blenderで3DCG制作日記 BlenderVideos.com Blender 3D: Noob to Pro
blenderguru
IngieBee's Blender site
Michael's Blender Website!

モデル&マテリアル
Blender Model Repository
Kator Legaz 3D Model
Blend Swap

マテリアル
blender-materials.org
Blender機能別: Blender2.32 Displacement_mapping  
執筆者: yamyam
発行日付: 2004/10/18
閲覧数: 3436
サイズは 10.53 KB
印刷用ページ 友達に教える
 
元記事:Displacement_mapping

ディスプレイスメントマッピング



by Robert Wenzlaff氏




機能の解説と用途


ディスプレイスメントマッピングはプロシージャル・画像問わず、Textureの入力をレンダリングされる面の位置の操作に使用できるパワフルなテクニックです。
Normalもしくはバンプマッピングのような、法線を曲げて幻の凹凸を与えるものではなく、
これは実際に凹凸を作るものなのです。これらは影を投影し、他のObjectを隠し、実際の形状でできることをすべて行うのです。


シェーダ・シャドウバッファ・レイトレーサにはどうやってあなたがモデリングしたかは判りません。

ディスプレイスメントマッピングはテクスチャチャネルとして振舞うよう設定されますが、ひとつ重要な大きな違いがあります。

レンダリングするFaceの移動をスムーズにするためには、面を非常に小さくしなければなりません(1)。これにはメモリとCPUの時間を食います。

遠くの物・重要でない物の場合、まだNORマッピング(バンプマッピング)を使用すべきでしょう。NORマッピングと比べ、ディスプレイスメントはレンダリングする各Faceにさらに非常に小さな負荷をCPUに負わせます。しかし、NORマッピングではレンダリングFace数とは独立して使用できます。ディスプレイスメントの使用により一気に非常に多くのFaceのあるシーンになります。

あなたのシーンにより正確な形状を使用する必要がある時にディスプレイスメントを使用して下さい。(一番右端の"cube"の影に注意して下さい)

(1)私は本当に必要なFaceだけを分割するアダプティブサブディバイド(適応再分割)について作業中です。例:もしカメラから遠く離れている、もしくはテクスチャの変位が緩やかな場合、そのFaceが大きいままの方がレンダリングスピードが上がります。

現在、最大二つのレンダリングFaceがMeshのFace毎(もしくは他のObject上の同等のもの)に生成されます。もし四角形のFaceが平面でなければ、二つの三角形としてレンダリングされます。

編集中のPCが沼に足をとられることなく、高いレンダリングFace数を得るには、MeshをSubSurfして下さい。implicit surfaceのFace(灰色)はレンダリングFaceとなるFaceです。

ObjectのMaterialのWIREの設定、ALL EDGES(EditMode中)の選択は、ディスプレイスされるレンダリングFaceを視覚化するのにいい方法です。

レンダリング時、Edgeを丸くせずにSubdivideできるように、新しいタイプのSubSurf、"Simple SubSurf"が作られました。"Simple SubSurf"をSubdivideのタイプとして選択することにより、Meshはレンダリング時、全体的な概観が変更されることなく、render数値ボックスのレベルでSubdivideされます。

すばやい編集には、3DViewでのSubdivideレベルを低く保ち、レンダリング時のSubdivideレベルを高くするのが一番いい方法です。しかし使用には注意して下さい。SubSurfのメモリ使用量は恐ろしいほど多くなります。これによりコンピュータが長い長い間ロックされてしまうのもめずらしくありません。


ディスプレイスメントの適用対象


最適な場合から最悪な場合まで、下記の各Objectタイプそれぞれについてレンダリング時のFace数をコントロールする方法と適用についてあげていきます。
  • Subsurf Mesh: レンダリング時のFace数はRender SubSurf Levelでコントロールできます。本来ディスプレイスメントにはNormalの変化がなめらかな方が好ましいです。

  • Simple SubSurf Mesh: Face数はRender SubSurf Levelでコントロールできます。しかし、もしテクスチャにニュートラルのグレイがない場合、鋭いEdgeのところに穴ができます。

  • 手動で(EditMode)SubdivideされたMesh: Face数をSubdivideの回数でコントロールします(これは上記の方法と組み合わせることができます)。ディスプレイメントは確かにSimple SubSurfと同じですが、OpenGLの余計なFaceの描画によるオーバーヘッドのため、編集は遅くなってしまいます。(この方法では編集時のSubdivideレベルを落とすことはできません)。

  • Metaball: WiresizeによりFace数をコントロールします。小さなWireで多くのFaceになります。

下記も利用可能ですが、現在は上手く動作しません。ディスプレイメントを適用する前にMeshに変換することをお勧めします。
  • Open Nurbs surface: Face数をU/V DegResoluでコントロールします。高い数値で多くのFace数になります(注:Normalにエラーがあります)。

  • Closed Nurbs Surfaces: DefResolu controlでコントロールします(注:Normalにエラーが、そしてインプリジットサーフェスの継ぎ目が見えます)。

  • CurveとText: DefResolu controlでコントロールします。高い値で多くのFace数になります(注:大きくフラットなSurfaceでは少数のFaceしかディスプレイスメントされません)。



ディスプレイスメントの使用方法


簡単には、上記の方法で表面を小さなレンダリングするFaceに分割してやり、好みのテクスチャでディスプレイスメントを使用(訳注:Dispボタンを押す)します。

しかし…。

現在、ディスプレイメントの動作には二つのモードがあります。

* 輝度によるレンダリングVertexのディスプレイスメント(VertexはVertexのNormalに沿って移動します)

* TextureのNormalによるレンダリングVertexのディスプレイスメント(VertexはTextureのNorに従って移動します)

二つのモードは排他ではありません。それぞれのタイプの量はMaterial→MapToパネルのスライダを使用して混ぜることができます。Textureのすべてが両方のInputのタイプを提供するわけではありません。例えばStucciはNormalだけを提供し、Magicは輝度のみを提供します(Colorから)。Cloud、Wood、Marbleは両方を提供します。Imageは輝度とNormalの両方を提供します。

輝度によるディスプレイスメントはDispスライダによってコントロールされます。

NormalによるディスプレイスメントはNorスライダによってコントロールされます。

輝度によるディスプレイスメントは、Vertexが外側にのみディスプレイメントされるため、スムーズで、より連続的な表面になります。NormalによるディスプレイスメントはVertexが様々な方向にディスプレイスメントされるため、より密集した表面になります。

ディスプレイスメントの深さはそのObjectのSizeによりますが、データの大きさには関係ありません。

これはもしObjectModeであるObjectの大きさを二倍にすると、ディスプレイスメントの深さも二倍になり、相対的にディスプレイスメントは同じになることを意味します。

もしEditMode中で大きさを変化させても、ディスプレイスメントの深さは変更されず、相対的な深さは小さくなります。

ニュートラルグレイはディスプレイスメント0を意味します。

正のディスプレイスメントは、白が頂点で、黒が谷底です。

負のディスプレイスメントは、これが反転します。

ディスプレイスメント用マップを作成する際、最初に50%のグレイで埋めてください。このCubeのEdgeを正しくシャープに残す方法に注意してください。もし背景が50%グレイでない場合、ベベルもしくは縁ができるでしょう。TextureButtons→ColorパネルのBrightnessとContrastスライダをして調節もできますが、前者の方が正しくスタートするためにベストな方法です。

ディスプレイスメントマップ内のシャープなラインはレンダリングするFaceを構成するVertexの一つが他の2-3のVertexに対して移動距離が非常に大きくなることがあるため、Normalの問題を引き起こす可能性があります。使用する前にあらかじめガウシアンぼかしをその画像に少しかけてあげるといい結果が得られるかもしれません。

注意:
TextureのOSAは現在Imageをディスプレイスメントマッピングした場合は動作しません。適切なフィルターサイズ機能の関数を置く必要があります。
 


 
評価された記事: 0.00 (0 件の投票)
このファイルの評価
カテゴリに戻る | カテゴリの一覧に戻る
ログイン
ユーザID または e-mail:

パスワード:



パスワード紛失
新着リンク
関連文書の新着

各コンテンツは特に記述がない限り、投稿者に著作権があります。投稿者の記載されていないものは管理者により作成。 
(C)2004-2010 blender.jp All Rights Reserved.  
Designed by yamyam. inspired from OCEAN-NET  
Special Thanks to kyk.:) Powered by XOOPS