« 2006年01月 | メイン | 2006年03月 »

2006年02月28日

Maya 7 Personal Learning Edition

随分以前に Maya 4.5 の PLE をインストールしていましたが全く使っておらず(使い方の勉強もしていませんでしたが・・・)、RenderMonkey もいじり始めたこともあって現在のバージョンを確認してみることにしました。現在は Maya 7 になっており、これにも PLE があるようです。

Maya 7 Personal Learning Edition
http://www.alias.co.jp/products-services/maya/maya_ple/

前に LightWave は使っていたことがあったので LW の PLE のようなものがあれば理想的だったのですが、さすがになさそうですね。これを機に Maya もちょっとは使えるようにしておこうと思います。

しかし、ファイルフォーマットによっては今の目的に適さないんだよなぁ。その辺から調べてみます。


投稿者 napier : 23:14 | トラックバック


2006年02月27日

2006.02.27

デスノート:地下鉄臨時列車で撮影 藤原竜也は大はしゃぎ
http://www.mainichi-msn.co.jp/entertainment/news/20060227spn00m200004000c.html
撮影は順調みたいですね。

情報漏洩
社説:海自情報流出 ソフトの欠陥放置も問題だ-話題:MSN毎日インタラクティブ
http://www.mainichi-msn.co.jp/shakai/wadai/news/20060226k0000m070109000c.html
スラッシュドット ジャパン | 「Winnyの欠陥直させないのが問題」と毎日新聞が社説
http://slashdot.jp/security/06/02/26/1847250.shtml
これを読んでいて思うことが 2 つあって。最近思う「感情と技術」に関してと、もう 1 つは単純に /. の雰囲気がタチコマたちの会話に思えること。タチコマに関してはそのうち画像でもと思いますが、1 つめに関して。理系と文系と分けてもいいと思いますが、CONTACT に出てきた「証拠」に関するものです。「私は科学者だから証拠がないものは信じないわ」という主人公に対して神学者が、
「君は父さんが好きだった?」
「当然よ」
「証拠は?」
と聞きます。当然、前段階でこの科学者は神を信じない理由として証拠がないことを挙げています。

技術的に無理なものは、人間世界では感情的に何とかしなければならないのかな、と考え始めています。


投稿者 napier : 12:58 | トラックバック


2006年02月26日

パレットのいろいろ

CG を扱っているとそれぞれのツールで独自のパレットを使うことになります。

palette_Paint.jpgpalette_CinePaint.jpg
Windows PaintCine Paint
palette_GIMP_1.jpgpalette_GIMP_2.jpg
GIMP (1)GIMP (2)
palette_RenderMonkey.jpg
RenderMonkey

こうやってみると、それぞれのツールで思想的な相違を比べることができます。実際、CG のパレット的によく使用されるのは RGB, HSV, YC などに収斂されていきます。


投稿者 napier : 23:45 | トラックバック


危うくボヤ

2006 年 2 月 26 日午後 4 時半頃、このブログの管理人さん宅のキッチンで調理後の火の消し忘れから、危うくボヤ騒ぎになりそうな煙が噴出してるのが、管理人さん本人によって発見されました。

P2260001.JPGP2260004.JPGP2260006.JPG
ススにまみれた換気扇消火された揚げ物用鍋ススの飛散状況

管理人さんの話によると、グラスのモスコがなくなったため新しいモスコを作りにキッチンに向かったところ、ドアを開けると以前にも遭遇したような煙まみれのキッチンが目に飛び込んできたとのことです。そういえば以前の煙騒ぎのときはアップルパイを作っていた際にリンゴを煮詰めていた時間を見誤っていたことが原因で、今回の煙は、から揚げの調理後に「固めるテンプル」を揚げ物用鍋に入れたにもかかわらず、コンロの火を消し忘れたいたことが原因だということです。

本人は料理をするときは大抵飲みながらやることが多いため、今後は飲みながら料理をするときは「焼き物」「炒め物」のみとし、「煮物」「揚げ物」は控えるとコメントしています。

あー、びっくりした(汗)


投稿者 napier : 16:44 | トラックバック


畑ちゃんが・・・

柏原崇が離婚、畑野と連名でファックス
http://www.nikkansports.com/ns/entertainment/f-et-tp0-060225-0014.html
ショック・・・。
しかし、前向きに歩いていっていってください。


投稿者 napier : 00:14 | トラックバック


2006年02月25日

CONTACT

大切なのは
自分で答えを探すことなの

1つだけ確かなのは──

宇宙はとても大きいってこと

想像もできないほど
どんなものより大きいの

地球人だけだと──

空間(スペース)が もったいないわ

でしょ?
CONTACT
1997 年公開
ロバート・ゼメキス監督

英語のセリフはこちらにあります。何年ぶりで観たことになるのかな(それ以前に何年ぶりに Hi8 デッキを使ったことになるのか!)。これを観たことによってロケ地のような砂漠を見てみたいと思い、グランドキャニオンに行ったことを思い出します。今まですっかり忘れていたことでした。いろんな意味で「初心忘るべからず」ですね。

これを観た当時は CGA 熱がまだあった頃で CONTACT のような映画のシナリオを考えていました。今はその熱もすっかり冷めてしまっていますが、またちょっとシナリオを考えてみようかとも思います。

なんだか懐かし映画を観るのがマイブームになりそう・・・ドラマを消化しなければならないのにっ。


投稿者 napier : 23:26 | トラックバック


3DLabs Exits PC Market

Beyond3D のこのエントリによると、3DLabs が PC マーケットから去るとのことです。

Beyond3D - Which was nice.
http://www.beyond3d.com/

今後は professional workstation graphics market から portable handheld devices へとシフトするとのこと。現在の NVIDIA と ATI と比べてしまうと、市場シェア的にも性能的にも事業継続には難しいものがあるのでしょうね。しかし具体的に portable handheld devices とはどこなのでしょう? NVIDIA は最近、ケータイ向けの GPU を発表したばかりです。

ITmedia +D モバイル:NVIDIA、携帯向けGPU「GoForce 5500」発表
http://plusd.itmedia.co.jp/mobile/articles/0602/13/news063.html

ケータイ向けで争ってもまた厳しいものがあると思います。ゲーム用でも NVIDIA と ATI は巨塔ですし、今さら PDA ってのはないよな・・・。

これで古参と言われるグラフィックチップメーカで今後が気になるのは matrox だけになりました。matrox の去就も注目されますが、こちらはまた違った独自路線でいっていそうですね。


投稿者 napier : 12:39 | トラックバック


サマータイムマシンブルース(2)

さて、今回はいきなりネタバレがあるので。。。

SummerTimeMachineBlues01.jpg

サマータイムマシンブルース」の最後のタイトルを見たときに感じた既視感の正体がわかりました。「うる星やつら2 ビューティフル・ドリーマー」です。劇中にラムちゃんのコスチュームも使われており、オマージュとして扱われていることは宣言されていましたね。

私が最初に触れたタイムパラドックスものはドラえもんで、「大長編ドラえもん のび太の大魔境」になります。その後はやはり「Back to the Future」ですね。それに続いて「時空の旅人」かな。「サマータイムマシンブルース」を観るにあたって、これらの作品を観ているといろいろと思うものがあると思います。あと、コメンタリーで監督も触れていましたが劇中、ガンダムの曲が使われています。これには驚かされました。コメントを聞いていると「そういう経緯だったのか~」と含み笑いをする内容です。あの場だけ「sakusaku」を見ている感覚になりましたが(笑)

コメンタリーはいいですね~。一度目に観ただけではなかなか気が付かない細部に目が向くようになったり、コメントを聞いて妙に納得したり(ネタがわからない部分もありましたが・・・)。「サトラレ思念波」のときもおもしろかったのですが、この企画は本当に好きです。SF 研のテーブルの上に「サトラレ」の単行本があったのに気が付いたときには「もっと小ネタ探しをしようかな」と思ってしまいました。

さて、最後にタイトルです。これはやはり「ビューティフル・ドリーマー」を思い出さずにはいられません。
Beautiful_Dreamer.jpgSummerTimeMachineBlues02.jpg


