Alias/Wavefront Material ファイル におけるマテリアルの例

Slides:



Advertisements
Similar presentations
1 エクセル (3) の目次 ②参照演算子と演算子参照演算子と演算子 ③参照セルの表示法参照セルの表示法 ④セルの参照方法セルの参照方法 ⑤エラーについてエラーについて ⑥シグマ( Σ )関数シグマ( Σ )関数 ⑦条件付書式条件付書式 ⑧問題 (1)問題 (1) ⑨問題 (2)問題 (2) ⑩問題.
Advertisements

池内研究室 Computer Vision Laboratory 東京大学 The University of Tokyo 偏光レイトレーシング 宮崎大輔 2004 年 6 月 22 日(火) CVL セミナー.
Osaka Shoin Women ’ s University. 9/20/2005www.osaka-shoin.ac.jp 於: 三重県立久居農林高等学校 大阪樟蔭女子大学 学芸学部 被服学科 小林 政司 於: 三重県立久居農林高等学校 大阪樟蔭女子大学 学芸学部 被服学科 小林 政司 Color.
Ruth Onn, Alfred Bruckstein (Int J Comp Vision 1990)
ゲーム開発者向け最新技術論文の解説・実装講座
今回の内容 シェーディング マッピング 光の効果の表現 表面の素材の表現 オブジェクトの形状表現 光の効果の表現 表面の素材の表現
豊洲 304教室 15 JULY コンピュータグラフィックス 2008年度版.
影付け,映り込み,光の屈折・反射などが表現でき,リアルな画像を生成できるレイトレーシング法について説明する.
Computer Graphics 第9回 レンダリング(3) シェーディング 大域照明モデル
11章 ボリュームレンダリングを学ぶ 本来は目に見えない内部情報をレンダリングし可視化する技術
向川康博 (大阪大学,MIT) Ramesh Raskar (MIT) 八木康史(大阪大学)
3DCG技法についての 調査報告 ○○県立○○高等学校 1年は組 グループ0.
       光の種類 理工学部物理科学科 07232034 平方 章弘.
