昔の最近の出来事(2003.12)

2003/12/31

昼過ぎ起床。

部屋を掃除することに......したらこれが終らないのなんのって(^^;
出張中の時間潰しに買ったマンガ本だけで100冊以上、 買ってみたものの結局ちゃんと読まずに積まれていた教科書の類も そのまま畳の上に積み上げられていたので、それをどうにか整理して 敷地面積を広げようという目論み。所が、結局本棚に入らないという理由で 山を横にどけただけという(^^;。でも今年、地味に部屋を占拠し始めている のがDVDのパッケージかも。今年は「攻殻」にハマった事もあり、順調に増えたと いうのもありますが、雑誌でもDVD付きのものとか買っていたのが 意外と大きかった様に思います。
そんなこんなでどうにか寝る場所を確保できる所まで元に戻して (って戻すのかよ!?)どうにか終了。つっても、部屋の2/3くらいに しか手を付けていないのですが、まぁよしとしたところ(そうか?)。

浜崎あゆみのレコード大賞受賞が決まった所で今年の回想など。

今年は合計200日くらい出張していたという事もあり、あんま大した事が できなかった感が無くもありません。今年前半はFlash-MX、Java、 中盤は主にCygwinバグ追いかけ、ppcsimいじり、中盤から後半にかけて 3DCGといったものにハマっていたという感じ。まぁ、脈絡も取りとめも無い のはいつもの事なのですが(^^;。もうしばらくの間は3DCGにハマっている 予感がします。
それよりも、来年は出張が無くなってくれんかなぁと切に願う そんな感じ。

こんなのができたらしい。 「RenderMan Academy」。 RenderManのオンラインヘルプのサイトらしい。 こういう資料が増えてくれるのは(英語であっても)ありがたいところ なのですが、個人的にはRenderManInterfaceを完全に実装した フリーのレンダラを用意してもらえる方がありがたいと思ったり。 ユーザーが居ないと流行るものも流行らないの法則からいくと、 ソフトが無いとユーザーは居ないのですから、流行らないという 論法。まぁ、贅沢な希望なのですが.....

そんな感じで今年の更新はここまで。それではみなさん良いお年を。

2003/12/30

昼過ぎに起きてぐんにょり過ごしたり。

ちょっこりお出かけ。ついでに本屋に寄ってみたり。そういえば、 何気にCG系の雑誌が随分減ったような気がするなぁと思ってみたり。 そんな中、たまたま見つけたCGWORLD誌を買ってみたり。

寒くてちょっと起きてはいつのまにか寝てたりを繰り返し。

2003/12/29

少し早めに起きて銀行にリロード。ムチャクチャ並んでて死亡。 でも思ったよりも早く捌けて助かり。

Curvesプリミティブいじり。固定色で反応を示す状態で、 width(実際にはconstantwidth)を小さくしてみることに。 すると、だんだんワイヤーフレームっぽく表示される様になり、 やっと毛の片鱗が見えて来たり。でも、普通のシェーダーを 使うとやっぱり真っ黒にしかレンダリングされず謎。
悩んでいたところ、「そうだprintfデバッグできるんだった」と 思いだし、早速デバッグコーディング。改行(\n)が入れられない 事から発生すると思われるCygwinでのbashのハングとか色々 はまりながらデータを取った所、どうやら面法線Nが(0,0,0) になっている模様。むぅ、大抵の場合面法線に色々掛けて 値を出すのが定石なのに、これでは真っ黒にならざるを得ません。 どうしたものか.....。因みに、Ng,dPdu,dPdv,uも常に0って感じ。 値に変化があるのはI,uなのですが、これじゃぁなぁ.....

[全頂点を繋いでみた]

因みに、使用しているレンダラはPixie。BMRTはCurvesプリミティブがサポート されていませんでした。Aqsisは0.9.0を入れてみたのですが、 Pixieに食わせたのと同じRIBファイルを食わせたら大量にメモリ を消費しているようで、最後はWindowsがフリーズ。むぅ。

こんな 求人看板 があるらしい。

そういや エスプガルーダが入荷されていたのでやってみました。 「覚聖」と呼ばれる特殊状態が稼ぎのキモらしいのですが、 慣れないと何がなにやらさっぱり判らないという感じです(^^; でも、1stプレイで3面と思われる所まで行けたので、それなり に遊べるような、そうでないような。うまい人のプレイを見ると また感想が変わるかも知れません。

放射状に真っ直ぐな毛をランダムな方向に生成するperlスクリプトを 作ってレンダリングしてみたり。

[1000本] [10000本] [100000本]

10000本まではレンダリング自体は非常に軽く、数分で完了するのですが、 100000本になった途端にスワップしまくりで数時間を要しました。

2003/12/28

夕方頃起床。

TVなど観ながらダラダラ過ごしてみたり。M1グランプリ。お笑い 決戦の番組です。決勝戦は私的にはアンタッチャブルが 結構キタのですが、何故か審査票が一票も入らなかったりして、 あれ?っと思ったり。

夕飯を食べながら先日買ったファミ通WaveDVDを見たり。 「FF XII」はグラフィック、スゲー、そんな感じ。特にリアルタイム 映像だと思われる部分がやけに綺麗に見えました。 他、「MONSTER HUNTER」とか。オンラインゲームの様なのですが、 動きが凄く細かいと言いますか、自由度が非常に高そうと言いますか、 そんな感じ。あと、何気に「ウイニングイレブン7」。スポーツ ゲームはあまり興味無しな上、ファミ通WaveDVD誌上でも ゲームシステムの解説など「絵」の部分が紹介の殆どを占めていて 全く気づかなかったのですが、よくよく「聴いて」みると、 実況中継の音声がスゴいと思った次第。「シュート」や「ゴール」 という簡単なものは当然入っているのですが、ゲーム中のボール の流れやパス、要するにゲームの進行なんかについても細かく しゃべっていて、あまりに自然に聞こえるそのデキに、今更ながら 感動してしまいました。

RenderManのCurvesプリミティブについてお勉強。 RenderManInterfaceの資料をPixerのサイトからダウンロード してみて眺めてみたり。英語なので殆ど読めず(汗;。でも、 AdvancedRenderMan(日本語教科書)に書かれている内容が そのまま書かれている様だったので、今までよく判らなかった 記述のexampleのみを参照して色々試してみたり。 所が、サンプルを書いてもさっぱりレンダリングされず (画面が真っ暗)。 「小さ過ぎるか細過ぎるからか?」という事で、 もう少し沢山のプリミティブを描画すれば、塊になる分 目に見える様になるのでは?という事で、 以前作った WingsでexportしたPOVファイルのmesh2プリミティブを RIBのPolygonプリミティブに変換するperlスクリプトを いじってポリゴンの辺をCurvesプリミティブ出力する スクリプトにしてみて、レンダリングしてみました。 所が、やっぱり何もレンダリングされず。 Polygonプリミティブで描画すると、期待したレンダリング 結果が得られるので、どうすれば?という感じ。

その後、色々パラメータを変えながらトライしてみた所、 以下のことが判りました。

  1. 一応「黒い何か」で塗られている為、普通の画像ビュアでは見えない。 file出力していたので気づきませんでした。
  2. typeにcubicを指定した場合、頂点数が3だと足りない。これはCurves プリミティブの説明に必要頂点数の式が書かれているのですが、うまく いかないという事実を受けて初めて理解できました(^^;
  3. 何故か普通のシェーダーで色がうまく付かない。Ciに固定色を入れる ようなシェーダーを使えば色は出るので、法線などがうまく反映できて いない?

こんな感じ。なんとなく反応は示しているので、使い方の問題 という気がしてきました。問題はちっとも毛というか線らしき 様子が見えず、ただべったり塗りつぶしただけにしか見えない 所なのですが。
AdvancedRenderManでの説明によると、Curvesプリミティブは カメラ方向に向くようにねじったリボンのイメージという事 なので、普通のシェーダーで問題無い様に思えるのですが謎。 後、リボンを投影した円筒の管の様に見えるシェーダーを書けば良い との事ですが、視線と交差する点がリボンの幅に対して中心に あるのか、辺のすぐ縁にあるのかの区別がどうやって付くのか 不明。それが判らないと円筒と言ってもどうやって表現するのが 良いのか判りません。むぅ。

2003/12/27

昼前に起きてみたり。今日、寒っ!

TVなど見ながらぐうたら過ごしてみたり。
先日の検索より、 the compressed mesh macro file なるサイトを見つけてみたり。compressed meshというのと毛とが イマイチ結び付かないのですが、meshプリミティブを元に色々な 形状自動生成/変形を行なうマクロ群という感じ。その中の一つに 毛のような形状を自動生成するマクロが含まれており、サイトの サンプル画像にあるような もじゃもじゃのティーポットなんかを レンダリングできるようです。exampleをダウンロードしてレンダリング して遊んでみましたが、細い形状を大量生成するという方式なので、 それなりにレンダリング時間がかかるというのと、なんかガビガビした レンダリング結果になってます。 以前 見つけた毛をパイプ形状で生成するという力技の方法と同じアプローチ と言えそうですが、その時 予想した通りの結果という感じでしょうか。 あとは、コントロールが非常に難しいというか無理というか、そんな感じ。

ちょこーりお出かけ。

「ONE PIECE(31)」。先週買って、出張中に読んだものなのですが、 何度読んでも 泣いてしまいます。 マンガでこんなにキタのはドラえもん(6)の「さようならドラえもん」 以来かも。涙もろくなっているのは決して歳のせいでは 無い.....と思う(^^;

KOJIさん、たぼさんと忘年会。
取りあえず渋谷へGO。山の手線が人身事故でストップしているというアナウンスを 田園都市線の列車の中で聞きながら到着。時間を少し過ぎても人ごみで発見できない ので、KOJIさんに連絡してみた所、モロに電車のストップに引っかかっている 模様(^^;。まぁ、これぐらいの トラブルよくある事なので、 問題なっしん。しばらくしてKOJIさん到着。そしてちょっと待ったら たぼさん到着。今回は3人。あまりに寒いのですぐに店に移動。 店に到着すると少し待ちを食らったので、待ち席で呑んだり(ぉぃ; (お酒をカウンターに買いに行くスタイルなのでこういう事が可能なのです。 でも 思いっきりヒンシュクかも)
少し待つと席が空いたので移動。最近の出来事などを話していると、 なにやら隣の席に座っていた ねぇちゃんがいきなり乱入。同席していた 外人が気に入らないと言う そのねぇちゃん、色目使いで別の席の外人が 好みだと指を指すわ、なんだか訳わからない感じだったので、早く元に 戻ってもらおうと特に話を合わせる事無く勝手に話をしていたら、 ふぃ〜っと指を指していた外人の横に移動していったので、ひとまず 落ちつき。これぐらいのトラブルよくある事なので、 問題なっしん......多分......
その後、しばらく内輪で話をしていると、再びねぇちゃん乱入(汗; 気に入らないと言っていた外人は元々知り合いで、話しているうちに 気に入らない事を言われたということなのですが、なんかもうね、 喧嘩ごしで気に入らないという外人と(英語で)話して、うちらの席に 付くもんだから、外人さんの視線が痛いってゆーか、そんな感じに なってきました。しかた無いので、しばらく置いといたのですが、 そのうち店を出ると言い出ていったので、やっとこ落ちつき。ぴひゅ〜。
そんな感じで、食い物を全く注文する隙が無かったので、食べ物を注文 してちょっと話をしていたら、今度は全然見知らぬ外人がいきなり 話かけてきました。すぐに去るだろうと思っていたら、何やらいきなり 話をし始めました。アリと名乗るイラン人のその男は、先日のイランの 大地震以降、家族に電話しても不通の状態となっており、もう家族は みな死んでしまっているに違いない そして自分も死のうとした、 などと語り始めました。若干自暴自棄的になっているので、周りにいる アメリカ人が気に入らないだとか、こちらもまた喧嘩越しなので、 なだめるのにひと苦労(主にKOJIさんが)。なんか険悪な雰囲気を 店中に漂わせながらも、その男が「クラブへ行こう!」と言い出した ので、流れで付き合う事に。右に左にフラフラしながら、とあるクラブに 到着。店に入ろうとしたら、いきなり店員にその男は止められたりして、 どうやら迷惑常習犯的な雰囲気を漂わせながらも店の中へ。いかんせん 暗くて人が多くて大音響でトランスが流れている「普通のクラブ」らしいので、 すぐに誰がどこに居るのか判らなくなったり(汗;。それよりも、クラブ自体が 初体験[ハート](<ハートは要らん) なものですから、むしろそちらの雰囲気にビクビクするばかり。 よく判らないまま隅っこの方で周りの動きに合わせて動くのが精一杯で、 なにがナニやらという感じだったのですが、だんだん耳が慣れてくると (大音響で耳がおかしくなっているとも言うかも)、なんだかイイ感じ! トランスの場合 パラパラなんかの様に特に決まった型がある訳では なく、比較的自由に踊って良いものだという豆知識をフル稼働させ、 よく観察してみると確かにみな踊りは適当という感じ。 音楽自体は単調なのですが、この繰り返しと大音響がトランス状態に 誘うのだという感じ。そういう所よりはむしろ メガデモっぽい BGVのループが短くてちょっとつまらんとか、音の切れ目が判らない 様に次々音楽が変わるのはどういうしくみ?とか、 このねぇちゃん クラブの人っぽくてイイ!(<どんなんや)とか、 おおかた普通の人はどうでも良いと感じる所を観察しながら、 しばらくふにゃふにゃ踊っていたのですが、適当なタイミングを 図って店を出る事に。

[店の中のねいさん群]

終電も無くなったのでどうしようかという事で、たぼさんの知る 六本木のクラブにハシゴする事に。いやー、それにしても、 これぐらいのトラブルよくある .....って、ねーよっ! そんな感じですよ。
クラブに到着してからは、結構長い時間 ふにゃふにゃ踊り、 そしてぐったりしながら半睡眠状態に陥ったりと、クラブ遊び を堪能し(少し間違っていそうですが)、明け方になった所で店を出る 事に。腹が減ったので再び渋谷に戻り ラーメン食ったら始発が動き 始める時間になっていたので解散。お疲れサマでした。いや、 本当に。 大体、KOJIさんとTANEがセットになると「何かしらの トラブル」が起こるのは 自然現象として確認されている事 なのですが(そうなの!?)、今回のは トラブルが年の瀬にまとまって やってきた そんな感じ。 忘年会だったのですが、忘れられない長い一日でした。 あー、えー、なんかビミョーな まとまりー。おわりー。

帰りついて眠くて速攻で死亡。だって朝だもん。

2003/12/26

出張。帰着ふぅ。なんとか今年の仕事収めって感じ。

「povrayと毛」でWeb検索かけてみたら色々なサイトが見つかって みたり。

眠くて死亡。

2003/12/25

出張。

2003/12/24

出張。

2003/12/23

出張。

2003/12/22

出張。

2003/12/21

午後遅くに起床。

頭と体を別に作っていたのでマージ。前回はこの時点で頭はスムーズ化 されてしまっていて、ちょっと形をいじるのもままなりませんでしたが、 今回は全然余裕。それでも重い事は重いので、用事の無い形状は 非表示にしておくといった感じで進めてみたり。 形状をレンダリングしてみては調節をひたすら繰り返した所で、 テクスチャマップを作成。所が、このテクスチャマップを作成した 途端に、POVへのExportが鬼の様に重くなってみたり。出力するのに 10分弱かかるので、一瞬ハングったかと思ったのですがギリギリ我慢 の範囲内で終了するという感じ。これは予想外の展開かも。

後はテクスチャを調節してはレンダリングして確認、気になる所を 修正して.....を繰り返し。Wingsでの作業はここに来ると全く無しに なりますが、カメラアングルをちょっと変えたいなんて思う時には、 やっぱWingsでプリビューしてサクっとPOV変換できた方が良いよなぁ などと思ってみたりする所。
で、こんな感じでやめてみたり(もう寝なきゃ)。

[グラビアアングル(^^;] [服のシワ]

一点ライトだとやっぱり見た目が良く無いのでライトの調節し 始めた所、思いっきり てこずってみたりしたのは秘密(^^;
因みに、レンダリングフェーズでの前回との違いとしては、

  1. 髪の毛のマップがSubdiv出力のお陰で少し歪みが減った?
  2. 髪の毛形状の不要ポリゴンを削除した為、変な透明の影が出なくなった
  3. POV変換(Subdivステップは2で使用)に時間がかかる様になった(これはレンダリングではないか)
  4. Subdiv出力の影響か少し顔が変わった?(^^;(これもレンダリングではないか)

って感じでしょうか。今回は時間が無さ過ぎて できませんでしたが、 次は髪の毛のロングヘアー化を行ってみたい所。あと、現在のモデルは 直立不動の「気を付けーっ!」ポーズなのですが、構図が取りにくい事この上無いと いう感じになってきたので、少し気の利いたポーズを付けてみたい所。

そんな感じで明日から出張です。


とか書いて、アップロードついでにWebぐるした所、 たぼさんとこで、毛のシェーダーについてのトピックががが! 最後の毛生えプログラムにじゅるり。これでロングヘアー化は 完了って事で(うぉい!)。

2003/12/20

昼過ぎ起床。

先日ダウンロードしたgccのオプショナル言語パッケージをインストール した所、c++でうまくcc1plusが起動できなかった問題は解決しました。 一度gcc-3.3.1-3を入れてしまうとgcc-3.3.1-2にうまく戻せない場合 があったりしたのかしら?

唐突に3Dモデリングを始めてみたり。薄い布を作るのにWingsだと難しい と言っていた点はマテリアルの_hole_を使う事で解決しそうという点 など新たに覚えた技を使って、 前回 のモデルを少し変更してみたり。 少しと言いつつ、前回は服を着せるという概念が無く、服の形をした 胴体という位置付けでモデリングしていたので、それなりの形に 変えるまでにえらく時間がかかってみたり。

服は襟首と袖の部分に_hole_属性を使用して不要ポリゴンが出ない様に しました。モデリングの経過としては、裸体に直方体の袋をかぶせて 体のラインにひたすら沿わせるという感じ。体に沿わせる際、 服オブジェクトのサーフェスを半透明にする事で、体との距離を 調節する事が可能となりました。

で、前回「シワむずっ!」と言っていた点もチャレンジ。Subdivision 出力すると、元形状がある程度シワっぽい感じになっていれば、それなりの 結果を得られるという事が判った為、ひたすらシワを作りこんでみたり。

頭部は変更する点はあまり無いと思っていたのですが、前回、歯を適当に 入れたのがモデル修正不能フェーズに行なってしまった事もあり、新たに 歯をモデリングし直してみたり。見える範囲内なので、上の歯の前6本のみ のモデリングですが、結構良い感じになってみたり。また、耳については 頭部と別オブジェクトでモデリングしていたのですが、Subdiv出力すると 頭部が少し痩せる為、耳と頭部が離れてしまう現象が起きました。なので、 耳は頭部と一体成形する様にしました。でも、殆ど見えないのが寂しい のですが。

今回はWings上でマテリアルを作って、POV-Rayでのテストレンダリング 時にできるだけPOV-Rayファイルを手で修正せずに確認できる様にして みたり。マテリアルの新規作成について、 Wingsのプラグインとの相性バグと言いますか、RIBへのExportプラグイン を入れると、新規マテリアルの作成や、マテリアルの修正ができない 模様。以前にも、POV出力がうまくできなくなるなどの不具合があったの ですが、最新のRIBプラグインでも潜在的な不具合が潜んでいる模様。

とかやっていると外が明るくなってきたので眠くて死亡。

2003/12/19

出張。帰着。ふぅ。

何気にgcc-3.3.1-3を入れてc++が起動できないのを調べてみたり。 どうやら、Cygwinパッケージインストール時に今まではgccを選べば サポートされている全ての言語パッケージがインストールできていた 様に思うのですが、gcc-3.3.1-3から言語毎にセレクトできるように なっていました。そこで、gcc-3.3.1-3のコアに加えて、g++などの オプショナルなパッケージも選択してインストールしてみる事に してみました。...........むぅ、回線が遅過ぎてダウンロードが 終らん。

眠くて死亡。

2003/12/18

具合が悪くて一日死亡。

Wingsの新しいのを入れてみたり。ちょろっと使った感じは特に大きな変化無し。
Wings3Dのギャラリーフォーラムなどを見ていると、Wings上でのポリゴン表示 (View→Workmode ON表示)では意外とローポリ(ポリゴン数が少ない)の様に 見えるモノでも、実際のレンダリング結果は結構ポリゴン数が多いモデルの様に 見えるものがあります。私がモデリングしていた時も、ある程度 形をなしてきたら ファイルをコピーしてSmoothコマンドで一気にスムージングして、そのモデルで テクスチャを調節してレンダリングしていました。Smoothコマンドを一度実行して しまうと、恐ろしくポリゴン数が増えるのでチョットした追加編集もままならなく なるくらい重くなってしまうのが悩ましい所なのですが、仕方が無いものだと思っていました。
RenderManの教科書である所の、AdvancedRenderManでSubdivision-Meshというプリミティブ についての説明が書かれていますが、説明によると、このプリミティブを使用する事で 少ないポリゴンモデルでもスムーズなレンダリング結果を得る事ができるようです。 で、本題ですが、POV-RayへのExportプラグインでSubdivision分割出力をサポート しています。 現在のPOV-RayではSubdivision-Meshプリミティブはサポートされていません ので、WingsのExportプラグインではSubdiv分割した後の細分化したポリゴン をMesh2プリミティブに出力する事で実現されているようです。変換に負荷が かかる事になりますが、Wings上ではローポリモデルのままモデリングできます ので、特別な加工を施さなくても見かけ上、スムーズさ 加減を上げる事ができるのはメリットになると思われます。

[Subdiv0] [Subdiv1] [Subdiv2]

断面が四角形の8分割のトーラスから、Subdivステップを0(分割無し)〜2 まで増やした時のPOV-Rayでのレンダリング結果です。 頂点の法線はExportしていないので、純粋なポリゴンモデルとして 見る事ができます。 多少、元のモデルより痩せる感じがあるので、出来あがりをある程度 経験により予測する必要があるかも知れませんが、有機的な物体のモデリング であれば、大体の場合において思い通りの結果を得られるのではないかと 思われます。
そういう意味ではWings上のSmoothコマンドでスムージングを行なっても、 その後でモデルをいじる事は事実上殆どありませんので、それを考えれば レンダリング時にさえ細かいモデルとして扱う事ができれば良いというのは、 理にかなっているのかも。

2003/12/17

日付け越え。む〜ん。

Wings3Dの新しいのが出てた。

そんな感じで明日から出張です。

2003/12/16

出張。一時帰着。ふぅ。

2003/12/15

出張。

2003/12/14

いいとも増刊号を見ながらぐうたら過ごしてみたり。

OpenGL遊び。というか脳内シミュレーション(^^; アルゴリズムの変更点から原因を考察してみたり。元々以下のようなサーチを 行なっていました。

[ポリゴンサーチ1]

水平面に平行に移動し、移動先の点から全地面ポリゴンに垂線を降ろし、 且つ地面ポリゴンの範囲内に垂線との交点が入っていれば、移動先 の対象にするという感じ。この方法だと、大抵の場合うまくいくのですが、 傾斜を移動した場合、水平に並行な平面を移動するよりも移動量が少なく なってしまいます。
この移動量が少なくなるのを解決する為に、平面の傾きを先に求めてから、 移動量を加えるように変更したのですが、移動量が一定の場合、以下の 様に宙に浮いたり(地面にめりこんだり)する場合があります。

[ポリゴンサーチ2]

この時、位置から地面ポリゴンがなす平面に垂線を下ろした場合、その垂線と ポリゴンのなす平面との交点がポリゴンの内側に入らなくなってしまい、結果、 一見移動できそうにも関わらず、移動不能となってしまうようです。
後者の方法で、位置から水平面に垂線を降ろして、その直線と交差する ポリゴンをサーチするという方法がやっぱり一番適当なのかも。これは 結果的に 以前考えた地面ポリゴンの投影 面(影)に対して当たり判定を行なうのと当たり判定的には等価になります。 しかし、移動は傾斜の方向に向かって移動する為、面の表面を 渡り歩く移動速度は割と正しいかも知れません。 また、以前にも書いた通り、二階建ての建物の中を移動するのには多少の 工夫を必要とするのには変わりないかも。

ポリゴンサーチの図を描くのに、すんごい久しぶりにFlash-MXを使用した のですが、びっくりするくらい使い方を忘れていますよ(^^;。

そんな感じで明日から出張です。

2003/12/13

夕方頃まで思いっきり寝こけてみたり。

先日のWingsプラグイン出力のRIBレンダリング惨敗の具合を調べて みたり。"N"というパラメータ?が何度もDecrareされているという 感じのエラー。ただ、PixieのRenderの構文エラーはエラー個所を 指している様に見えないのが困りもの。結局よく判らず。
BMRTを使用するとどうか?と試してみた所、更にエラーが増殖 してみたり(^^; BMRTだとPointsPolygonsで出力した場合は 真っ黒な画面しか出なかったり。SubdivisionMeshにすると、 一応全てのオブジェクトはレンダリングされるのですが、クラック が目立っていたり。因みに、SubdivisionMesh出力したRIBファイルを Pixieでレンダリングすると赤○白×で落っこちてみたり(^^;

[BMRT レンダリング] [POV-Rayレンダリング]

Cygwinのビルドの方は完了していたのですが、やっぱりプロセス 終了後に赤○白×が出る現象は解決せず。むぅ。

OpenGL遊び。姿勢制御を入れるべくあーだこーだとやっていたのです が、うまく行かず。それよりも動きのアルゴリズムを少し変えた所、 ある点で地面ポリゴンをサーチできない現象に悩まされてみたり。 地面ポリゴンの継ぎ目に何らかのタイミング(というより正確には位置 )でどの地面ポリゴンにも当たらなくなってしまっている模様。

2003/12/12

出張。帰着。ふぅ。

Wings3DのRIB出力プラグインが遂に アップデートされた 模様。以前のバージョンではジオメトリが正しく出力されなかった のですが、正しく出るようになってます。でも、Pixieでレンダリング した結果はへっこり。

Cygwinのスナップショットのビルドを仕掛けて寝る。

2003/12/11

出張。

2003/12/10

出張。

2003/12/09

出張。

2003/12/08

出張。

2003/12/07

昼頃起床。

OpenGL遊び。先日のatan()により二つのベクトルのx,y,zの三軸の 角度差を求めるコードですが、うまく結果を導出できない場合が あったり。例えば、P=(0,1,0)のy軸に平行なベクトルがO=(1,0,0) のx軸に平行なベクトルに対する、三軸それぞれの なす角度を求め様 とした時、答えの一つは「z軸を+90°回転させる」ですが、もう 一つ、「y軸を+90°回転させた後、x軸を+90°回転させる」と いうのも答えになります。この点の考慮が抜けていて、 予定と違った計算結果になってました。ベクトルOをベクトルPと 同じ向きになった所で、軸回転をやめるといった条件を挿入すれば 良い様にも思ったのですが、何度も回していると誤差が生じて無限に 目的のベクトルと同じ向きにならない可能性があるので悩んでみたり。

ちょこりお出かけ。

TVなど見ながらぐーたら過ごしてみたり。特命リサーチで、金粉塗って 皮膚呼吸ができないという噂がウソだと知って、へぇ。酸素吸収の90%を肺で 行なって、残りの10%を皮膚呼吸しているとかなんとかってのをどこかで 聞いた記憶があり、今までそういうものなんだと思っていたのですが(^^; 噂の発生源として007 の「ゴールドフィンガー」に端を発っしているのでは?という 推測に、へぇへぇ。
全然関係ありませんが、自転車の電灯の発電機(いわゆるダイナモ)について、 「電球が切れている時はペタルが軽くなる」に対して、「本当」 と答えを出すTV番組と「ウソ(==変わらない)」と答えを出す別のTV番組があったの を突然思い出してみたり。経験則では「本当」だったし、そうでなくては 物理の法則に反していると思うのですが、何故に二つの相反する答え が出てくるのか不思議に思ったりしたものです。

角度を求める話の続き。角度を求めるだけならば、ベクトルOと ベクトルPの内積を求める式を変形して出せば良いのでは?と 思ってみたり。問題は、OとPの外積で求められる 軸が回転軸となるので、自由軸で回転できる技(技って...)が必要 です。OpenGLのglRotated()は回転軸を指定できるので、これと 同じ事ができれば良いのですが。
で、Webを検索して、自由軸で回転させるそれっぽい式を入手。これで、 ベクトルPとベクトルOの外積を軸になす角度は、

   th=acos(DotProduct(P,O)/(Vecleng(P)*Vecleng(O)))
   ※DotProduct()は内積を求める関数,Vecleng()はベクトルの長さを求める関数

こんな感じで求めてみたり。
所が、座標の系が合わなくて、こっちは角度あっちはベクトルそっちは 三軸座標系回転角 向こうは極座標 ってな感じでぐちゃぐちゃになったので、 整理しないと訳が判らなくなってきました(^^; 3D系の一番困る所は 紙に描いてベクトルや回転のイメージ確認をしてても奥行きの描き方 がイイカゲンになるので、すぐにどの線が何を示しているのか判らなく なってしまう所でしょうか。慣れが足りないだけかも知れませんが(^^;

全然話は変わるのですが、POV-Rayのカメラ設定は、カメラ位置(視点)と 着目点の二つを設定しますが、このシステムだとアニメーションなんかで 言う所のパンを行なうのが非常に面倒です。カメラの向きを着目点では なく方向ベクトルで指定できれば、そういうのが簡単になると思うのですが、 そういった複数系統ある表現の相互変換事を請け負うプリプロセッサみたいの があると便利かなぁなどと思ってみたり。

そんな感じで明日から出張です。

2003/12/06

昼頃起床。

buildはエラーして終了していたのですが、その内容がcc1plusが起動できない といった感じのメッセージが出て停止していました。

c++: installation problem, cannot exec `cc1plus': No such file or directory

んー?なんか 以前 起こったgcc-3.3.1-3でc++コンパイラがうまく起動できないのと 同じ問題か?と思ってみたり。と言っても、今使っているのはその問題の起きない gcc-3.3.1-2なのですが.....それよりもこの問題、MailingList上では 「うちでは問題無いですよ?」っぽい回答の後、ぷっつり切れてしまって しまっているのがアレなのですが。

肝心のCygwin本体の方はコンパイルできていたので入れ替えてみた所、 プログラムの終了時(正確には起動した子プロセスの終了時)に赤○白×ウインドが 開いて、しまいにはWindowsの終了ができなくなってみたり、ボロボロだったので 元に戻したり(^^;

c++コンパイルでずっこける現象を少し調べてみる事にしてみました。gcc-3.3.1-2で POV-Rayのあるファイルを再コンパイルした所、 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/cc1plus.exeをフルパスで起動していました。

src> c++ -v -DPREFIX=\"/usr/local\" -DPOV_LIB_DIR=\"/usr/local/share/povray-3.5\"
Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/specs
Configured with: /netrel/src/gcc-3.3.1-2/configure --enable-languages=c,c++,f77,j
Thread model: posix
gcc version 3.3.1 (cygming special)
 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/cc1plus.exe -quiet -v -D__GNUC__=3 -D__GN
   :
   :

エラーしている場合、次の様になってました。

utils> c++ -v -L/cygdrive/c/tane/develop/cygwin/cygwin-snapshot-20031205-1/BUILD
Reading specs from /usr/lib/gcc-lib/i686-pc-mingw32/3.3.1/specs
Configured with: /netrel/src/gcc-3.3.1-2/configure --enable-languages=c,c++,f77,ja
Thread model: posix
gcc version 3.3.1 (cygming special)
 cc1plus -quiet -nostdinc++ -nostdinc -v -I. -I/cygdrive/c/tane/develop/cygwin/c
   :
   :
 

いずれも同じコンパイラを使用しているのですが、何を契機にcc1plusの起動方法が 変わるのかは不明。確かにMailingListの回答で、「cc1plusはコンパイラのバージョン毎 に呼び出すディレクトリが変わるのだ」っぽい答えがあった様に思うのですが、 問題はそこでは無いんじゃ......と思ってみたり。
因みに、POV-Rayでは *.cpp というファイル拡張子を使用して いて、Cygwinでは *.cc でしたが、POV-Rayの方を*.ccにしても問題無し。 Cygwinの方はwinsup/cygwin/*.ccのソースがコンパイルできているので、基本的 に問題無いものと思われ。とても小さな穴が開いているのかも。

OpenGL遊び。地面の傾きに合わせてプレーヤーオブジェクトも傾くような 仕組みを入れてみる事に。オブジェクトのy軸の傾きベクトルPをxy,xz,zy平面に投影 して、基準ベクトルO=(1,0,0)との間の角度をatan()で求めるという感じ。 これを現在のプレーヤーオブジェクトの傾きベクトルと最終的な傾きとなる 地面の法線ベクトルに対して計算し、その傾きの差をオブジェクトのx軸,z軸に対して も回転補正するという感じにしてみました。でも、うまく動かず。むむむ。

2003/12/05

出張。帰着ふぅ。

XFree86 for Cygwinをアップデートしてみたり。つい最近、アップデートした 所、キーボードの対応がきちんとなされており、 以前問題だった'~'(チルダ)が 出せないなどのキーボード周りの不具合が直っていました。所が、更にその後に アップデートした時以来、XWinを起動してもIO fatalといったメッセージが出て起動に 失敗する様になっていたのです。今回アップデートしたものも、やっぱり IO fatalとなったので調べてみたところ、Cygwinを立ち上げた時に起動 される最初の1発目のログインシェル(bash)上から起動すると、うまく 起動できないというのを発見。ログインシェル起動後、再度bashを起動 してそのシェル上から立ち上げれば、問題無く立ち上がる様になりました。 これに似た問題で、 以前 日本語対応版のローカルなrxvtが、1発目のログインシェル上から起動 できないという問題がありましたが、それに似た問題があるのかも。 因みに、rxvtでの問題はごく最近のrxvtでは問題にならなくなっています。 fork()が失敗しているのでCygwin側の問題だと思われていたのですが、 rxvtの問題だったのか?と疑問符が付いたままなんとなく解決してました。 因みに、私が使っている fork()の性能問題解決パッチを使っても、 このrxvt起動失敗問題は解決しなかったので、尚更 fork()じゃないのかも.... と思わせられたというのもありましたが。

そんな感じで久しぶりにCygwinスナップショットをダウンロードして buildしてみたり。

2003/12/04

出張。

2003/12/03

出張。

2003/12/02

出張。

2003/12/01

出張。


TOP PREV