投稿者 napier : 02:46 | トラックバック


2006年02月24日

neon

au design project の第 5 弾である neon が都内で発売が開始されたようです。

ITmedia +D モバイル:「neon」が都内で店頭に並ぶ──新規は1万円台後半
http://plusd.itmedia.co.jp/mobile/articles/0602/24/news052.html
neon_01.jpg

ITmedia +D モバイル:完全垂直携帯「neon」、2月24日から発売
http://plusd.itmedia.co.jp/mobile/articles/0602/23/news049.html
neon_02.jpg

ITmedia +D モバイル:写真で見る「neon」
http://plusd.itmedia.co.jp/mobile/articles/0601/19/news102.html
neon_03.jpg

背面に LED があるのが特徴になるのかな。折りたたみケータイにはもう(まだ?)興味はないのでこれも見送りです。気になるメニューのデザイン画像もありますが、なんだか「TRON?」とかって思ってしまうアイコンもありますね。外装だけでなく内面のデザインにもこって欲しいな、と思います。


投稿者 napier : 22:44 | トラックバック


2006年02月23日

サマータイムマシンブルース

SummerTimeMachineBlues.jpg

サマータイムマシンブルース
本広克行監督
2005 年公開

夏に観ようかと思っていたのですが、雑誌で公開を知ったときには既に終了してしまっていて残念な思いをした記憶があります。夏は情報に無頓着すぎていましたね。

本広監督の映画は「サトラレ」「スペーストラベラーズ」が自分的に大ヒットだったため、そっち路線は注目しているつもりでした。逆に、「踊る大捜査線」シリーズは本編ドラマを観ていなかったために乗り遅れてそのままです。MOVIE の 1&2 はビデオで観ましたが、スタートダッシュができなかった分乗り切れなかったですね。今でもそうです。

この作品には「スペトラ」的なオバカなノリを期待していたのですがちょっと期待が勝ちすぎていたようです。映画を見ると大体 5 分くらいでその映画のニオイがわかるのですが、この映画は「ちょっとヤバイかな?」と思って、果たしてそのとおりでした。自分の中で定義づけている映画開始 5 分の「問題提起」という部分があるのですが、ここがダラダラと長いのです。ツカミの部分ですね。以前期待していてこの現象を感じた映画としては「Avalon」が顕著です。

そして本広監督ということで期待していた部分とは別にやはり上野樹里ちゃんです。彼女が出演していなければ DVD の購入までには到らなかっただろうな、と思います。「スペトラ」や「踊る~」の深津絵里さんのように本広監督は私の好きな女優さんをよく起用しているんですよね。「サトラレ」の鈴木京香さんや八千草薫さんもそうです。この辺のキャスト眼にも結構まいっています。

さて映画自体はどうかというと、それでもけっこう楽しめました。本広監督独特のせつなさの部分が弱かったかな、と思いますが…、と書いて気が付きましたが、今回の映画は感情の振幅の幅を少なくしか振られなかったのがこういった感想になった原因かな、と思います。本広監督の醍醐味は、笑いの中にもせつなさを織り交ぜる術に長けている部分、だとちょっと今思いました。

映像はいたって良好で日本的な低コントラストさはありません。夏の強い日差しを浴びた高コントラストな映像が多く、とても好きな映像の部類に入ります。私の映像の好き嫌いに関してはこの辺などをどうぞ。

さて一度観終わったので、次はサトラレ思念波・・・もとい、コメンタリー付きで観てみようと思います。意外と DVD のこの機能は好きですね、特に本広監督作品に関しては。


投稿者 napier : 23:51 | トラックバック


2006年02月22日

2006.02.22

なぜ鬼教師になったのか? 女王の教室 スペシャルドラマで復活 : TV : エンタメ : YOMIURI ONLINE(読売新聞)
http://www.yomiuri.co.jp/entertainment/tv/20060221et03.htm
3月17,18日 21:00 放送とのことです。ちょっと期待。

Yahoo!ニュース - 日刊スポーツ - SMAPガッチャマン22日夜だけ復活
http://headlines.yahoo.co.jp/hl?a=20060222-00000053-nks-ent
Yahoo ニュースでは 22 日の夜となっていますが、NTT 東日本のこちらのページ では「あの人気 CM が、期間限定で復活!(2006年3月31日まで)」とあります。どっちなんでしょう?

Yahoo!ニュース - 産経新聞 - 消えるブラウン管 東芝、国内販売を終了
http://headlines.yahoo.co.jp/hl?a=20060222-00000014-san-bus_all
ブラウン管の絵は好きなんですが仕方ないですね。SED の登場が待たれます。


投稿者 napier : 13:00 | トラックバック


2006年02月21日

Google Server Error

16:57 分頃、突然 Google の検索が使えなくなりました。Google でもこんなことがあるんだ、となんだか不思議な感覚になりました。Google に依存しきっているわけではないのそれほど問題ではありませんが、一強皆弱な状態はやはり問題だな、と思わされます。
google_error.jpg


投稿者 napier : 17:07 | トラックバック


2006年02月20日

坂の上の雲(2)

1 巻と同様、軍人である秋山兄弟のパートに正岡子規のパートが差し込まれるような形で章が構成されています。軍事面の章を読み進んでいると、肩透かしをくらうように正岡子規の章に切り替わります。それまで読んでいたのは帝国主義時代の軍事的な内容なだけに、昂ぶっていた気分をいい意味で弛緩させられます。帝国主義という殺伐とした時代を描くにあたって、その時代の日本の俳句・短歌というものを織り交ぜる手法は、しかし著者が新聞記者であったという事実や正岡子規自身も新聞「日本」に籍をおく身であったということに一つの意味はあるのでしょう。

司馬さんの小説では情報を扱う必要があるために、もう一つの主流(悪い言い方をすれば傍流)が常に存在します。「竜馬がゆく」では竜馬の情報源や小回りとしての寝待ちの藤兵衛、「翔ぶが如く」では評論新聞の海老原穆などがそれにあたると思います。狂言回しと言ってもいいかもしれません。以上 2 つは傍流といってもいいかもしれませんが、「坂の上の雲」においてはやはり秋山兄弟を主流になぞらえて読んでしまっており、正岡子規はもう一つの主流だなぁ、と感じています。しかし情報を回す立場としては存在を無視することができません。

そんな子規はあまり健康体ではなく、セリフ自体もやわらかいため、逆に凄みのある雰囲気を醸し出しています。伊予弁もそれに一役買っていることでしょう。

「人間は友をえらばんといけんぞな。日本には羯南翁がいて、その下には羯南翁に似たひとがたくさんいる。正しくて学問のできた人が多いのじゃが、こういうひとびとをまわりも持つのと、持たんのとでは、一生がちごうてくるぞな。安くても辛抱おし、七十円や八十円くれるからというてそこらへゆくのはおよし。あそばずに本をお読みや。本を読むのにさほど金は要らんものぞな」 (p25~26)

この子規は秋山兄弟の弟、秋山真之と幼少の頃からの付き合いで、真之が海軍兵学校に入るまでは同じ学校に在籍していました。考え方的にも近いと思う部分があり、例えば

「和歌の腐敗というのは」
 と、子規はいう。
「要するに趣向の変化がなかったからである。なぜ趣向の変化がなかったかといえば、純粋な大和言葉ばかり用いたがるから用語が限られてくる。そのせいである。そのくせ、馬、梅、蝶、菊、文といった本来シナからきた漢語を平気でつかっている。それを責めると、これは使いはじめて千年以上になるから大和言葉同然だという。ともかく、日本人が、日本の固有語だけをつかっていたら、日本国はなりたたぬということを歌よみは知らぬ」
「つまりは、運用じゃ。英国の軍艦を買い、ドイツの大砲を買おうとも、その運用が日本人の手でおこなわれ、その運用によって勝てば、その勝利はぜんぶ日本人のものじゃ。ちかごろそのようにおもっている。固陋はいけんぞな」
 と、子規は、熱っぽくいった。 (p319)
 真之は、滞米中からおもいつづけてきたことを、子規に話した。
