CG, Programming

githubを使ってみよう

記事に触発されて、github を使ってみることにしました。

使ってみると決めたらまずはアカウント作成。必要なのはユーザー名とパスワード、それから ssh public key です。ここで間違って private key を貼りつけたりしなければ、特に問題はないと思います。

そしたらもう使えるようになっちゃいます。早っ!!本当にこれだけでした。記事にもならない(汗

使えるようになったので、早速lucille を fork します。これも簡単、my fork ボタンを押すだけ。

画面が切り替わって一瞬何が起こったか理解できないけれども、もう自分の lucille リポジトリができています。早っ!! github を使うと決めてここまで 5 分かかってません。これはスゴい。

そんな感じでできた私のページはこちら。使い始めの印象としては今までで最高です。使い勝手はどうかなー?

Programming

gitについての記事

git の話をしているところにピッタリなタイミングでこんな記事がありました

ソーシャル化するOSS開発者たち

この記事を読むと、CVS や Subversion(svn) と git が全く違うということがわかります。

特に目から鱗だったのが、CVS や svn の中央レポジトリが物理的な”土地”と同じく政治的な意味を持つのに対して、 git のようなどこにでも同じレポジトリが存在するようになるとレポジトリという形は意味をなさなくなり、それぞれのレポジトリ上で何が行われているかが意味を持ってくるという話でした。
分かれたレポジトリで興味深い変更がされたら、自分のところに持ってくる(git pull)ということなんですね。へー。

この文章を読むと、 git 内での物事の考え方がわかる気がします。私も早速 lucille のクローンでも作ってみますかねw

CG, lucille, Programming

lucille@github を使ってみよう

仕事が一段落して、久しぶりに心休まる週末なので github を使ってみることにしました。
とは言っても、github を使うのが目的ではなく lucille の最新コードを手元に持ってきていつでも最新版を使えるようにしたいのです。

github?
ここ最近開発者の間で流行っている Git のリポジトリを公開するためのサイトです。Git は…CVS とか Subversion とかのソースコード管理システムの一つみたいな認識でいいんじゃないかと。何で流行ってるのかと言うと…何でだろ?

Git?
そもそも Git って何よ?という感じだったので Wikipedia を参照すると、なるほど、

  • Linuxカーネルを開発するためにリーナスが作った
  • 分散バージョン管理システム

ということですか。これは流行るわけだと妙に納得。

使ってみる
とりあえず github から lucille のコードを持ってきます。
これはもう簡単。Web ページからダウンロードできます。download ボタンを押すと zip か tar で持ってこれるようです。

ダウンロードしたら適当な場所に解凍してビルド。

ビルド
INSTALL を読むと幾つか依存するツールがあります。

  • python ( for scons )
  • scons > 1.0 ( http://www.scons.org/ )
  • flex
  • bison
  • gcc > 4.0 (If you use gcc)
  • cunit ( Optional. Used for unit testing. http://cunit.sourceforge.net/ )

足りないツールはサクサクと入れちゃう。昔はソースコード原理主義で一から作る派だったけど、今はそんな元気ないので Fink を使っちゃう。
環境が整ったらドキュメント通りに build/install。私の環境(Mac OSX 10.5)だと特につまづくところもなくおわりました。

レンダリング

>lsh tut1.rib

とかでレンダリングできる。…がっ! muda とかいうファイルができるだけ。何これ?私のやってることはムダだって言われてる?(言ってません)
rib をいじって出力先を muda.tif に変えてみる

Display “muda.tif” “tiff” “rgb”

muda.hdr ができる。出力は問答無用で HDR ファイル?なんて漢仕様(涙

3Deliht についている hdri2tif でも読めない。うむむ。。。

とりあえずドキュメントでも読むか
lucille のドキュメントは SPHINX というものを使っているみたいです。doxygen みたいなもの? Python の easy_install というものでサクッとインストール。

>sudo easy_install sphinx

その後、doc/userman に移って make。

chiyama@lain:~/Projects/OpenSource/syoyo/lucille-git/doc/userman[668]% make
make html
mkdir -p build/html build/doctrees
sphinx-build -b html -d build/doctrees . build/html
Running Sphinx v0.6.1
loading pickled environment… done
building [html]: targets for 5 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files… none found
preparing documents… done
Exception occurred: 20%] cgkit
File “/Library/Python/2.5/site-packages/Jinja2-2.1.1-py2.5-macosx-10.5-i386.egg/jinja2/environment.py”, line 357, in parse
raise e
TemplateSyntaxError: expected token ‘lparen’, got ‘block_end’
File “/Users/chiyama/Projects/OpenSource/syoyo/lucille-git/doc/userman/_templates/layout.html”, line 7
{%- macro relbar %}
The full traceback has been saved in /var/folders/Jo/Jonjry+EHaeb9BGfWDzB2k+++TI/-Tmp-/sphinx-err-VdNq5_.log, if you want to report the issue to the author.
Please also report this if it was a user error, so that a better error message can be provided next time.
Send reports to sphinx-dev@googlegroups.com. Thanks!
make[1]: *** [html] Error 1
make: *** [all] Error 2
chiyama@lain:~/Projects/OpenSource/syoyo/lucille-git/doc/userman[669]%

エラー!!ガッデム!!
ドキュメントが生成できない問題は syoyo さんが早速対応して下さって解決しました 😀
ありがとうございました。

とりあえず置いておいて git 環境を作る
すぐに解決しなさそうなので最初の目的に戻る。Web 経由ではなく、コマンドラインから手軽に最新のコードを持ってこれるようにする。

GitHubを使い始めてみたメモ

このあたりを参考に、git 環境を作る。これも Fink で一発。

Binary がなくて source から入れることになって小一時間かかってしまった。。。

気をとりなおして環境構築の続き。

git にユーザー名とメールアドレスを登録する。

> git config –global user.name “Hiroshi Chiyama”
> git config –global user.email “hchiyama@gmail.com”

clone でマスターと同じものを手元に持ってくる。

> git clone git://github.com/syoyo/lucille.git
Initialized empty Git repository in /Users/chiyama/Projects/OpenSource/lucille/.git/
remote: Counting objects: 3139, done.
remote: Compressing objects: 100% (1457/1457), done.
remote: Total 3139 (delta 1946), reused 2757 (delta 1626)
Receiving objects: 100% (3139/3139), 4.72 MiB | 384 KiB/s, done.
Resolving deltas: 100% (1946/1946), done.

できたので試しにビルドしてみたりレンダリングをしてみたりする。

日々の更新
ここまでこれば常に最新版を手元に持ってくることができるようになる。

> git pull

まとめ
これでひとまず環境は整いました。ちょっと使った感じ、git は個人で使うにはちょっとオーバースペックすぎるかなぁという気もします。分散開発とかの概念が入ってる分、CVS や Subversion よりも複雑な印象を受けます。慣れれば便利なんでしょうけどね。

今後は lucille の開発動向を追いつつ、いろいろと試してみようかなと思います。今回解決できなかった問題もいくつかあるし。

CG, 映画

CARS

カーズ [Blu-ray]仕事もボチボチ一段落ついて、数ヶ月ぶりに早く帰宅できたので今更ながら見てみました。PIXAR の CARS。
正直なところ、今まで CARS ってあまり魅かれなかったんですよね。だって車でしょ?子供向けアニメじゃないの?って。

しかーし!!甘かった!!ここまで来ても PIXAR を見くびっていた!!何なの!?この映画は!!!

もうね、非の打ちどころがないなんていうものじゃない。泣いた。感動した。感動なんて陳腐な言葉じゃ表せないぐらい全てが完璧。これだけの才能を集めることができて、これだけの作品を作ることができる PIXAR はやっぱりすごい。

日本だったら、PIXAR が持っているものの内、たった一つでも持っていたら賞賛の嵐じゃないかと心底思えてくる。PIXAR が “作品” を作ってるとしたら、自分たちは CG というツールを使って無邪気に遊んでるだけじゃないのか!?って。日本のCG作品で、CARS が表現している “目線” 以上のものを表現している作品とか見たことないし!!

毎度のことながら、PIXAR 作品は私には刺激が強すぎます。いろんなことを考えちゃうじゃないですか。。。

CG

Real Time 3D Fluid and Particle Simulation and Rendering

GDC2009 で nVidia が発表する、リアルタイムシミュレーションデモです。

驚愕です。



我々が一晩かけて RealFlow や FumeFX を使ってシミュレーションするのに対して、同じことがリアルタイムにトライアンドエラーが繰り返せる人がいたら、センスとか根性とかそんなものはハナクソ程度の意味しか持たないんじゃないか。

そう考えていくと、俺シミュレーションエンジンとか俺レンダラを持つべきだなぁとつくづく思いますよ。

コンピュータ

第二回 LLVM勉強会

週末のことですが、第二回 LLVM 勉強会に参加してきました。

いろいろ勉強してから行けばよかったものの全く予備知識もないまま会場入りして話を聞いたら全然ついていけない(汗。
途中から、LLVM の話をしているのか Ruby の話をしているのか、一般的な計算機屋さんの議論をしているのか混乱したりしたものの、ものすごく刺激的な時間を過ごすことができました。

普段が(計算機屋さんから見たら)ユル〜い技術話しかしてないんで、今回みたいな集まりはいい刺激になります。
それと同時に、最近公私共にサボり気味なちゃんとした勉強もしなきゃなーと反省する機会になりました。CG 業界って結果オーライなところが多いんで、学問的に見ると結構イイカゲンwwなところが多いんですよね。そのユルさもまた好きなんですけど。

ユルさと厳密さのバランスを取りながら勉強していければなと思います。

ついでなので、勉強会に参加した(と思われる)方々のBlogリンクを貼っておきます。拔けてるよ〜とか、誤爆してるよ!!ということがあったらコメントで教えてくださいw

主催者 syoyo さん : lucille development blog
yarv2llvm : miura1729さん

意外と言及されてない方が多いみたいですね。補足され次第追加予定です。