FC2ブログ

DAZ Studio Default Shader

Category : Basics
前回はDAZ Studio(以下DS)のSurfacesタブの操作方法を解説しました。操作方法を理解すると次に疑問に思うのは、個々のサーフェイス・プロパティ、Diffuse ColorやOpacity Strengthが材質(マテリアル)の何を司っているかということだと思います。これらのプロパティはシェーダーによって変わってきますので、今回はDSで標準的に使われているシェーダーDAZ Studio Default Shader(Default Shader)について解説したいと思います。

DSにおけるシェーダーとは、3Delightソフトウェアレンダラーを使ってレンダリングする際にオブジェクトの表面材質を決定する要素(マテリアルシェーダー)です。DSで使用できるシェーダーはDefault Shaderの他にもHuman Surface Shader(HSS)やUberSurface Shader、pwToonなどがあり、それぞれ独特なプロパティを持つことで他にない材質表現を可能にしています。過去の記事でもこれらのシェーダーを取り上げたことがありますね。さらにShader MixerタブShader Builderタブを使えば、自分でシェーダーを構築することもできます。

今回は、Default Shaderの各プロパティを解説していくとともに、3DCGのマテリアルの基本について見ていきます。

※プロパティの効果や条件などはDefault Shaderのものなので、他のシェーダーや他の3DCGアプリケーションでは通用しない部分があります。

DSdefaultMat SS

※スペキュラ初期値について追記しました。(2012.3.14)

■共通プロパティ

次の画像はマテリアルの基本的な要素を表しており、いわゆるフォン・シェーディング・モデルというものになります。

DSdefaultMat 共通プロパティ
※地面に落ちた影の部分は地面のサーフェイスのアンビエントになります。
・Diffuse(ディフューズ)光が当たっている部分。Diffuse Color(拡散色)、Diffuse Strength(拡散強度)のプロパティを持つ。
・Ambient(アンビエント)光が当たっていない部分。Ambient Color(環境色)、Ambient Strength(環境強度)のプロパティを持つ。
・Specular(スペキュラ)光源が反射している部分。鏡面ハイライト。Specular Color(スペキュラ色)、Specular Strength(スペキュラ強度)、Glossiness(光沢)、Multiply Specular Through Opacity(不透明度を掛け合わせる)のプロパティを持つ。

アンビエントが物体の地の色となり、光が当たっている部分はディフューズ+アンビエントと色が加算されます。スペキュラはさらにディフューズ+アンビエント+スペキュラとなるので、物体の表面で一番明るい部分になります。
ディフューズの領域が照明によって決定されるのに対し、スペキュラの領域は照明とオブジェクト、そしてカメラの位置(視点)の関係から決定されます。そのため、見る位置を変えるだけでスペキュラの出方は変化します。
DSdefaultMat Specularと視点

Default Shaderでのスペキュラのデフォルト値は以下のようになります。
 Glossiness 100%
 Specular Color 153,153,153
 Secular Strength 100%
レンダリングすると一見スペキュラが発生していないように見えますが、拡大するとすごく小さい1ドットぐらいの点があるのが分かると思います。そのため、スペキュラのいらないサーフェイスの場合はSpecular Strengthを0%にしておくのを忘れないようにして下さい。
Glossinessとスペキュラのサイズについてはこの記事をご参照下さい。

ColorとStrength

多くのサーフェイス・グループにColorとStrengthという2つのプロパティがあります。単純に考えると色と強度となりますが、テクスチャを使用する場合はColorで強度を調整したり、スペキュラマップとしてStrengthではなくColorにテクスチャが割り当てられることが多いです。これはレンダリング結果は同じになるようなので、製作者任せになっているようです。
Colorとテクスチャについての余談なのですが、Colorにテクスチャを割り当てた上でColorのパラメータを調整した場合、テクスチャの色にColorの値が乗算されます。



■起伏プロパティ