情 報 の 表 現(3) 情報社会とコンピュータ 第10回.
9月27日 パラボラミラーによる ミリ波ビーム絞り
地理情報システム論 第3回 コンピュータシステムおける データ表現(1)
ParaViewを用いたPHITS 計算結果の3次元表示
Computer Graphics 第9回 レンダリング(2) シェーディング 大域照明モデル
WWW上の3次元空間表現 A three-dimesional space expression on WWW
心理学情報処理法Ⅰ コンピュータにおけるデータ表現 マルチメディアとコンピュータ.
見た目を定義する技術 CSS(スタイルシート).
レンダリングにおいて写実性を高めるための処理である,シェーディングとテクスチャマッピングについて述べる.
Real Time Graph 指定された計測のデータを実時間収集サーバ(LABCOM)から取得し、リアルタイムにグラフとして表示する。
高山建志 五十嵐健夫 テクスチャ合成の新たな応用と展開 k 情報処理 vol.53 No.6 June 2012 pp
第11回 オブジェクト(ベクトル,頂点,面)のクラス化とフラットシェーディング
スタイルシート C306 情報発信の基礎【第6回】.
カラー撮影,CCD 以外の撮像系 撮像素子の制御による高度な計測
コンピュータ プレゼンテーション.
All images are compressed.
前回の内容 結晶工学特論 第5回目 Braggの式とLaue関数 実格子と逆格子 回折(結晶による波の散乱) Ewald球
データベース設計 第2回 データベースモデル(1)
オーサリングツール&ブラウザの 技術的トピック
コンピュータグラフィックス CG Computer Graphics 情 報 文字 数値 図形 画像 ハードウェアの高性能化
コンピュータグラフィックスS 第13回 第13回 演習(4):シェーディング、マッピング システム創成情報工学科 尾下 真樹
ミリ波照射による生体試料の変性の研究 寺中正人  土井昭孚  立川敏明 香川大学医学部医学科 
Blender 3次元コンピュータグラフィックス・アニメーションソフトウエア
CG講座 裏 Mental-ray編.
Bottom-UpとTop-Down アプローチの統合による 単眼画像からの人体3次元姿勢推定
決定木とランダムフォレスト 和田 俊和.
2008年度 情報数理 ~ 様々なデジタル情報 ~.
電界中の電子の運動 シミュレータ作成 精密工学科プログラミング基礎 資料.
画像処理工学 2013年1月23日 担当教員 北川 輝彦.
MOAデータベースを用いた 超長周期変光星の解析
3次元構築アプリケーションにおける3D表示(2)
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
可視面・不可視面の判定方法と隠れ面(不可視面)の消去法について述べる.
DirectX勉強会 第2回.
岡山大学 工学部 情報工学科 (大学院自然科学研究科 計算機科学講座) 尺長 研究室
プロジェクト演習Ⅳ インタラクティブゲーム制作 プログラミング4
2次元と3次元,ゲームエンジンの構成要素, ゲームの構成物,ゲームエンジンの例
重力レンズ効果による画像の変形と明るさの変化
テキスト 1 行目 テキスト 2 行目 テキスト 3 行目 (初級) 森の背景の上にフェード インするアニメーション化されたキャプション
偏光による形状推定および色の解析 宮崎大輔.
2012年度 情報数理 ~ 様々なデジタル情報(1) ~.
宇宙線ミューオンによる チェレンコフ輻射の検出
1.光・音・力.
情報処理Ⅱ 第2回:2003年10月14日(火).
ここに 表題や引用文が入る 背景への図の使用とキャプションへのテクスチャの適用 (中級)
文化財のデジタル保存のための 偏光を用いた透明物体形状計測手法
2010年度 情報数理 ~ 様々なデジタル情報(1) ~.
コンピュータグラフィックス 実習3: 光線追跡法
情報の授業 サイバースペースに飛び込もう(2) 情報のデジタル化 Go.Ota
All images are compressed.
第6回:得点を表示しよう! (文字の表示、乱数)
ライティング メディアデザイン演習.
エクセル(3)の目次 参照演算子と演算子 参照セルの表示法 セルの参照方法 エラーについて シグマ(Σ)関数 条件付書式 問題(1)
2次元のオブジェクト ◆ 種類 2次元のグラフィックス ポイント(点) ライン(線分,折れ線) エリア(多角形など) 文字列(テキスト)
サンプル見出し テキスト 1 行目 テキスト 2 行目 テキスト 3 行目 (中級) 図の背後でタイトルを移動させるアニメーション効果
2019年度 情報数理特論B ~ 様々なデジタル情報(1) ~.
露出は どのような感度の感光体に どのくらいの数の光線束を どのくらい時間、露光するか で決定される
Presentation transcript:

Alias/Wavefront Material ファイル におけるマテリアルの例 2008/10/22 金子

マテリアルとテクスチャ マテリアル (Material) ← 今回の資料の範囲 テクスチャ (Texture) 【直感的定義】 物体の色,鏡面反射,表面のざらつき,透明感などを表現するもの. ・ 物体表面の反射,屈折 ・ 物体内部における光の吸収,散乱 現実を完璧に再現することは不可能 ⇒ シェーディングモデルは用途・応用に依存 ⇒ マテリアルは「標準化」はできない テクスチャ (Texture) 木,石 ・・・ など,物体表面と内部の特性に関するもの.  ・画像ファイルのマッピング,各種のテクスチャモデルなど.   標準化というよりは,個々の作品ごとに手作りされ,ライブラリ化される傾向にある(ように感じる) ※ いずれも,現実の忠実な再現は不可能.近似表現にとどまる.(超現実もありえる.例えば,入射光より反射光の方が多いとか,「アニメのセル画」風の反射を行うなど) シェーディングモデル (光の反射,屈折,散乱を定めるモデル) とはいえ,何らかの「性質」があり,その認識が データベース化において必要