「どうせ、あしの思うことは海軍のことじゃが。それとおもいあわせながらいま升サンの書きものをよんでいて、きもにこたえるものがあった。升サンは、俳句と短歌というものの既成概念をひっくりかえそうとしている。あしも、それを考えている」
「海軍をひっくり」
「いや、概念をじゃな。たとえば軍艦というものはいちど遠洋航海に出て帰ってくると、船底にかきがらがいっぱいくっついて船足がうんとおちる。人間もおなじで、経験は必要じゃが、経験によってふえる智恵とおなじ分量だけかいがらが頭につく。智恵だけ採ってかきがらを捨てるということは人間にとって大切なことじゃが、老人になればなるほどこれができぬ」
(なにを言いだすのか)
 と、子規は見当がつかぬままに、うれしそうに聴いている。
「人間だけではない。国も古びる、海軍も古びる。かきがらだらけになる。日本の海軍は列強の海軍にくらべると、お話にもならぬほどに若いが、それでも建設されて三十年であり、その間、近代戦を一度経験し、その大経験のおかげで智恵もついたが、しかしかきがらもついた」
(後略) (p324~)

真之の話はこの後も続きます。とても興味深い内容ですので、是非本書を読んでいただきたいです。

さて、この秋山真之がどういった思考を行う人物であったかは、以下の文が適切に示しています。

 まず真之の特徴は、その発想法にあるらしい。その発想法は、物事の要点はなにかということを考える。
 要点の発見法は、過去のあらゆる型を見たり聞いたり調べたることであった。かれの海軍兵学校時代、その期末試験はすべてこの方法で通過したことはすでにのべた。教えられた多くの事項をひとわたり調べ、ついでその重要度の順序を考え、さらにそれに出題教官の出題癖を加味し、あまり重要でないか、もしくは不必要な事項は大胆にきりすてた。精力と時間を要点にそそいだ。
(中略)
「人間の頭に上下などはない。要点をつかむという能力と、不要不急のものはきりすてるという大胆さだけが問題だ」
 と言い、それをさらに説明して、
「従って物事ができる、できぬというのは頭でなく、性格だ」
 ともいった。
 真之の要点把握術は、永年の鍛錬が必要らしい。(p230~231)

以前、「捨てる技術」[1][2]ということに関して書いたことがありますが、それに通じるものがあります。なかなか大胆に切り捨てるというのは難しいんですよね。こういった真之的な思考は、「キャプテン」や「プレイボール」、そして「スラムダンク」など、スポーツマンガではよく見られる光景です。

子規と真之の会話の続きにはアメリカの海軍の話が持ち出されます。真之はアメリカに派遣されていたこともあり、その流れでカリフォルニア州における排日感情に関する記述がありました。(p283)
実質的には 1 ページ程度の記述ですが、ここで以前見た「ヒマラヤ杉に降る雪」を思い出しました。もうだいぶ前に見たため、今調べてみるとこれは第二次世界大戦後の話ですね。全然繋がっていませんでした。しかもカリフォルニア州でなくワシントン州ですし。私の場合はこのように、記憶を大胆に切り捨てるということがなかなかできません。まぁ「ヒマラヤ杉に降る雪」に関しては子役時代の鈴木杏ちゃんが出演しているという繋がりがあるので忘れることはできないのですが:-)

「坂の上の雲」は思っていた上を数段超える面白さで、何故「翔ぶが如く」を読み終わった後すぐ読みはじめなかったのか、と今更ながらに悔やんでしまっています。続きが非常に楽しみです。


投稿者 napier : 22:19 | トラックバック


2006年02月19日

RenderMonkey(3) Perlin Noise

今回はこちらのサイトにある Perin Noise を作ってみます。原理は、例えば以下のサイトで紹介されている情報を参考にしてみます。

Perlin Noise
http://freespace.virgin.net/hugo.elias/models/m_perlin.htm

基本的には周波数と振幅が反比例する関数の加算を行うことになります。周波数が 2 倍になったら振幅を 1/2 に、といった感じです。

RenderMonkey で実装のテストを行いますが、RenderMonkey には最初から NoiseVolume.dds というボリュームノイズのテクスチャファイルがあります。これを使ってしまうと Perlin Noise を作る部分がなくなってしまうので Random3D.dds を Perlin Noise の種として使います。ちなみに NoiseVolume.dds は 128x128x128 、Random3D.dds は 64x64x64 のボリュームテクスチャです。以下の画像は Random3D.dds を 2 倍にして見た目のサイズをあわせています。

NoiseRandom.jpg
fig.1 NoiseVolume.dds と Random3D.dds

さて、まずは Random3D.dds の表示からです。これがリンク先の noise にあたります。説明は Vertex/Fragment Program を参照しながら行うのでとりあえず、シェーダから。

uniform vec3 fvLightPosition;
uniform vec3 fvEyePosition;

uniform float fScale;

varying vec3 Texcoord3d;
varying vec3 ViewDirection;
varying vec3 LightDirection;
varying vec3 Normal;
   
void main( void )
{
    gl_Position = ftransform();
    Texcoord3d    = gl_Vertex.xyz * fScale;
     
    vec4 fvObjectPosition = gl_ModelViewMatrix * gl_Vertex;

    ViewDirection  = fvEyePosition - fvObjectPosition.xyz;
    LightDirection = fvLightPosition - fvObjectPosition.xyz;
    Normal         = gl_NormalMatrix * gl_Normal;
}
fig.2 Vertex Program
uniform vec4 fvSpecular;
uniform vec4 fvDiffuse;
uniform float fSpecularPower;

uniform bool bMono;

uniform float fNoiseSel;
uniform vec4 fvNoise1Color;
uniform vec4 fvNoise2Color;
uniform vec4 fvNoise2Amb;
uniform vec4 fvNoise3Color;
uniform vec4 fvNoise3Amb;
uniform vec4 fvNoise4Color;
uniform vec4 fvNoise4Amb;

uniform sampler3D volumeMap;

varying vec3 Texcoord3d;
varying vec3 ViewDirection;
varying vec3 LightDirection;
varying vec3 Normal;

float amplitude( float octave )
{
    return 0.5/octave;
}

vec4 perlin_noise( float octave )
{
    return texture3D( volumeMap, Texcoord3d*octave )*amplitude(octave);
}

vec4 zero_center_perlin_noise( float octave )
{
    return perlin_noise( octave )-amplitude(octave)*0.5;
}

void main( void )
{
    vec3  fvLightDirection = normalize( LightDirection );
    vec3  fvNormal         = normalize( Normal );
    float fNDotL           = dot( fvNormal, fvLightDirection ); 
    
    vec3  fvReflection     = normalize( ( ( 2.0 * fvNormal ) * fNDotL ) - fvLightDirection ); 
    vec3  fvViewDirection  = normalize( ViewDirection );
    float fRDotV           = max( 0.0, dot( fvReflection, fvViewDirection ) );
    
    vec4  fvBaseColor;
    vec4  fvAmbient = vec4(0.0, 0.0, 0.0, 0.0);
    
    if( fNoiseSel < 0.25 )
    {
        fvBaseColor = texture3D( volumeMap, Texcoord3d );
        if( !bMono )
            fvBaseColor *= fvNoise1Color;
    }
    else if( fNoiseSel < 0.5 )
    {
        fvBaseColor = perlin_noise( 1.0 )
                    + perlin_noise( 2.0 )
                    + perlin_noise( 4.0 )
                    + perlin_noise( 8.0 );
        if( !bMono )
        {
            fvBaseColor *= fvNoise2Color;
            fvAmbient = fvNoise2Amb;
        }
    }
    else if( fNoiseSel < 0.75 )
    {
        fvBaseColor = zero_center_perlin_noise( 1.0 )
                    + zero_center_perlin_noise( 2.0 )
                    + zero_center_perlin_noise( 4.0 )
                    + zero_center_perlin_noise( 8.0 );
        fvBaseColor = abs(fvBaseColor)+amplitude( 1.0 )/2.0;
        if( !bMono )
        {
            fvBaseColor = 1.0-fvBaseColor;
            fvBaseColor *= fvNoise3Color;
            fvAmbient = fvNoise3Amb;
        }
    }
    else
    {
        fvBaseColor = perlin_noise( 1.0 )
                    + perlin_noise( 2.0 )
                    + perlin_noise( 4.0 )
                    + perlin_noise( 8.0 );
        float ring = fract(20.0 * Texcoord3d.x + fvBaseColor.x);
        ring *= 4.0 * (1.0 - ring);
        ring = pow(ring, 2.0);
        if( !bMono )
            fvBaseColor = mix(fvNoise4Amb, fvNoise4Color, ring);
        else
            fvBaseColor = vec4(ring,ring,ring,ring);
    }
    
    vec4  fvTotalAmbient   = fvAmbient; 
    vec4  fvTotalDiffuse   = fvDiffuse * fNDotL * fvBaseColor; 
    vec4  fvTotalSpecular  = fvSpecular * ( pow( fRDotV, fSpecularPower ) );
    
    gl_FragColor = ( fvTotalAmbient + fvTotalDiffuse + fvTotalSpecular );
}
fig.3 Fragment Program