細かい起伏のある物体をそのディテールまでモデリングするのは大変ですし、ポリゴン数の増加がシーンのプレビューを重く、レンダリングを長くしてしまいます。そこで用意されたのがバンプマップやディスプレイスメントといったプロパティです。これらはテクスチャ画像を物体表面の起伏に変換します。
・Bump(バンプマップ)高低をマッピングすることで起伏を表現する。Bump Strength(バンプ強度)、Negative Bump(黒色の高さ)、Positive Bump(白色の高さ)のプロパティを持つ。
・Displacement(ディスプレイスメント)実際に表面の形状を凸凹に変化させる。Displacement Strength(ディスプレイスメント強度)、Minimum Displacement(黒色の高さ)、Maximum Displacement(白色の高さ)のプロパティを持つ。
・Normal Map(ノーマルマップ)Normal(法線)の方向をマッピングすることで起伏を表現する。Normal Mapのプロパティのみを持つ。

※白色、黒色というのはテクスチャ画像の色(輝度)です。

バンプマップとノーマルマップは物体の表面に起伏があるように見せかけるだけです。それに対しディスプレイスメントは実際に表面の形状を変化させます。これは特にオブジェクトのエッジに差が出ます。

バンプマップとディスプレイスメントはテクスチャ画像の輝度成分のみを使用します。それに対してノーマルマップはテクスチャ画像のRGB各色成分を法線ベクトルXYZとして割り当てます。そのためディフューズやスペキュラに使用しているテクスチャなどをバンプマップに流用することはできても、ノーマルマップにはそれ専用のテクスチャが必要です。
DSdefaultMat 起伏プロパティ
※ノーマルマップのテクスチャはnVidiaのPhotoshop用ノーマルマッププラグインでバンプマップから変換したものです。

バンプマップとディスプレイスメントについて詳しくはこの記事を、ノーマルマップについてはこの記事をご参照下さい。


■透明反射屈折プロパティ

ガラスのような物体を表現するのに必要なのが、透明度、反射、屈折といったプロパティです。反射(レイトレース)と屈折をレンダリングするためには、Render SettingsタブでMax Ray Trace Depthを2以上にしておく必要があります。
・Opacity(オパシティ)不透明さ。Opacity Strength(不透明度)のプロパティを持つ。テクスチャを使わない場合、そのサーフェイスを均一に透明にする。

DSでは物体の透明度をOpacity(不透明度)という逆のプロパティで表します。
DSdefaultMat Opacity

また、このプロパティを使う上で重要なのが、SpecularグループにあるMultiply Specular Through Opacityというプロパティです。これがOnになっていると、スペキュラがオパシティによって減衰します。そのためガラス玉などの、半透明でありながら反射のきつい材質を表現する場合はOffにして下さい。
DSdefaultMat Multiply Opacity

・Reflection(リフレクション)周囲の物体の映り込み。Reflection Color(鏡面反射色)、Reflection Strength(鏡面反射強度)のプロパティを持つ。

Reflection Colorは映り込みの色に影響します、さらに同様にSpecular Colorも映り込みの色に影響します。
鏡面反射色にテクスチャを割り当てた場合、環境マッピングとして扱われます。映り込む景色をテクスチャ画像として与えてやるのが環境マッピングです。金属の質感を表現したり、レンダリングコストを抑えてリアルな映り込みを表現したりするのによく使われています。ただし、映り込みの明るさはシーンの照明とは無関係なので、暗いシーンなどの場合はパラメータを調整してやる必要が出てきます。
DSdefaultMat 鏡面反射と環境マッピング

・Refraction(リフラクション)物体を通して見える向こう側の景観の歪み。Refraction Color(屈折色)、Index of Refraction(IOR:屈折率)のプロパティを持つ。Opacityプロパティと共に使われる。

水面下の物体が歪んで見える効果を表現する時などに使われるプロパティがRefraction(屈折)です。向こうの景色が歪むのは、物体の表面で光が屈折することにより起こります。そのためこのプロパティを使う場合は、その物体の材質に合った屈折率を設定してやることが必要です。また、Refractionを設定しても、Opacity Strengthを下げて物体を半透明にしておかないと屈折の効果が出ませんのでご注意下さい。
DSdefaultMat Reflection

ReflectionとRefractionの複合