Wavefront Material 形式のファイルフォーマットのステートメントに関係のあるBlenderのボタン等の一覧

Blender の主要機能 マテリアル シェーダー

反射率(Ns)について 反射率調整バー hardness bar(Hard) で操作 反射率調整バーの範囲は1~511

環境光(Ka)について 赤色環境光 ambient red bar(AmbR)、青色環境光 ambient blue bar(AmbB)、緑色環境光 ambient green bar(AmbG)調整バーで操作。 さらに環境光量 ambient light bar(Amb)調整バーで全体の色を操作できる。 環境光量の初期値は0.500

拡散光(Kd)について 拡散光ボタン diffuse color button(Col)が選択された状態で、赤色拡散光調整バー diffuse red bar(R)、青色拡散光調整バー diffuse blue bar(B)、緑色拡散光調整バー diffuse green bar(G)で操作。 さらに拡散光量 diffuse light bar(Ref)調整バーも操作することで全体の色の調整ができる 拡散光量調整バーの初期値は0.800 赤色調整バー、青色調整バー、緑色調整バー、拡散光調整バーそれぞれ範囲は0~1

反射光(Ks)について 反射光ボタンspecular color button(Spe)が選択された状態で、赤色反射光調整バーspecular red bar(R)、青色反射光調整バー specular blue bar(B)、緑色反射光調整バー specular green bar(G)で操作。 さらに反射光量specular light bar(Spec)調整バーで全体の反射光の鮮やかさを操作できる 反射光量調整バーの初期値は0.500 赤色調整バー、青色調整バー、緑色調整バー、それぞれ範囲は0~1 反射光量調整バーの範囲は0~2

屈折率(Ni)について 設定を反映するためには透過設定 ray transparency button(Ray Transp)ボタンを選択する 屈折率調整バーindex of refraction bar(IOR)で操作 屈折率調整バーの初期値は1.00 屈折率調整バーの範囲は1~3

溶解度(d)について 溶解度調整バーdissolution bar(A)で操作 溶解度調整バーの範囲は0~1

エクスポート部分 release/scripts/export_obj.py if mat: file.write('Ns %.6f\n' % ((mat.getHardness()-1) * 1.9607843137254901) ) # Hardness, convert blenders 1-511 to MTL's file.write('Ka %.6f %.6f %.6f\n' % tuple([c*mat.amb for c in worldAmb]) ) # Ambient, uses mirror colour, file.write('Kd %.6f %.6f %.6f\n' % tuple([c*mat.ref for c in mat.rgbCol]) ) # Diffuse file.write('Ks %.6f %.6f %.6f\n' % tuple([c*mat.spec for c in mat.specCol]) ) # Specular file.write('Ni %.6f\n' % mat.IOR) # Refraction index file.write('d %.6f\n' % mat.alpha) # Alpha (obj uses 'd' for dissolve) # 0 to disable lighting, 1 for ambient & diffuse only (specular color set to black), 2 for full lighting. if mat.getMode() & Blender.Material.Modes['SHADELESS']: file.write('illum 0\n') # ignore lighting elif mat.getSpec() == 0: file.write('illum 1\n') # no specular. else: file.write('illum 2\n') # light normaly インポート部分 release/scripts/import_obj.py if line_lower.startswith('ka'): context_material.setMirCol((float(line_split[1]), float(line_split[2]), float(line_split[3]))) elif line_lower.startswith('kd'): context_material.setRGBCol((float(line_split[1]), float(line_split[2]), float(line_split[3]))) elif line_lower.startswith('ks'): context_material.setSpecCol((float(line_split[1]), float(line_split[2]), float(line_split[3]))) elif line_lower.startswith('ns'): context_material.setHardness( int((float(line_split[1])*0.51)) ) elif line_lower.startswith('ni'): # Refraction index context_material.setIOR( max(1, min(float(line_split[1]), 3))) # Between 1 and 3 elif line_lower.startswith('d') or line_lower.startswith('tr'): context_material.setAlpha(float(line_split[1])) ※ illum 値はインポートされない

