カテゴリー: CG

CG, Proce55ing, Programming

Proce55ing/Javaの罠

帰省の新幹線の中で Proce55ing を使ってちょっとしたプログラムを書いていた時に気づいたのが、Proce55ing(というより、Java)って演算子のオーバーロードに対応してないんじゃん!!ということ。

これは困る。ものすごく困る。行列演算ができないなんてレベルじゃなく、この環境でプログラムを書くのは無理無理!!ってくらい困る。

だって、ベクトルの演算をするときに

Vector3 v1(1,0,0);
Vector3 v2(0,1,0);
Vector3 v3 = v1+v2;

とかできなくて、

Vector3 v1(1,0,0);
Vector3 v2(0,1,0);
Vector3 v3 = v1.add(v1,v2);

みたいなことをしないといけないんですよ。これは余りにも直感的じゃなさすぎです。こんなので複雑な計算とかできません。

しかたないので、P5で書いたコードは捨てて C++ で一から書き直すとします。どの道、ある程度動作確認ができたら書きなおすつもりだったのでいいんですけどね。

Proce55ingは手軽にプログラムが書けて描画も楽チンと思っていたのに、いろいろ罠があるなぁ(涙

CG, Proce55ing, Programming

知らなかった…

Proce55ing って、標準では行列が扱えないのかー。知らなかったよ…

これは困った。手軽に描画ができるからって Proce55ing を使ってたのに、これじゃ手軽に描画ができないよ(笑。

JAMAみたいなライブラリを簡単に使えたりするのかなぁ?それならありがたいんだけど。そうでなかったら、昔 C++ で作ったプログラムのコードを流用して一から作ったほうが早そうな気がする。fltk を使ってるから、OSX に移植するのもそれほど手間じゃなさそうだしなぁ。気合いを入れれば一、二日でできるかも?

あとは、描画まわりは全部 Maya にお任せしてプラグインとして作るか。これが一番楽そうな気がする。


モノは試しに一番単純なアプリを移植したら、さっくりと移植できたw。

やったのは Makefile を書いたのと、windows 特有のヘッダファイルやら WinMain やらを書きかえただけ。あと、fltk1.x 用のコードだったので fltk2.x 用に書きかえたり。

これだったらfltk を使おうかなぁ。


コメントで jar が扱えるということを教えて頂いたので試してみました。手順は [Processing][仕様]外部ライブラリ(*.jar)の設置方法 を参考にして、JAMA を入れてみたところ何の問題もなくインストールできて拍子抜け(笑。

コードも、Webページにあったサンプルを copy&paste するだけで動いちゃいました。これは素晴らしい!!

更に、PackageLoc という3D幾何・代数操作パッケージもあるそうなので、Proce55ing に死角無しです。

CG

xsi@fxpodcast

最近、何故か更新されていない fxpodcast の 10月末の “SOFTIMAGE|XSI7” が秀逸です。Softimage の Bill Roberts へのインタビューですが、これがもうマニア垂涎の情報満載です。

以下、私が気になったところを抜粋します。

・Crosswalk

ソフトウェア間の違いを意識しないでデータをやりとりするための仕組み

・Fluid Dynamics on ICE

Ben Houstonが設立した Exocortex Technologies, Inc. との提携。Ben Houston は  Frantic FilmsDeadline を作った人。また、Floodの主要開発者。

・Houdini との違い

“It’s brilliant package. But, Hard to learn.”

・XSI の位置付け

“Platform”。その上で特定の分野にフォーカスしたパッケージを提供する。 FaceRobot, ICE, etc.

・その他

コンポジットシステムとかサラウンドとか

 

Platform 化の話が出たのは正直驚きました。確かに Face Robot とか ICE だけを見ると一ツールとしたら今までにない規模のものだなぁとは思っていたのですが、 XSI をプラットフォームとして見れば納得です。

 

この回以外にも、fxpodcast は聞いてて面白いです。各プロダクションの動向がわかるのはもちろん、インタビューをする相手も素人なのでハイテンションなまま横道に逸れながら 延々話を続けたり、かと思えば聞いてるこっちが眠くなるほどローテンションで語って、それにつられてインタビューアも妙にテンションが低かったりとかバラエティに富んでいます。

CG

ソニックワールドアドベンチャー』オープニングCG

【タレコミ】 すばらしいレイアウトとアニメーション『ソニックワールドアドベンチャー』オープニングCG

これはスゴい!!日本でもこんな作品が作れるんだなぁ。SEGA は数年前から大規模に求人をして、いろいろなところから人を引っぱってたみたいで、その効果が現れてきてるのかなと感じます。

これを見るとモチベーションが上がりますね。私も精進しないと!!

それにしても、これまで着実に力を蓄えてきたところとそうでないところの差が目に見えて出てきてます。これからはもっと差が開いていくんでしょう。これまではハッタリやヤッツケ、努力で何とかなってきたかもしれないですが、これからはそれだけでやってきたところは消えていくか、CMなど規模の小さな仕事を回していくことになるんでしょう。

CG

Autodesk Signs Agreement to Acquire Softimage

 Autodesk Signs Agreement to Acquire Softimage

 今日一日、CG系 Blog はこの話題でもちきりでした。私は乗り遅れましたがorz

 Alias が買収された時もかなり驚きましたが、今度は Softimage ですか。これで名実共に Autodesk 帝国の できあがりというわけですね。

 それにしても、Autodesk が何をしたいのかサッパリわかりません。ゲーム系の強化?まあ確かに、ゲーム関係だと XSI のシェアが高いのはわかるんですがだからって XSI を買えばいいのか?っていうとそれも違う気がするし。

ユーザーからすれば、近い将来この三つのソフトが統合されて新しいプロダクトが発表されるのなら喜ばしいことなんですが反面開発速度の鈍化や価格の高止りの恐れもあるわけで、複雑な気持ちです。

まあ、正直なところハイエンド系アプリケーションは得意不得意があっても機能としては似たり寄ったりで近年は行き詰り感も感じてきているのでCG製作プラットフォームとしては統一してしまってもいいんじゃないかと思います。

…そのプラットフォームが糞じゃなければwww

その他ソフトウェアベンダーやCG製作会社は、そのプラットフォーム上で何如に商売をするかを考える時代になってるんじゃないかと思うのです。これまでもその傾向は強かったんですが、これからはもっともっと顕著になっていくのではないでしょうか。

そうすると気になるのが、我らが Houdini の存在です。 気持ち的にはこれからも独立して開発を続けて欲しいところではあるんですが、現実的には XSI 上の ICE のようにどこかのプラットフォーム上で動作する一ツールとして進化をする道も探っていくんじゃないかなと思います。今はまだ Houdini の能力を受け止めるだけの力を持ったプラットフォームが存在しないので独立して開発を続ける意味があるしそうでなければ存在できないですが、次の世代のプラットフォームが姿をあらわした時に大きな変化が起こるかもしれません。

CG, 雑記

CASIO EX-F1

ex-f1.jpg

カシオから驚愕のデジカメが発売されていました。

カシオ EX-F1

何がスゴいって、デジカメなのに

  • 1920×1080 の Full HD ムービー撮影が可能
  • 最大 1200fps(!!) のハイスピード撮影が可能

というところです。

週末に店頭でちょっと触ってきましたがなかなか面白そうです。
エフェクト用の素材撮りに一台あると、かなり重宝するんじゃ
ないかなと思います。

ただ、製品的に一眼レフでもなければコンパクトデジカメでもないという
微妙な位置づけの為、店頭での扱いもかなり中途半端な感じでした。
一言で言って居場所がない(笑

あと、カシオっていうところがちょっとブランド的に弱いのが
ひっかかります。CANON とか SONY だったら何となく安心なんですけどね。

CG

レンダリング時のテクスチャメモリ使用量についての考察

なんでテクスチャファイルはcropしないといけないのか。JPGで圧縮したテクスチャはレンダリングを軽くするか。

この記事が気になっていたので、ちょっと考察してみました。実験はしてないんで本当にどうなってるかは要調査ですがww

・テクスチャを jpg にするとメモリ使用量は減るか?
→読み込む時に必ず全部のデータを展開しないとイメージが取得できないので非圧縮のデータと変わらない

・圧縮してあるテクスチャを読み込むとメモリ使用量が増える?
→元ファイル読み込み領域+展開領域は必要そう

・どんなファイルフォーマットでも同じ?
TIFF の tile 分割形式のようなものをうまく扱うことをしていれば No。ただ、普通は libjpg やら libtiff を使ってるだろうからファイルフォーマットによって劇的にメモリ使用量が変わることはないんじゃないかと思う。

・使用しない領域もずっとメモリに展開しておかないといけない?
→No。レンダリング前にタイル分割をしたり mipmap を作っておけば、必要になった領域だけメモリに読み込むことが可能になる。

・他の方法は?
Mentalray のメモリマップドテクスチャのように、メモリに展開しなくても必要な部分だけ取得する方法はある。


理論的には、画像の一部しか使っていなくても全てメモリに展開しておく必要はなさそうです。実際の実装ではどうなっているかを知りたかったので、lucille のソースをちょっと見てみました。そうしたら
texture_loader.c にビンゴな記述が。どうやら、一度読みこんだデータを分割して使う仕組みがあるようです(圧縮してディスクキャッシュ化は未実装…?)ということで、メモリの最大使用量はテクスチャ展開後のサイズではあるものの、賢いレンダラはうまくやりくりするための仕組みがあるようです。

でも、ソースも無い状態でこれをきちんと検証するのは結構手間ですね。。。


その後いろいろ調べてたら、3Delight のテクスチャフォーマットが正に タイル化した TIFF のようです。更に mipmap 化したものをマルチイメージで持っています。これなら、タイル化の規則と mipmap 化の規則さえわかれば直接 3Delight 用のテクスチャが作れます。更に mipmap の生成アルゴリズムも自分でいじれるので、嬉しい人には嬉しいかもしれません。

CG, RenderMan, 雑記

選択と集中…!?

ボーッと過去日記を見てたらこんな記事が⇒選択と集中

…アレ?

やらないこと

* RenderMan : 勉強したいのはヤマヤマだけれども、現状実戦投入の可能性がほぼゼロ。MentalRayの方が現実味がある上、レンダリングの実務関係はAwayなのであえて外す。但し、Houdiniの勉強を続ける過程でシェーダやレンダリングまわりをマスターする必要が出てきたら手を出す

全然選択できてないよ!!ちょうど一ヶ月前なのに何やってるんだオレ!! RenderMan はやらないって決めてるんじゃん!!

ここ一ヶ月の流れは

  1. RenderManはやらないことにした(><)
  2. Mentalrayは現実的だし、仕事の待ち時間あるし隙間時間を有効利用!!
  3. .mi ファイル扱えないんじゃん!!ガーン!!
  4. やっぱ RenderMan でしょ!! 3Delight 使っちゃうもんねー ←今ここ

こんな感じ。ダメダメです。はー、どうしよっかな、こりゃ。軌道修正して Houdini ライフに戻るか、予定変更して RenderMan ライフを送るか。


決めた。当分は予定通り Houdini ライフを送ろう。ただし、Mentalray の勉強をする時間があったら RenderMan の勉強をするっていうことにする。いやー、振り返りって大事ですねwww

3Delight, CG, RenderMan, コンピュータ

3Delight環境整備

metasequoiaonmac.png3Delight を触るにしても、データを作る際に全部 vi でゴリゴリやるわけにもいかないので、ちょっとしたモデリングと RIB エクスポートができる環境を用意することにしました。

とは言っても Mac の CG ソフトでフリーで RIB が出力できるものなんて Blender ぐらいしか知らないわけで。Blender ですかウムムムム…

そこでひらめいたのが  MikuInstaller。これを使って Metasequoia を動かせば万事解決です。Metasequoia なら RIB エキスポートできるし、昔に買ったライセンスがあるので追加の出費も必要ありません。

思いついたら即行動!!ということで MikuInstaller と Metasequoia をインストールしてみたら、アッサリと動いてしまいました。ほんと、意外なぐらい。更にサンプルデータを RIB で出力して 3Delight でレンダリングすると何も問題なくレンダリングされます。これはすごい!!

ただ、一つ問題があって Metasequoia が劇重ですw。OpenGL描画が有効になってると、まともにビューを動かすことができません。Configuration で OpenGL をオフにするとかなり軽くなりますが、それでもモッサリ感は残ります。これだったら VMWare 上で動かした方が軽快かも(笑。

第一歩としては悪くないですが、もうちょっと正攻法でいける方法を探した方がいい気がしますね。