2009-06-25[n年前へ]
■Mathematicaで発色シミュレーションをオブジェクト風記述にするライブラリ
以前作った、「分光スペクトル・色処理用のMathematicaライブラリ(関数群)」を利用して、「Mathematicaで発色シミュレーションをオブジェクト風記述にするライブラリ」を作りました。前回書いたように、三次元構造の中で反射・屈折・散乱を行う「光」のスペクトルが、どのように変化していったかを知ることができます。
ライブラリは、Imagearts.2.5.nb(3.7MB)として、サイト上にアップロードしてあります。このファイルには、関数・オブジェクト定義に加え、いくつかのサンプルが入っています。
たとえば、「4層構成の物質(Layer)があり、それらの層はすべて透明だけれども、その中間層2層の散乱度合いを変えた場合」のシミュレーションを複数条件下でしたければ、下記のようなコードを書けばOKということになります。
layers[sc_] := (z = #[[3]]; Piecewise[{ {{1, 0,Spector[new][set,transparentFilter]}, z > 1}, {{1, sc,Spector[new][set, transparentFilter]}, 1 >= z && z > 0.5}, {{1, sc,Spector[new][set, transparentFilter]}, 0.5 >= z && z > 0}, {{1, 0,Spector[new][set, transparentFilter]}, 0 >= z} } ]) &;
Table[Light[new][in,Layer[new][set,layers[i]]][showTrace], {i,0,1,0.1}]
ここでは、最初に層構成を純関数として定義し、その純関数を使い、条件を変えたオブジェクトをTableで作成し・計算を行っています。
なお、現状のライブラリは、表面形状は水平平滑に限る、という単純なコードになっています。表面凹凸対応は、また気が向いた(近い)時期にしてみよう、と思います。
2009-06-27[n年前へ]
■Mathematicaで眺める油絵 フランドル技法
12 世紀から油絵技法が一般的になる15 世紀までの間, 主要な絵画 (描画) 技法だったのがテンペラ技法です。テンペラ技法の主要なものには、バインダ (メディウム) としての卵黄に非水溶性の顔料を混ぜ, 卵黄に含まれるレシチンにより乳化させることでエマルジョン (乳濁液) 化し、色材を水に溶いたテンペラ・マグラ "Tempera magra" や、テンペラ・マグラの卵黄に油を混ぜた, テンペラ・グラッサ "Tempera grassa" などの技法があります。
このテンペラ・グラッサなどがヤン・ファン・エイクらにより改良され、メディウムとしての亜麻仁油などの植物性乾性油中に顔料を溶く油絵技法が確立されました (右上図はエイクによる 「アルノルフィニ夫妻の肖像」)。
この当時の色材層は2層からなっていました。下層は黒と白の色材が混合された明暗を描くモデリング (デッサン) 層であり、上層は色付け (着彩)のためのグレーズ層です。モデリング層では、(特に)白色材や黒色材を使うため,散乱が比較的多くなります。その一方で、グレーズ層である上層では散乱係数が低くなります。それは、屈折率が1 .5 程度の亜麻仁油などを主体とする油絵のメディウムは、顔料(屈折率が1.6程度)とメディウムの屈折率差が小さいため、層中における光散乱が少ないためです。
こんな油絵フランドル技法で描かれた絵画の状態を、Mathematicaで発色シミュレーションをオブジェクト風記述にするライブラリで表現してみました。それが、下のスクリーンキャプチャ画面になります。空気層+2層(グレージング&モデリング層)の色材層、そして、キャンバス層に光を入射させ、その光のスペクトル変化を計算させてみたものです。そして、その光軌跡の1例と、スペクトル変化を表示させてみました。
モデリング層として形成した明度が, 全層としての反射明度に素直に反映されているようすや、グレーズ層の厚みが増えるにしたがって, すなわち色を重ね塗りするにしたがい綺麗に色づく(だろう)さまを見て取る(光軌跡やスペクトル変化から想像する)ことができます。
というわけで、「Mathematicaで発色シミュレーションをオブジェクト風記述にするライブラリ」を使って、古典絵画を鑑賞してみる例を、今日は作ってみました。
2009-06-28[n年前へ]
■Mathematicaで眺める油絵 「印象派」編
17世紀以降, モデリング層とグレージング層を分離させず, 基本色を混合・調色した上で,目で認識した色をそのまま描く技法が広まりました。特に19 世紀以降, 印象派が, その場で、見た色をそのまま絵の具の色にして描く技法を盛んに用いるようになりました。たとえば、右上の画像は、そんな技法で描かれた、クロード・モネの「日傘をさす女」です。
このような技法により描かれた画像構造を、、Mathematicaで発色シミュレーションをオブジェクト風記述にするライブラリで表現してみました。やり方は、2種の色材を1層に混合し新たな吸収分光特性・散乱係数を持つ 「1層の色材」からなる画像構造に模して、計算・解析してみる、という具合です。その「1層の色材」層では、色絵具に(特に)白や黒を混ぜるため、層内での散乱が大きい、という条件になります。
・・・すると, 比較的彩度の低い発色になります。これは、光軌跡を見るとわかるように、色材層内で頻繁に散乱が起きるため、色材層の上層部周辺のみを光が通り抜けて、その後、光が表面層から出て行ってしまうからです。そのため、色材による分光吸収が十分に行われないままになります。そして、彩度の低い発色となるわけです。
というわけで、昨日に引き続き、今日は「Mathematicaで発色シミュレーションをオブジェクト風記述にするライブラリ」を使って、技術的に、印象派の絵画を鑑賞してみました。
2009-11-23[n年前へ]
■スペクトルカメラプロジェクト開始
昔ながらの、あの実力派サイトが動き出した。「スペクトルカメラプロジェクト開始」
久しぶりに個人的プロジェクトを始めます。 事の発端は、日本NIが突如始めたMake: Japan読者限定キャンペーンでした。「新規ユーザ様限定のキャンペーンとさせて頂きます。」との但し書きが微妙な展開を生んだのですが、いずれにしても気分的にウキウキとプロジェクトが始まっているのです。
2010-06-29[n年前へ]
■エクセルのグラフを綺麗なスペクトルチャートにするマクロ
エクセルのグラフを綺麗なスペクトルチャートにするマクロの「CCC」
エクセル標準のグラフのうち、等高線グラフなどのグラフ要素の塗りつぶしの色を 青から赤へと連続的に変化した色に変えることにより、グラフを見やすくすることができます。というわけで、下のチャートは(Excel 2010になっても未だ今ひとつ綺麗に色を仕上げることができないのです)Excel 2010の等高面グラフを本マクロを使って、綺麗なスペクトルチャートにしてみた例です。エクセルのチャートを、思いきり綺麗にカスタマイズできて、自由自在に眺めることができるソフトウェアを、明日にでも作ってみようと思います。近く、夏恒例のスプレッドシートを使ったシミュレーション実習を行うので、ありとあらゆるエクセル技を、これから少しまとめて行こうと思います(もしも、ひと味もふた味も変わった、けれどとても楽しく華麗なエクセル科学本に興味のある編集者の方がいらっしゃいましたら、ご連絡頂ければ幸いです)。