ノイズは 4 種類あるため、変数をスイッチとして使っています。fNoiseSel が 0.25 区間ごとに noise, sum 1/f(noise), sum1/f(|noise|), sin(x + sum 1/f(|noise|) をそれぞれあらわすことにしています(厳密には 4 つめは sin 関数は使っていませんがリンク先の表記を用いてます)。またノイズのみのパターンとするかディフューズカラーをつけるかを bMono で選択できるようにしています。モデルに関しては Shpere, Cube, Teapot から選択が可能です。このプログラムからできるノイズは以下の様になります(これら画像はノイズパターンとディフューズカラーをつけた 2 種類を後でまとめたもので、実際にこのような絵が出るようには作っていません)。

Noise1.jpgNoise4.jpg
Noise2.jpgNoise3.jpg
fig.4 それぞれの noise

Vertex Program の方は Textured Phong ほぼそのままで、Texcoord3d に対して fScale をかけた gl_Vertex を格納する部分が追加してあります。これは他の RenderMonkey のサンプルでも多用されている手法で、前回説明したモデルの大きさにテクスチャ座標が関係するため、外部から調整できるようにしています。

そして Perlin Noise の要は Fragment Program です。{ fNoiseSel | [0, 0.25) } では単純に texture3D( volumeMap, Texcoord3d ) によって Random3D.dds をサンプリングしています。ここはテクスチャのフィルタリング GL_LINEAR により線形補間されたサンプリングが行われています。

区間 { fNoiseSel | [0.25, 0.5) } では sum 1/f(noise) を作っています。ここでは単純に 4 オクターブ分を加算しています。オクターブが上がる毎に周波数は 2 倍にし、振幅は 1/2 にしています。振幅の 1/2 は単純でわかりやすいですが、周波数が 2 倍はテクスチャ座標が 2 倍になったと考えています。例えば [0.0, 1.0] 区間のテクスチャ座標があった場合、これを [0.0, 2.0] 区間であると見立てることによって周波数 2 倍を考えています。なのでリピートした乱数になってしまっています。

区間 { fNoiseSel | [0.5, 0.75) } は sum 1/f(|noise|) です。テクスチャの特性上サンプリングされる値は [0.0, 1.0] であり、perlin_noise() 関数ではオクターブ毎に [0.0, 0.5], [0.0, 0.25], [0.0, 0.125], ... の値を返しています。これから [-0.25, 0.25], [-0.125, 0.125], ... を返す zero_center_perlin_noise() を使うようにします。ここでも 4 オクターブ分を加算して絶対値をとり [0.0 1.0] の範囲に戻しています。ディフューズカラーにするときにはこのままではうまくカラーが作れなかったので 1.0-the_noise としてディフューズカラーをかけています(それ以前に何か誤解がありそう・・・)。

最後は、リンク先では sin(x + sum 1/f(|noise|) と表記されていますが sin を使ってうまく実現できなかったため、fract などを使ってそれっぽくしてみました。ベースは Wood.rfx です。

というわけで RenderMonkey の .rtx ファイルはこれです。
_test_perlin_noise.lzh
これだけで疲れてしまった。。エントリの作り方を見直そう。。


投稿者 napier : 23:55 | トラックバック


2006年02月18日

奇跡の人

TheMiracleWorker.jpg

奇跡の人
アーサー・ペン監督
1962年公開
白黒

衛星映画劇場で放送しているのをチャンネルを替えているときに偶然見つけ、字幕の「サリバン」に目が止まった瞬間に見ることを決めてしまっていました。話自体は人から聞いたり番宣などの記事で知っており、有名な "water!" も「オレンジデイズ」や人づての話で知ってはいましたが、伝記や映画を見たことがなかったためオリジナルは本当に初めてです。そのシーンにはもう涙でしたね。

サリバンのいうセリフは一々自分の心にも突き刺さります。「同情してペットのように扱っている」や「考えのない追従は盲目です」など、諦めを優しさと履き違えている部分をえぐり出します。そして劇中でサリバンもいうように、例え教師であっても自分に先生が必要であると悩むことがあり、あのサリバンでさえそうであったのだと思わされます。

私がヘレン・ケラーを思い出すときに必ず一緒に思い出すのは中村久子さんです。これは「知ってるつもり?!」を見た影響なのですが、こちらのサイトの情報によると 1999.11.21 の放送だったようです。今思い出しても「知ってるつもり?!」にはいろいろと教えられたと思います。最近はこの手の番組がなくなったのがとても悲しいです。

「奇跡の人」を観ているときに思ったのは、家庭教師というつながりで「The Sound of Music」でした。西欧における家庭教師のあり方がどこか共通していると感じたからだと思います。

・・・とここまで書いて、関連する項目を Wiki で読んでいました。

初めて知ったことに「奇跡の人」とはアン・サリバンを指すのだそうです。原題は「The Miracle Worker」で、これを知れば一目瞭然です。邦題のもたらす曖昧さから 奇跡の人 = ヘレン・ケラー という誤解が浸透してしまったようです。私もそのうちの一人でした。また映画の内容として「奇跡の人」と「The Sound of Music」のどちらもが、演出によって現実とは離れた内容になっている箇所があるとのことです。

「奇跡の人」では例えば井戸の水に触れて「ウォワァー」とヘレンが叫ぶシーン。サリバンの手記「ヘレン・ケラーはどう教育されたか」によると、ヘレンにかかる水とそのときに綴った w-a-t-e-r の指文字によって、ヘレンに言葉の認識が生まれたようだ、ということになるようです。ここではヘレンは言葉は発していません。

また「The Sound of Music」においても、マリアの著作の映画化と関連権利のすべてを売ってしまったため、夫であるゲオルグの書き方を改めてくれと脚本家に要求しても、結局はとおらなかったようです。どういった部分であったかは詳しく調べてはいませんが、厳格でありすぎる部分かな、と思っていしまいます。

映画という娯楽を提供する立場としては如何に興味深く作るかが重要であり、興業の成否が常に問われます。伝記ものの映画を作る難しさを考えさせられます。しかしこの「奇跡の人」の演出は、その後のヘレンの人生の幕開けであり映画のクライマックスでもあるこのシーンで、言葉という新しい認識をサリバンが教えヘレンが悟った記念すべき出来事を、観客に雄弁に伝えています。現実的にはヘレンは声に出して「ウォワァー」とは言わなかったのでしょうが、彼女の心の中は言葉であふれかえっていたことでしょう。それを演出するにあたってヘレンに叫ばせたことは、誤解を生む原因となったかもしれませんが、実際を知った上ではヘレンの心の声を代弁していると十分に感じることができます。


投稿者 napier : 23:02 | トラックバック


甘党と辛党

P2180002.JPG

トン汁を作ったときに買ったごぼうがあまっていたのできんぴらごぼうを作ってみました。

概ね味付けは成功したのですが、最後にいれた赤唐辛子が多すぎて滅っ茶辛い味になってしまいました。おかげさまでお酒が進みます(←これが言いたかったわけではありません:-)

ところで、甘党と辛党という言葉がありますが、この言葉は誤用されがちな言葉に挙げらると思います。友人と話していて「甘党か辛党かっていったらどっち?」「ん~、辛いのは苦手で、やっぱり甘党かな~」なんて会話になったりすることがありました。最近の韓流ブームも手伝って、辛いものが好き = 辛党 な認識の人が多くなったように感じます。

正しくは、

  • 甘党 : 酒よりも、甘いものを好む人
  • 辛党 : 菓子などの甘い物よりも酒類の好きな人

のように、辛党とは辛いものが好きな意味ではありません。しかし、辛いものを食べると飲み物が欲しくなるのは現実であり、その飲み物は酒であることが往々にして多いことは確かです。というわけで酒好きに対する辛党という言葉は、言い得て妙だなぁと思いました。しかし、このきんぴらは辛い・・・。


投稿者 napier : 13:51 | トラックバック


2006年02月17日

Winny 開発者の裁判に村井教授が証人として出廷

Internet Watch に Winny 裁判の公判記事が掲載されています。

Winny開発者の裁判に村井教授が証人として出廷、検察側の主張に異議
http://internet.watch.impress.co.jp/cda/news/2006/02/16/10925.html

またスラッシュドットジャパンにもこれに関してのエントリが作られています。

村井純氏がWinny裁判の弁護側証人として出廷
http://slashdot.jp/articles/06/02/17/0628252.shtml

村井さんと Winny のつながりに関しては、以前取り上げたこのエントリで知ってはいました。しかし裁判の弁護側における証人として出廷するという展開は「白い巨塔」を思い起こさせます。

うまくは説明できませんし裁判を傍聴したわけではなく Internet Watch の記事を読んでの感想でしかありませんが、その道の専門家の発言はあくまでも技術にのみ言及できるものであって、それが社会的にどういった影響を与えるかということに関してはまた別の問題であるということを共通した感想として持ちました。

しかしときに技術は社会を変革するに足る十分な力を持ち、しかしその技術をコントロールするということに関して人類は常に後手に回っています。重大な問題としては核に代表されるでしょうし、最近の技術者における卑近な問題としては 404 特許などが代表されると思います。


投稿者 napier : 23:41 | トラックバック


スウィーツ

Engadget Japanese で紹介されていた食品加工業のエントリを見て久しぶりに talby メニューを作ろうかと思ったのですが、やはり小さすぎてうまくいきませんでした。最近は新しいメニューが登録されることもないようで、私の talby も 1 年前に作ったメニューのままです。Flash の開発環境があればちょっとはやる気にはなるのだろうと思いますが・・・、あってもやらなかったり。

オリジナルはこちらです。
http://legnangel.livejournal.com/564026.html
こういったものが作れる人ってすごいです。

Sweets01.jpgSweets02.jpg

(追記)
オリジナルはこちらのようです。
http://mapage.noos.fr/minimiam/go.htm


投稿者 napier : 23:00 | トラックバック


2006年02月15日

Firefox のメモリ使用量

最近メモリの増設をしたばかりですが、この遠因は Firefox にあったようです。

Firefoxのメモリ大量消費は『仕様』、だが回避方法あり
http://slashdot.jp/articles/06/02/15/0756254.shtml

このときは個々のプロセスのメモリ使用量に関してはチェックしていなかったのですが「100MB~200MB のメモリ使用量を Firefox が占有・・・」などという事態が起こっていたとすると、流石に 256MB では厳しいよな、と思います。


投稿者 napier : 21:08 | トラックバック


February 2006 DirectX SDK

DirectX SDK の定期バージョンアップがおこわなれました。
February 2006 DirectX SDK
http://www.microsoft.com/japan/msdn/directx/downloads.aspx

  • Direct3D 10 Technology Preview
  • D3DX9
  • Microsoft Cross-Platform Audio Creation Tool (XACT)
  • Windows Vista Game Explorer (Beta)
  • ツール

ということで、DX9 から徐々に比重が DX10(Vista) に移ってきているのがわかります。DX9 に関しては UVAtlas というのが更新されたようですが、google で日本で検索すると 14 件・・・ううむ。web 全体でも 312 件です。


投稿者 napier : 00:29 | トラックバック


2006年02月13日

疲労~

P2130001.JPG

土日の疲れがとれず、週の頭から疲労状態です。今年は買ったビールは自宅で飲まないようにしているので久々にウォッカとジンジャーエールでモスコです、ライムが足りませんが(笑) そう、それに加えて氷もなしです。超即席カクテルです。

ウォッカは随分久しぶりに買いました。一時期はジンにはまっていたこともありましたがここ数年はウォッカですね。近所のショップ 99 でジンジャーエールが 1 リットル 100 円で買えるので非常に重宝しています。それでも一番飲んでいたのは 1 年前後前で、SOCOM2 をしているときはずっと飲みながらやっていました。あ、FF のときもそうだったかな・・・。

最近思うことに、触れる情報が偏り気味だなぁ、というのがあります。仕事帰りに飲むこともほとんどなくなってしまったこともあり、交わす会話も仕事中心になりがちです。ドラマやニュースを見たり小説を読んだりしてはいますが、生の人間の声、とでもいうべきクチコミ的な情報や、感情を爆発させるようなケンカなどをする機会がほとんどないなぁ、と思っています。ケンカはま微妙ですが。

今日は飲んで久々に早めに寝ます。今年は風邪以来かな。


投稿者 napier : 22:06 | トラックバック


2006年02月12日

RD-XS38(3) 番組ナビ お気に入り

この機能すごっ。とりあえずお気に入り設定に司馬遼太郎を入れておいたのですが、それが今日ヒットしていました。番組は「ザ・ノンフィクション 『司馬遼太郎からの手紙』」です。自分で番組表を見ていたらきっと気が付かなかった番組です。これ、すごいわ。。。

残念ながら上野樹里ちゃんや成海璃子ちゃんはまだヒットしていません:-) しかし、、もっと登録してみよう。おもしろ!


投稿者 napier : 22:09 | トラックバック


RenderMonkey(2) テクスチャパラメータ

新規にワークスペースを作ってみます。これはとても簡単で、RenderMonkey を立ち上げた後に [Effect Workspace で右クリック] → [Add Default Effect] → [DirectX/OpenGL] でそれぞれ選択が可能です。この雛型を選択するだけでそのまま動作するエフェクトが作成されます。

AddDefaultEffect.jpg
fig.1 Add Default Effect

例えば Textured Bump を選択します。デフォルト状態ではモデルは Sphere.3ds が選択されています[fig.2(a)]。モデルは前回示したように簡単に変更することができます[fig.2(b)]。

model_shpere.jpg
fig.2 (a) モデル変更前

model_teapot.jpg
fig.2 (b) モデル変更後

また Vertex Program / Fragment Program も自動的に生成されているので、あとは好きなように編集をすることが可能です。

uniform vec3 fvLightPosition;
uniform vec3 fvEyePosition;

varying vec2 Texcoord;
varying vec3 ViewDirection;
varying vec3 LightDirection;
   
attribute vec3 rm_Binormal;
attribute vec3 rm_Tangent;
   
void main( void )
{
   gl_Position = ftransform();
   Texcoord    = gl_MultiTexCoord0.xy;
    
   vec4 fvObjectPosition = gl_ModelViewMatrix * gl_Vertex;
   
   vec3 fvViewDirection  = fvEyePosition - fvObjectPosition.xyz;
   vec3 fvLightDirection = fvLightPosition - fvObjectPosition.xyz;
     
   vec3 fvNormal         = gl_NormalMatrix * gl_Normal;
   vec3 fvBinormal       = gl_NormalMatrix * rm_Binormal;
   vec3 fvTangent        = gl_NormalMatrix * rm_Tangent;
      
   ViewDirection.x  = dot( fvTangent, fvViewDirection );
   ViewDirection.y  = dot( fvBinormal, fvViewDirection );
   ViewDirection.z  = dot( fvNormal, fvViewDirection );
   
   LightDirection.x  = dot( fvTangent, fvLightDirection.xyz );
   LightDirection.y  = dot( fvBinormal, fvLightDirection.xyz );
   LightDirection.z  = dot( fvNormal, fvLightDirection.xyz );
   
}
fig.3 Vertex Program
uniform vec4 fvAmbient;
uniform vec4 fvSpecular;
uniform vec4 fvDiffuse;
uniform float fSpecularPower;

uniform sampler2D baseMap;
uniform sampler2D bumpMap;

varying vec2 Texcoord;
varying vec3 ViewDirection;
varying vec3 LightDirection;

void main( void )
{
   vec3  fvLightDirection = normalize( LightDirection );
   vec3  fvNormal         = normalize( ( texture2D( bumpMap, Texcoord ).xyz * 2.0 ) - 1.0 );
   float fNDotL           = dot( fvNormal, fvLightDirection ); 
   
   vec3  fvReflection     = normalize( ( ( 2.0 * fvNormal ) * fNDotL ) - fvLightDirection ); 
   vec3  fvViewDirection  = normalize( ViewDirection );
   float fRDotV           = max( 0.0, dot( fvReflection, fvViewDirection ) );
   
   vec4  fvBaseColor      = texture2D( baseMap, Texcoord );
   
   vec4  fvTotalAmbient   = fvAmbient * fvBaseColor; 
   vec4  fvTotalDiffuse   = fvDiffuse * fNDotL * fvBaseColor; 
   vec4  fvTotalSpecular  = fvSpecular * ( pow( fRDotV, fSpecularPower ) );
  
   gl_FragColor = ( fvTotalAmbient + fvTotalDiffuse + fvTotalSpecular );
       
}
fig.4 Fragment Program

これだけでも shader プログラムの取り掛かりとしては非常に敷居が低くなっています。

RenderMonkey 以外にも shader プログラムのコードを自動生成してくるソフトとし ShaderGen があります[fig.5]。このソフトは OpenGL の固定機能を OpenGL Shading Language に置き換えてくれるもので、従来の OpenGL の固定機能を知っている人が shader プログラムを始める場合には有用なソフトだと思います。

ShaderGen-3.0.jpg
fig.5 ShaderGen 3.0

さてここまでは前フリで、今回は基本となるテクスチャの扱いを簡単にまとめます。ワークスペースは新規に Screen-Aligned Quad を選択します[fig.6]。

Screen-AlignedQuad.jpg
fig.6 Screen-Aligned Quad

ここでテクスチャを base.tga から ati.tga に変更します。これはテクスチャの向きを確認するためです。base.tga から ati.tga に変更するとテクスチャの向きが上下が逆になっていることがわかります。これを直す方法はいろいろとありますが、ここでは Vertex Program を変更します。

varying vec2  texCoord;

void main(void)
{
   gl_Position = vec4( gl_Vertex.xy, 0.0, 1.0 );
   gl_Position = sign( gl_Position );
    
   // Texture coordinate for screen aligned (in correct range):
//   texCoord = (vec2( gl_Position.x, - gl_Position.y ) + vec2( 1.0 ) ) / vec2( 2.0 );
   texCoord = (vec2( gl_Position.x, gl_Position.y ) + vec2( 1.0 ) ) / vec2( 2.0 );
}
fig.7 Vertex Program の変更

また、これだけでは何なので Fragment Program も変更してみます。

uniform sampler2D Texture0;

varying vec2 texCoord;

void main(void)
{
//    gl_FragColor = texture2D( Texture0, texCoord );
    gl_FragColor = texture2D( Texture0, texCoord*2.0 );
}
fig.8 Fragment Program の変更

ここまでの変更で fig.9 の状態になっているはずです。

Screen-AlignedQuad_01.jpg
fig.9 texture, Vertex Program, Fragment Program 変更

さてここからが本題で、今回注目するのは Texture Parameter です。これは Texture0 をダブルクリックかマウス右クリックで Edit を選択します[fig.10]。

Screen-AlignedQuad_02.jpg
fig.10 Texture State Editor の選択

ここでは glTexParam{i|f|v}, glTexEnv{i|f|v} に関連するパラメータの設定を行うことができます。デフォルトでは GL_TextureMinify = GL_LINEAR_MIPMAP_LINEAR, GL_TextureMagnify = GL_LINEAR が設定されています[fig.11]。

Screen-AlignedQuad_03.jpg
fig.11 Texture State Editor デフォルト値

さてここで Fragment Program に戻り、以下の様に編集してみます[fig.12]。

uniform sampler2D Texture0;

varying vec2 texCoord;

void main(void)
{
//    gl_FragColor = texture2D( Texture0, texCoord );
    gl_FragColor = texture2D( Texture0, fract(texCoord*2.0) );
}
fig.12 Fragment Program の変更 2

この変更を行うと表示されているテクスチャの中央にスジが入るのが確認できると思います[fig.13]。

Screen-AlignedQuad_04.jpg
fig.13 スジが現れた状態

最初に RenderMonkey を使ったとき、何故テクスチャ座標の算出に fract, floor などを使うとこのスジが現れるのかがわかりませんでした。そのときにはまだ Texture State Editor の出し方がわからなかったため RenderMonkey のバグかとも思いましたが、実際にはこれは GL_TextureMinify が影響しています。というわけで Texture State Editor に戻り GL_TextureMinify を GL_LINEAR に変更します[fig.14]。

Screen-AlignedQuad_05.jpg
fig.14 GL_TextureMinify の変更

この変更により GL_LINEAR_MIPMAP_LINEAR の効果は得られなくなりますがテスクチャのスジは消せます。MIPMAP 画像が見れないので RenderMonkey がどんな MIPMAP を生成しているか謎ですが、うまく MIPMAP のレベル調整ができれば実際のプログラム上では問題はないでしょう。

私はこの問題にはまり「RenderMonkey の fract, floor ってバグってる?」と思いいろいろと検索をしてしました。結果的に web 上では情報が見つからなかったのですが、この問題のおかげでちょっとは RenderMonkey に慣れることができたな、と思います。

また、これ以外のパラメータも変更してみて下さい。特に fract を外して GL_TextureWrap{S|T|R} を変更すると普通に REPEAT/CLAMP 系の動作を確認することができます。


投稿者 napier : 19:08 | トラックバック


サブカテゴリー

CG に関してサブカテゴリーを作ってみました。とりあえず独立できそうなのは gnuplot ですが、リンクなどの問題もありそうなので CG にもおいておきます。今後はサブカテゴリーだけに記述すると思います(gnuplot の続きを書くかどうか謎ですが・・・)。今は RenderMonkey で遊んでいるのでこっちもサブカテゴリー化してみました。

こうやってサブカテゴリー別に分けてみると更にいろいろと分類したくなりますね。blog カテゴリがごちゃごちゃなのでこの辺かなぁ、と思います。


投稿者 napier : 03:21 | トラックバック


RenderMonkey(1) モデルデータとシェーダプログラム

RenderMonkey 付属のモデルデータは 3ds Max の .3ds ファイルが多くあります。どういった形状なのかを確認するためには Max などのモデラソフトが必要ですが、ここでは簡単に Metasequoia を利用してみます。Metasequoia にはシェアウェア版と無償版がありますが、無償版では .3ds ファイルは開けないようなのでシェアウェア版を使います。Metasequoia を使う理由は形状と大きさを見るためです。

RnderMonkey_Metasequoia.jpg
fig.1 RenderMonkey1.6 と Metasequoia2.3.4

このキャプチャ画像では Metasequoia は [表示] → [グリッドの設定] でメッシュの大きさを 100 にしています。ここで確認できるように RenderMonkey 付属のデータは float で 100.0 前後のデータであることがわかります。

先を急ぐ前に Metasequoia での .3ds ファイルのロードに関して。標準で .3ds をオープンしようとすると Metasequoia は Max の座標軸で開こうとします[fig.2(a)]。これを OpenGL の座標にあわせるために 3D Atelier を選択します[fig.2(b)(c)]。[fig.1] は 3D Atelier の座標軸で開いた状態です。ここでの RenderMonkey は Anisotropic.rfx を開いており、そのときの視点に関する情報は Camera ダイアログに表示されています。どちらとも OpenGL の座標系で統一されていることが確認できます。

open_3DStudio.jpgopen_axis.jpgopen_3DAtelier.jpg
fig.2(a) 3dsMax 座標軸fig.2(b) 座標軸選択fig.2(c) 3D Atelier 座標軸

.3ds ファイルが確認できるようになったところで RenderMonkey 付属のデータの確認をしてみます[fig.3]。大体 100.0 程度のモデルであることがわかります。この大きさは shader を記述する際に必要な数値となります。

RnderMonkey_models.jpg
fig.3 主なモデルデータ

注意点として、ここで示した 100.0 前後のモデル以外に 1.0 前後のモデルもあります。cube で言えば Cube.3ds は 2.0 で TexturedCube.3ds は 100.0 前後の大きさです。

さて、モデルの大きさと shader に関してだけ記述しておきます。cube を例にとり、まずモデルを読み込みます。大きさの違いを見るために Cube.3ds と TexturedCube.3ds を使います[fig.4]。

AddModel.jpg
fig.4 モデルの追加

ここで shader との関連を見るために、Vertex Program と Fragment Program を次のように修正します。変数などはそのままにしておきます。

uniform float noiseRate;
uniform mat4 view_proj_matrix;


attribute vec3 rm_Binormal;
attribute vec3 rm_Tangent;

varying vec3 vNormal;
varying vec3 vTangent;
varying vec3 vBinormal;
varying vec3 vViewVec;
varying vec3 vPos;

void main(void)
{
   gl_Position = ftransform();
   vPos      = gl_Vertex.xyz * noiseRate;
/*
   vTangent  = gl_NormalMatrix * rm_Tangent;
   vNormal   = gl_NormalMatrix * gl_Normal;
   vBinormal = gl_NormalMatrix * rm_Binormal;
    
   vViewVec.xyz    = vec3(  gl_ModelViewMatrix * gl_Vertex );
   // OpenGL has a different handedness, so we need to flip the z.
   vViewVec.z  = -vViewVec.z;
   
   vPos      = gl_Vertex.xyz * noiseRate;
*/   
}
fig.5 Vertex Program
uniform sampler3D Noise;
uniform vec4 lightDir;
uniform vec4 gloss;
uniform vec4 color;
uniform float noiseScale;

varying vec3 vNormal;
varying vec3 vTangent;
varying vec3 vBinormal;
varying vec3 vViewVec;
varying vec3 vPos;


varying vec3 pos;void main(void)
{
   gl_FragColor = texture3D(Noise, vPos);
/*
   vec3 viewVec = normalize(vViewVec);
   vec3 oglLightDir = vec3(lightDir.x, lightDir.y, -lightDir.z);

   // Grab an angle to rotate the tangent around the normal
   // This is done to create a slightly bumpy feeling
   float angle = noiseScale * (texture3D(Noise, vPos) - 0.5).x;

   // Our angle is within the [-PI, PI] range and we need both
   // the sine and cosine. Perfect for the sincos function,
   // which will save us some hardware instructions over separate
   // sin and cos calls.
   float cosA, sinA;
   sinA = sin(angle);
   cosA = cos(angle);

   // Rotate tangent around the normal
   vec3 tang =  sinA * vTangent + cosA * vBinormal;

   // Do the anisotropic lighting
   float diffuse = clamp( dot( oglLightDir.xyz, vNormal ), 0.0, 1.0 );
   float cs = -dot(viewVec, tang);
   float sn = sqrt(1.0 - cs * cs);
   float cl =  dot(oglLightDir.xyz, tang);
   float sl = sqrt(1.0 - cl * cl);
   float specular = pow( clamp( (cs * cl + sn * sl), 0.0, 1.0 ), 32.0);

   // Output the results
   gl_FragColor = diffuse * color + gloss * specular;
*/    
}
fig.6 Fragment Program

あとはリファレンスノードを Cube もしくは TexturedCube に変更します。ここでは Cube にしてみます[fig.7]。

ChangeReferenceNode.jpg
fig.7 リファレンスノード変更

Cube はサイズが 2.0 なので視点位置を変更します。また、これにあわせて noiseRate の値を変更してみます[fig.8]。Vertex Program で設定した vPos により頂点座標がそのままテクスチャ座標になっているので、ここではテクスチャ座標が [-1, 1] になり 2 回リピートしているのがわかります。

ChangeNoiseRate.jpg
fig.8 noiseRate 変更

再度リファレンスノードを変更し、今度は TexturedCube にしてみると、モデルの大きさと shader パラメータの関連がわかると思います[fig.9]。

TexturedCube.jpg
fig.9 リファレンスノードを TexturedCube に変更

意外と簡単ですが、やはりモデルデータの大きさを RenderMonkey だけでわかれば楽だったろうに、と思いますね。


投稿者 napier : 01:12 | トラックバック


2006年02月11日

日亜化学、404 特許を放棄

LED特許権を放棄へ 日亜化学、中村氏が開発
http://headlines.yahoo.co.jp/hl?a=20060211-00000010-kyodo-soci

日亜化学、青色LEDの中核特許を放棄へ
http://www.nikkei.co.jp/news/sangyo/20060211AT1D1004U10022006.html

青色LED特許、日亜化学が放棄へ 中村氏発明
http://www.asahi.com/business/update/0211/010.html

放棄される特許は窒化ガリウム系結晶の製造方法に関する 404 特許と呼ばれるもので、現在は LED 製造の技術革新が進み 404 特許に基づく製造方法はほとんど使われていない、からだそうです。正直、まだ蒸し返すか、って感じです。

青色 LED に関しては以下などをどうぞ。

エンジニアはジャパニーズドリームを見よ
http://next.rikunabi.com/tech/docs/ct_s03500.jsp?p=lwk021&f=cnet&vos=nteccnta003101050223&__m=1


投稿者 napier : 11:39 | トラックバック


2006年02月10日

ForceWare 81.98

2.7 付けで GeForce 系の新しいドライバがリリースされました。
http://www.nvidia.com/object/winxp_2k_81.98.html
ForceWare 81.98 Release Date: February 7, 2006
リリースノートはこちら

2005.12.21 に同じバージョン番号でドライバがリリースされていたので紛らわしいですね・・・。


投稿者 napier : 00:37 | トラックバック


2006年02月07日

2006.02.07

Opera 9でもBitTorrent統合へ
http://www.itmedia.co.jp/news/articles/0602/07/news009.html
以前 ITmedia の記事になっていた BitTorrent です。そのときの記事はこちら。

開発者が語る“ポストWinny” (2006.01.30)
http://www.itmedia.co.jp/news/articles/0601/30/news047.html
ここで紹介されていたのを思い出しました。BitTorrent に関しては簡潔に説明された Wiki があります。

BitTorrent
http://ja.wikipedia.org/wiki/BitTorrent

また、Opera と FireFox の BitTorrent サポートに関する記事は、昨年の夏には出ていたようです。

OperaとFirefox、それぞれBitTorrentをサポートへ (2005.07.08)
http://japan.cnet.com/news/media/story/0,2000047715,20085161,00.htm

FireFox の対応に関しては、スラドでもエントリになっていました。

Firefoxサイドバーで使えるBitTorrent (2005.12.29)
http://www.slashdot.jp/article.pl?sid=05/12/29/0040225&from=rss
あまりコメントがついていないところを見ると、まだそれ程日本では認知度はないのかな、と思います。


投稿者 napier : 12:36 | トラックバック


2006年02月05日

RD-XS38(2)

P2050002.JPG

というわけで購入してしまいました。今現役で稼動しているのは RD-XS40 で、これは 2003.01 に購入したと思うのでそれでももう 3 年間稼動していることになります。意外と長いなぁ、というのが実感です。

この RD-XS38 は東芝機ということもあり W 録が可能です。また ether net 接続が可能で、「ネット de ダビング」や「メール録画予約」などを行うことができます。今まで(今でも)使っている RD-XS40 もメール予約が可能なのですが、大抵はドラマで録画が埋まっているので今まで使ったことはありませんでした。しかしこの RD-XS38 は W 録が可能ということもあり、これで安心してネット経由での録画を行うことができます。3 年目にしてやっとこの機能を使うことになります。

RD-XS38 には更にいろいろな機能があるようで、「おまかせ自動録画キーワード」や「おすすめ番組表機能」などがあるようです。「全国 RD ユーザ予約ランキング」などは面白そうですね。早く操作に慣れなくては。リモコンが XS40 と XS38 ではだいぶ変わっていて、これにはかなり戸惑っています。


投稿者 napier : 16:22 | トラックバック


サーチ・テンプレート

Movable Type の検索を使ったときに表示されるページのテンプレートが見つけられなくてずっと気になっていたのですが、やっとわかりました。最初は「Movable Type 検索 テンプレート」で検索してここを見つけたのですがパッとはわからず、続いて「Movable Type サーチ・テンプレート」で検索してみたところ、こちらのサイトを発見しました。

SABlog #043 MT3.1 検索/サーチのテンプレート
http://www.sabii.com/blog/archives/2004/11/043_mt31.php

どうやら修正すべきファイルは search_templates/default.tmpl で、これを直接編集すればいいとのこと。10 ヶ月間ほったらかしだった検索結果ページに、やっとタイトルと背景画像を表示することができました。やる気にならないと真剣になって探さないものですね。


投稿者 napier : 13:54 | トラックバック


2006年02月04日

坂の上の雲(1)

意外に、というのも失礼な話なのですが、「竜馬がゆく」や「翔ぶが如く」のように私が知っている有名人が出ているという先入観が無かった分期待もしていなかったのですがとても興味深く読むことができました。本編を読む前の基礎知識は裏表紙にある以下の紹介だけでした。

明治維新をとげ、近代国家の仲間入りをした日本は、息せき切って先進国に追いつこうとしていた。この時期を生きた四国松山出身の三人の男達──日露戦争においてコサック騎兵を破った秋山好古、日本海海戦の参謀秋山真之兄弟と文学の世界に巨大な足跡を遺した正岡子規を中心に、昂揚の時代・明治の群像を描く長篇小説全八巻

この中で唯一聴いたことのある人物は正岡子規で、しかし思い出すのは国文学の人、程度のものです。あとは国語の教科書に載っていた写真が髪は無くて横顔だったよなぁ、くらいのものです。

1 巻で興味深い文章に以下があります。

 真之は、くびをかしげた。ものごとの追求力は、子規は常人よりすぐれている。
「しかし、考えを結晶させる力が乏しいようだな」
 と、真之はいった。真之にいわせると、「考え」というものは液体か気体で、要するにとりとめがない。その液体か気体に論理という強力な触媒をあたえて固体にし、しかも結晶化する力が、思想家、哲学者といわれる者の力である。その力がなければ、その方面にはすすめない。(p187)

これはうまい例えだな、と感心しました。多分、これは日常生活における全てにつうじることだと思います。その道を突き詰めていき、仕事にしている人も多いでしょう。勿論、この結晶化の過程が重要であり、一度結晶化してしまったものはそこで停滞をおこします。その停滞もまた問題であり、そのことに関してはここで触れています。

また、いつもの司馬節も健在です。

 極端な言い方をすれば、メッケルが日露戦争までの日本陸軍の骨格をつくりあげたといえるかもしれない。メッケル自身、後年それをひそかに自負していたようであり、日露戦争の開戦をきくや、ベルリンから日本の参謀総長あて、
「万歳──。日本人メッケルより」
 と、打電した。ちなみに明治時代がおわり、日露戦争の担当者がつぎつぎに死んだあと、日本陸軍がそれまであれほど感謝していたメッケルの名を口にしなくなったのは戦勝の果実を継いだ──たとえば一代成金の息子のような──者がたれでももつ驕慢と狭量と、身のほどを知らぬ無智というものであったろう。(p229-230)

これは第二次世界大戦を生きた司馬さんの感想であると思われますが、高度経済成長とその後のバブル崩壊後の日本、金融問題・年金問題、フリーター・ニートに代表される若年世代の労働問題など、現在の日本においても遠からぬ警鐘に聞こえます。

とまぁこういった箇所に注目すると暗めになってしまいますが、本編は緩やかに物語が流れていっています。秋山兄弟はともに尉官にあり、兄好古はフランスにて騎兵の研究、弟真之はイギリスで建造された軍艦吉野を日本に回航する任にあたっています。正岡子規はというと、この時期は健康体ではなく度々喀血を起こし、東京から松山に帰国することになります。しかし描写がおもしろいのか正岡子規という人物が実際にそうだったのか、まったく病人ぶるそぶりが見えません。医師に「安静に」といわれると体を動かさずにはいられないような感じです。

物語はこういったなか、2 巻へ続いていきます。


投稿者 napier : 23:26 | トラックバック


えいご漬け(3)

う~ん、なんとなく法則がわかりました。英語力判定は最後の問題まで解ければ S の可能性があり、あとは「もう一度聴く」の回数が少なかったり、残り時間が多いほど高いランクになるみたいです。このレベルで S といわれてもなぁ、、、という感じで続けるのが億劫になりそうなんですが、とりあえず全てのトレーニングのレベルは終らせようと思います。

あーあと、バーバラも見てみたいのでそれまでかんばろう。


投稿者 napier : 23:20 | トラックバック


2006年02月03日

えいご漬け(2)

DS_eigozuke.jpg

英語力判定を今までに 3 回やってみましたが、E → B → AAA という変遷です。最初はやり方がよくわからなかったので E だったと思うのですが、それでも私が AAA はありえないです。えいご漬けの AAA は「英語での日常会話に支障がないレベルです」とあり、問題に恵まれただけだと思われます。

えいご漬けの対象とするレベルは公式サイトにもありますが、TOEIC で 0~600 点くらいの人のようです(左図参照)。では実際に TOEIC で 600 点はどれくらいかというと、例えばこちら。

英語タウン TOEIC スコア
http://www.eigotown.com/jobs/special/toeic_score/toeic_score.shtml

600 点は「日本IBM・課長相当職の条件」「海外旅行で買い物ができ、食べたいものをオーダーできる」レベルということです。ちなみに最高点は 990 点です。えいご漬けでは AAA の上に S というランクがあるので、これくらいまでいけば TOEIC で 600 点はとれるものと思われます。

英語の習得には英語圏で暮して毎日喋るのがいいのでしょうが、日本に住む限りはなかなかにむずかしいです。以前は SOCOM のボイスチャットを使って毎日英会話をやろう、とも思っていましたが(SOCOM II 韓国語版、SOCOM3 北米版を買った理由のひとつでもあります)、相手の顔が見えない状況での会話は難しいですね。特に誰かと 1 対 1 で話すわけではなく、また拙い英語で回線を占有してしまうのはゲーム上問題がありますし(マナー的に)。

というわけで、Web2.0 時代の英語の勉強法~、などが流行ってたときに調べたり「英語は絶対、勉強するな」で書かれている内容の実践を行うのがいいのですが、これがなかなかできないんですよねぇ。とりあえず毎日、えいご漬けの例文を喋るように心がけよう・・・。

ということで今日の分をやってみたら C 判定。乱高下です。


投稿者 napier : 22:06 | トラックバック


RD-XS38

RD-XS38
http://www3.toshiba.co.jp/hdd-dvd/products/hdd/rd-xs38/index.html

近所の bic camera によってみたところ 5 万くらい + ポイントで売っているのを発見しました。ビックカメラ.com では ¥51,800- の 17% ポイントなのでこの値段だと思います。現在 価格.com で見ると ¥44,800- のようです。

さて、こんなことが無いように明日悩みましょう・・・。


投稿者 napier : 00:00 | トラックバック


2006年02月02日

地震

昨日は地震のおかげで帰れませんでした。 1/237,000 でした。待っていれば終電は動いたのかな?

地震でJR、一時運転見合わせ 23万7千人に影響
http://www.asahi.com/national/update/0201/TKY200602010425.html


投稿者 napier : 09:00 | トラックバック


All Pages