調査内容 Alias/Wavefront Material ファイルフォーマット 【目的】 3次元コンピュータグラフィックス分野でのマテリアルの事実上の標準 Ns, Ka, Kd, Ks, Ni 等のステートメントから構成される 【目的】 基本的なステートメントを調べ,理解し,必要性を確認

Alias/Wavefront Material ファイルの例 # Blender3D MTL File: # Material Count: 1 newmtl Material Ns 96.078431 Ka 0.000000 0.000000 0.000000 Kd 0.800000 0.800000 0.800000 Ks 0.500000 0.500000 0.500000 Ni 1.000000 d 1.000000 illum 2 コメント ← マテリアル名の指定 反射率 屈折光 拡散光 ステートメント と値 反射光 屈折率 溶解度 ※ Ns, Ka などが ステートメント イルミネーションモデル番号

Alias/Wavefront Material ファイルの ステートメント一覧 ステートメント名 属性名 データタイプ 最小単位 Ns 反射指数 specular exponent float サーフェス ※ オブジェクトの「表面」はサーフェスの集まり(6面体ならサーフェスが6個) Ka 環境光 ambient color color Kd 拡散光 diffuse color Ks 反射光 specular color Ni 屈折率 index of refraction d 溶解度 dissolve illum イルミネーションモデル番号 illumination model integer 世界全体 Tf 透過フィルタ transmission filter 物体 sharpness Reflection map からの反射の鮮明さ color は,赤(R)、緑(G)、青(B)の3原色 ・R, G, B それぞれ0~1の範囲の浮動小数値 これで全て 参考:http://www.fileformat.info/format/material/