反射と屈折を同時に使おうとした場合、Default Shaderでは反射像が正しく描画できず、屈折率の影響を受けてしまいます。そんな場合はUberSurfaceなどの他のシェーダーを使って下さい。
DSdefaultMat ReflectionとIOR

ReflectionとSpecular

リフレクションとスペキュラは3DCGの世界では区別されていますが、現実世界では同じ現象です。ではなぜ一つにまとめないのかというと、次のような理由からだと思われます(他にもあるでしょう)。
 ・レイトレースによるリフレクションはレンダリングコストが高い。
 ・3DCGで標準的に使われる光源は、それ自体は発光せず、また面積が無いためリフレクションでは映り込まない。
そのためDSのソフトウェアレンダラーでは両方をうまく併用していく必要があるようです。余談として、物理的に正しいレンダリングを謳っているLuxRenderでは1つのプロパティで処理されています。

IOR

屈折プロパティを使う場合、向こう側の景色がどのくらい歪むかは屈折率(IOR)で決まります。IORが0の時には屈折せず、1より高いと屈折が起こるようになっています。屈折率は物体の材質によって違い、DS3のPDFマニュアルには屈折率の例として次のようなものが挙げられています。
真空1.00000
空気(穏やかな日の海面上)1.00029
澄んだ氷1.31
水(摂氏20度)1.33
アセトン1.36
砂糖の30%水溶液1.38
砂糖の80%水溶液1.49
1.54
ポリスチレン1.55 - 1.59
サファイア1.77
ダイアモンド2.417


■Lighting Model

Default Shaderの特長として、Lighting Model(ライティングモデル)が変えられるというのがあります。
ライティングモデルというのはシェーディングモデルや光反射モデルなどとも言われ、シェーダー構造の基本となる部分です。
Plasticプラスチック。非常に明るいハイライトを持つ標準的なライティングモデル。ハイライトの色はライトの色を反映する。
Metallic金属。ハイライトの色はサーフェイスのベースカラーと同じ色相でわずかに明るくなる。
Skin皮膚。人間の皮膚に適したSSS(表面下散乱)が設定されている。
Glossy (Plastic)光沢があるプラスチック。フレネル効果や鋭いハイライトを持つ。眼球などに最適。
Matteマット。ハイライトが発生しない。
Glossy (Metallic)光沢がある金属。鋭いハイライトを持ったMetallicライティングモデル。

DSdefaultMat Lighting Model

SSSやフレネルといった、えっそんな効果ついてたの?と思うような解説文(DS3のPDFマニュアルより)ですが、UberSurfaceなどのシェーダーで提供されているものに比べると効果の低いものです。
クセの無いPlastic、とりあえず肌に割り当てたいSkin、鋭いハイライトが出るGlossy (Plastic)の3つは多用しますが、他はほとんど使いません。
Skin、MatteライティングモデルではReflectionとRefractionプロパティが無効になりますので、注意が必要です。


■タイリングプロパティ

サーフェイスに張られているテクスチャの繰り返し(タイリング)を設定することができます。その際、ディフューズテクスチャだけでなく、すべてのテクスチャがずれないように繰り返し張られます。
・Horizontal TilesテクスチャのU方向の繰り返し
・Horizontal OffsetテクスチャのU方向のオフセット(初期位置ずれ)。タイル1枚の幅を1とする。
・Vertical TilesテクスチャのV方向の繰り返し
・Vertical OffsetテクスチャのV方向のオフセット(初期位置ずれ)。タイル1枚の幅を1とする。

Planeオブジェクトに次のソーステクスチャと設定でタイリングを施してみます(この画像はBryce7のサンプルシーン「Free content gold bars1」です)。

DSdefaultMat タイリングソース

 Horizontal Tiles 3
 Horizontal Offset -0.2
 Vertical Tiles 3
 Vertical Offset -0.2

結果は次のようになります。UVの方向はサーフェイスによって違いますのでご注意下さい。
DSdefaultMat Tiling


■その他のプロパティ

その他のプロパティをまとめて解説します。
・UV SetUVセット。UVを切り替える。
・Smoothポリゴンのスムージングのオン/オフ。Offにするとフラットシェーディングになる。
・Angleポリゴンのスムージング・アングル。ポリゴンのつなぎ部分がこの角度以下ならスムースシェーディングをする。