マテリアルの既定値 説明上,マテリアルの各属性の既定値を次のように定める. ← マテリアルの既定値 での描画結果 float color 属性名 ステートメント名 既定値 データタイプ 反射指数 Ns 98.078431 float 環境光 Ka 0.000000 0.000000 0.000000 color 拡散光 Kd 0.800000 0.800000 0.800000 反射光 Ks 0.500000 0.500000 0.500000 屈折率 Ni 1.000000 溶解度 d (参考 【blender での操作手順】Blenderを起動 ↓ 初期からあるオブジェクト に対してツールバーの file→export→Wavefront を選択 エクスポートされた Materialファイルをソース コードのデフォルトの値 とする ← マテリアルの既定値    での描画結果

マテリアルの既定値 【この資料の内容】 これらの値を変えると, 見栄えがどう変化するか? 説明上,マテリアルの各属性の既定値を次のように定める.  → 既定値から変化させて,見栄えの変化を見る 属性名 ステートメント名 既定値 データタイプ 反射指数 Ns 98.078431 float 環境光 Ka 0.000000 0.000000 0.000000 color 拡散光 Kd 0.800000 0.800000 0.800000 反射光 Ks 0.500000 0.500000 0.500000 屈折率 Ni 1.000000 溶解度 d 【この資料の内容】 これらの値を変えると, 見栄えがどう変化するか?

光源の種類 環境光源 特定光源 任意の方向から物体にくる光が,一定の強さであると仮定するもの (例) 青空,曇天 点光源 線光源 並行光源 任意の方向から物体にくる光が,一定の強さであると仮定するもの (例) 青空,曇天  特定光源 点光源 光源が点の形をしていると仮定するもの (例)電灯 線光源 光源が線分の形をしていると仮定するもの (例)蛍光灯 並行光源 無限の遠方から来る光 (太陽光線)

環境光 (ambient color)(Ka) 属性名 ステートメント名 既定値 データタイプ 反射指数 Ns 98.078431 float 環境光 Ka 0.000000 0.000000 0.000000 color 拡散光 Kd 0.800000 0.800000 0.800000 反射光 Ks 0.500000 0.500000 0.500000 屈折率 Ni 1.000000 溶解度 d Ka = (0.5, 0, 0) Ka = (0, 0.5, 0) Ka = (0, 0, 0.5) Ka = (0.5, 0.5, 0) Ka = (0, 0.5, 0.5) Ka = (0.5, 0, 0.5) サーフェス単位の特性 物体表面における環境光源の反射 値を変えると, 見栄えがどう変化するか? 【環境光源】 任意の方向から物体にくる光 (青空,曇天) を一定の強さの光で近似 これを,あらゆる方向へ反射 ※ 環境光に関する制約 面ごとに環境光の値を変えることは できるが,全ての面について R,G,B の比は同一でなければならない

環境光の例 Ka = (0.5, 0, 0) Ka = (0, 0.5, 0) Ka = (0, 0, 0.5) 並行光源からの 鏡面反射 影は 真っ黒 Ka = (0.5, 0, 0) Ka = (0, 0.5, 0) Ka = (0, 0, 0.5) Ka = (0, 0, 0) 【Blender での設定法】 ① Amb は 0.5 のまま ② Modifier → Add Modifier → SubSurf ③ 世界全体での設定: World (F8キー)   AmbR, AmbG, AmbB を設定 Ka = (Amb×AbmR, Amb×AbmG, Amb×AmbB) に設定される Ka = (0.5, 0.5, 0) Ka = (0, 0.5, 0.5) Ka = (0.5, 0, 0.5)

拡散光 (diffuse color)(Kd) 属性名 ステートメント名 既定値 データタイプ 反射指数 Ns 98.078431 float 環境光 Ka 0.000000 0.000000 0.000000 color 拡散光 Kd 0.800000 0.800000 0.800000 反射光 Ks 0.500000 0.500000 0.500000 屈折率 Ni 1.000000 溶解度 d Kd = (0.8, 0, 0) Kd = (0, 0.8, 0) Kd = (0, 0, 0.8) Kd = (0.8, 0.8, 0) Kd = (0, 0.8, 0.8) Kd = (0.8, 0, 0.8) 値を変えると, 見栄えがどう変化するか? サーフェス単位の特性 物体表面における特定光源(点光源,線光源,並行光源など)の乱反射 入射光 あらゆる方向へ一定の強度で乱反射 (反射では色を考慮)

拡散光の例 Kd= (0.8, 0, 0) Kd= (0, 0.8, 0) Kd= (0, 0, 0.8) 【Blender での設定法】 ① Ref は 0.8 のまま ② サーフェス単位での設定:  Col を選択後,R, G, B を設定 Kd = (Ref×R, Ref×G, Ref×B) に 設定される Kd= (0.8, 0, 0) Kd= (0, 0.8, 0) Kd= (0, 0, 0.8) Kd= (0.8, 0.8, 0) Kd = (0, 0.8, 0.8) Kd = (0.8, 0, 0.8)

反射光 (specular color)(Ks) 鏡面反射を見やすく するために Kd の値も変更 属性名 ステートメント名 既定値 データタイプ 反射指数 Ns 98.078431 float 環境光 Ka 0.000000 0.000000 0.000000 color 拡散光 Kd 0.300000 0.300000 0.300000 反射光 Ks 0.500000 0.500000 0.500000 屈折率 Ni 1.000000 溶解度 d Ks = (0.5, 0, 0) Ks = (0, 0.5, 0) Ks = (0, 0, 0.5) Ks = (0.5, 0.5, 0) Ks = (0, 0.5, 0.5) Ks = (0.5, 0, 0.5) 値を変えると, 見栄えがどう変化するか? サーフェス単位の特性 物体表面における特定光源(点光源,線光源,並行光源など)の鏡面反射 入射光 対象にある光が当てられたとき、 表面で鏡面反射する色(光沢)を設定

反射光の例 Ks = (0.5, 0, 0) Ks = (0, 0.5, 0) Ks = (0, 0, 0.5) 【Blender での設定法】 ① Spec 値は 0.5 のまま ② サーフェス単位での設定: Spe を選択後,R, G, B を設定 Ks = (Spec×R, Spec×G, Spec×G) に設定される Ks = (0.5, 0, 0) Ks = (0, 0.5, 0) Ks = (0, 0, 0.5) Ks = (0.5, 0.5, 0) Ks = (0, 0.5, 0.5) Ks = (0.5, 0, 0.5)

反射指数 (specular exponent)(Ns) 属性名 ステートメント名 既定値 データタイプ 反射指数 Ns 98.078431 float 環境光 Ka 0.000000 0.000000 0.000000 color 拡散光 Kd 反射光 Ks 0.500000 0.500000 0.500000 屈折率 Ni 1.000000 溶解度 d 鏡面反射を見やすく するために Kd の値も変更 値を変えると, 見栄えがどう変化するか? サーフェス単位の特性 特定光源(点光源,線光源,並行光源など)の鏡面反射について,反射の広がり方を定める指数 ・範囲は、普通 0~1000 (これに限定されない) ・数値が高いと,光沢が鋭くなる(鏡面に鮮明な像ができる)

反射指数の例 Ns = 0 【Blender での設定法】 ① サーフェス単位での設定: Hard 値を変える. Ns =1000 ×( ( Hard – 1 ) / 510 ) に設定される(未確認) Ns = 511

屈折率 (index of refraction)(Ni) 属性名 ステートメント名 既定値 データタイプ 反射指数 Ns 98.078431 float 環境光 Ka 0.000000 0.000000 0.000000 color 拡散光 Kd 0.800000 0.800000 0.800000 反射光 Ks 0.500000 0.500000 0.500000 屈折率 Ni 1.000000 溶解度 d 0.150000 Ni = 1 Ni = 1.998528 見やすくするために 半透明に設定 値を変えると, 見栄えがどう変化するか? サーフェス単位の特性 物体表面における環境光源の屈折 ・値の範囲は0.001~10 (例)ガラスは 1.5 付近の値 ・1.0では屈折せずまっすぐに光が進む ・1.0より小さいと奇怪な進み方をする

屈折率の例 Ni = 1 Ni = 1.998528 【Blender での設定法】 ① Ray Transp を ON ② サーフェス単位での設定: IOR 値を変える. Ni = IOR に設定される IOR は,Angular index of refraction for raytraced refraction の略

溶解度 (dissolve)(d) サーフェス単位の特性 溶解(dissolve)の度合い 物体表面の光の通りやすさを設定 属性名 ステートメント名 既定値 データタイプ 反射指数 Ns 98.078431 float 環境光 Ka 0.000000 0.000000 0.000000 color 拡散光 Kd 0.800000 0.800000 0.800000 反射光 Ks 0.500000 0.500000 0.500000 屈折率 Ni 1.000000 溶解度 d d = 1 d = 0.8 d = 0.6 d = 0.4 d = 0.2 サーフェス単位の特性 溶解(dissolve)の度合い 物体表面の光の通りやすさを設定 不透明 ⇔ 半透明 ⇔ 透明 値を変えると, 見栄えがどう変化するか? 「溶解」の定義では,物体の厚み (thickness) は考慮されない. ・範囲は0.0~1.0 ・1.0:光をまったく通さない ・0.0:光をそのままの強さで通す(透明)

溶解度の例 d = 1 d =0.8 d = 0.6 【Blender での設定法】 ① サーフェス単位での設定: A を設定 ( d = A が成り立つ) d = 0.4 d = 0.2

ここでの結論 マテリアル (Material) は,多数の種類 (Alias/Wavefont Material ファイル以外にも多数)があり,全ての調査は無理/無意味(我々の目的と合致しない) しかし,マテリアル (Material) に共通する特質は見える マテリアルは,サーフェスあるいは物体単位に定まる値 マテリアルは,浮動小数値 あるいは 色.  浮動小数値の場合,最大値と最小値がある.