テーマ : 3DCG
ジャンル : コンピュータ

Comment

DAZStudio4の追加データ変更について質問

いつもチェックしています

初歩的な質問ですが、DAZStudio4を外付けHDDにインストールというのは可能でしょうか
DAZStudio4に素材データが増えてしまい、HDDに負担をかけるようになってしまいました
無理でしたら、DAZStudio4本体は内蔵HDDに残し、追加素材データを外付けHDDを…
と、考えています…
その際にDAZStudio4Proを無料ゲットしましたので、そちらに乗り換えようかと思っています
なお、外付けHDDには、第四世代のフィギュアを置きたいと思っています
この方法を取りたいと思っていますが、それについての注意点等で、明確な答えが書かれているサイトがあちこちググっても無かったので、こちらに質問させていただきました

よろしくお願いいたします

Re: DAZStudio4の追加データ変更について質問

街角@万年初心者さんこんばんは。いつも私のブログを見ていただいてありがとうございます。
過去の記事でも全然構いませんので、次からは関連しそうな記事にコメントお願いしますね。

DS4アプリケーションを外付けHDDにインストールするとのことですが、アプリケーション自体は内臓HDDへのインストールをおすすめします。初期設定でのインストール時に使われる容量は次のような割り振りです。

 (A)Program Files (アプリケーション) 約200MB
 (B)AppData (アプリケーション設定) 約6MB
 (C)マイドキュメント\DAZ 3D (初期コンテンツ) 約650MB

このうち、(C)はインストール時のContent Directoryの指定を変更すれば、Cドライブ以外に作成できます。
コンテンツディレクトリは複数作成できますので、それでコンテンツを複数に分けると管理上も有効です。私は、Genesisフィギュア(初期コンテンツ)、第4世代フィギュア、衣服、背景、という風に分けており、Cドライブにあるのはフィギュアのもの2つだけです。

DAZ製品のインストール時に新しいインストール先を指定すれば、次回DS4起動時にそのコンテンツディレクトリを追加するか聞いてくると思います。注意点はDAZ第4世代フィギュアは1つのコンテンツディレクトリだけにインストールするということぐらいでしょうか。具体的には、Runtime\libraries\!DAZ\[フィギュア名]というフォルダが複数のコンテンツディレクトリにあるとダメです。
Genesisフィギュアのモーフもフィギュアと同じコンテンツディレクトリにインストール必須です。

スレ違いで申し訳ございません

申し訳ございません

当方のネット環境が劣悪でしたのでこのような形で問い合わせてしまい、本当にすみませんでした
次回からは注意いたします

やはり、外付けHDDに本体を入れていけないのですね…
2ちゃん等のスレッドの中に、素材を外付けHDDの話があったのですが、具代的な注意点を書いているサイトやブログがなかったので困っていました
これで、増えすぎた素材を移動させる事ができます

ご迷惑をおかけしました
非公開コメント

著書
カレンダー
09 | 2019/10 | 11
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
検索フォーム
プロフィール

Kotozone

Author:Kotozone
製品の取扱説明書を読むのが大好きです

FC2ブックマーク
最新記事
カテゴリ
タグリスト

DSプラグイン V4 ライト マテリアル DSシェーダ DS基本 セール Genesis IBL アニメーション タブ解説 iray LuxRender ダイナミッククロス スクリプト Genesis2 ShaderMixer セットアップ バージョンアップ Download レタッチ カスタマイズ トゥーン SSS Photoshop ウェイトマップ NGM ファー 物理シミュレーション ERC D-Form Miki2 IDL 大気 M4 カラーコレクション ボリューム Hexagon Terrain パーティクル Genesis3 モーフセット Genesis8 V5 カメラ アナグリフ インスタンス GIMP 3Dプリント ロボット RAMDisk SLG ダイナミックヘア K4 V8 Python モーションキャプチャ Linux 日本語訳 

最新コメント
リンク
月別アーカイブ
ご意見ご感想はこちらに

名前:
メール: 
件名:
本文: 

ブロとも申請フォーム

この人とブロともになる

最新トラックバック
FC2カウンター