CG系の研究で使えるソフトウェア on Mac
CG系の分野は資産がたくさんあります(他の分野もそうだと思いますが).
また,うちの研究室ではMac使いが少なく寂しいのでまとめてみます.
Editor 系
terminal
言わずと知れたterminal.sshで研究室サーバに入るときとか使います.というかいつでも使えます.なんでも出来ます.
GNU Emacs For Mac OS X
emacsはフトントエンドがCocoa APIで作られた通称"Cocoa Emacs"があるので安心ですね.入れましょう.
でもぼくは-nwオプションつけてterminalで作業するのが好きです.
~/.emacs をいじりましょう.
browzer
ブラウザならなんでもいいですが,先生やセンパイや共同研究先からもらったファイルが文字化けして読めない場合があります.
そういうときはブラウザにぶち込んだら大抵読めます.
MacWiki - TeXShop
論文はTex派かWord派かに別れると思いますが,Texで行きましょう.
WYSIWYGにはWYSIWYGの良さがあると思いますが,Markup Languageはやはりきれいに仕上げるとこが出来ると思います.
再利用も簡単ですし.
MacでTexを使おうと思ったら,emacs等のエディタで書いてコンパイルしてもいいのですが,面倒なのでTexShopがいいと思います.
Keynote
Mac使いだとKeynote使いたいですよね.ぼくもそうです.
しかし,明らかにPowerPointに劣っている点があります.
- 図形が貧弱
図(矢印とか四角)とかが貧弱です.2次元だとまぁ使えるのですが,3次元的に見せたい場合(例えば四角を平行四辺形に変形させたり)がダメです.
こういうときはPowerPointの力を借ります.PowerPointは図形が充実しているのでそれをCopy&PasteすればOKです.
- デフォルトの設定がよろしくない
デフォルトだと文字がかなり大きくなってしまうので,Master Slideを変更することをお勧めします.
タイトルのフォントサイズは84 -> 48ぐらいに変更するのがよいのでは無いでしょうか.
Viewer系
次はViewer系です.Graphics系だとやっぱり絵がないと寂しいですよね.でもゼロからViewerを作ろうとするとけっこうめんどいです.
ImageJ
通常の画像処理だとGIMPとかPhotoshopとかでいいのですが,画像の解析となるとこのImageJが便利です.
主に生物系の人が使ってるみたいです.
ボクセルのボリュームデータを呼んでくれるところがいいですね.
あとJavaで書いてあるのでどの環境でも動きます(たぶん),自分でPlugInを書くことも出来ます.
MeshLab
メッシュに対していろんなファイル読めるし,いろんな処理をすることができます.
点群も表示することができます.フリーのメッシュviewerの中では一番いいのではないでしょうか.
ParaView - Open Source Scientific Visualization
これは主に何かしらの値(スカラ,ベクタ)を持ったメッシュを表示するときに使います.
また,paraviewは入力データに対してフィルタをかけていくようになっていて,例えばthresholdや領域指定で表示範囲を
いろんなフォーマットのファイルを読むことができますが,
ぼくはVTK Formatを使っています.
VTK format
非構造メッシュももちろんあります.ぼくはTetrahedral MeshやTriangle Meshの可視化にお世話になってます.
こんな感じですねー.次はLibraryや参考書編でも書こうかなと思います.
Gill Sans
Mac 使いなら一度は見たことあるフォント,Gill Sans.
エリック・ギル (Eric Gill) が1927-30年にかけて制作したヒューマニストサンセリフ体の欧文書体である。ギルは名高い彫刻家、グラフィックアーティスト、そして書体デザイナーであった。...
Wikipediaより.
ギル・サン - Wikipedia
Keynoteでこのフォントをよく使うようになりこのGill Sansが好きになったので,
日頃よく目にするブラウザのフォントもGill Sansに変えてみた.
こちらが普段よく見かけるフォントTimes.たぶんGoogle Chromeのデフォルトの設定もこれ.
もともと新聞で使っていたフォントということもあってちょっと堅い感じ.
つづいてこれがGill Sansを使ったもの.少しポップな感じがしていい感じに.
究極的にはGill Sansを書けるようになりたい.
Variational Tetrahedral Meshing
Variational Tetrahedral Meshing http://www.cs.berkeley.edu/~jrs/meshpapers/ACSYD.pdf
4面体メッシュ分割に関する論文.かなり有名な手法みたい.
作者はINRIAのPierreAlliezさん.Modeling業界ではかなり有名な人らしい.
著書に「Polygon Mesh Processing」がある
- 作者: Mario Botsch,Leif Kobbelt,Mark Pauly,Pierre Alliez,Bruno Levy
- 出版社/メーカー: A K Peters/CRC Press
- 発売日: 2011/01/25
- メディア: ハードカバー
- クリック: 1回
- この商品を含むブログ (1件) を見る
Meshをあつかった本は少ないのでかなりためになる.
ある頂点に対しエネルギー関数を考え移動させるのですが,それは頂点が含まれる4面体メッシュの外接円の中心点の重心と等価だそうです.(数学的な証明もかいてありました)
そして3次元のボロノイダイアグラムによる分割を行います.
これを収束するまで繰り返します.
アルゴリズムとしては簡単そうなので今度実装してみよう.
boost::program_options
c++でコマンドライン引数をパースするライブラリを探してたら2つ見つかった.
- GNU Getopt
http://www.gnu.org/s/hello/manual/libc/Getopt.html
シンプルで使いやすい.Java移植版もある
- boost::program_options
やっぱりboostにもあった.
使うのはとても簡単.エラーやヘルプのメッセージなどが自動生成されるので楽.
#include <boost/program_options.hpp> using namespace std; namespace po = boost::program_options; po::options_description desc("Allowd options"); po::variables_map vm; string input_filename; void parse_program_options(int argc, char** argv){ desc.add_options() ("help,h","produce help message") ("input,i", po::value<string>(), "input file name") ; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); if(vm.count("help")){ cout << desc << endl; } if(vm.count("input")){ if(vm["input"].as<string>().empty()){ cerr << "input file name is empty" << endl; exit(-1); } else{ cout << "input file name is " << vm["input"].as<string>() << endl; input_filename = vm["input"].as<string>(); } } } int main(int argc, char** argv){ parse_program_options(argc, argv); return 0; }
boost::program_options::parse_config_fileを使えばコマンドラインだけじゃなくconfig fileからも簡単にできそう.
Computer Geometry
3次元モデリングとかCGとかやってる研究室に配属になった.
教授と話してると「うちは幾何で勝負してる」って言われたので,幾何学の勉強を開始.
研究を進めてて
・frustumとcube群(voxel)の交わる体積を求める
という問題が生じた.
infinite frustumって考えてcubeと交わる4つの直線との交点を求めれば出るだろって思ってたけど,
実際は考えないといけない交差のパターンがいくつもあるし,
多面体の体積を求めるために3角形分割しないといけないし,
いろいろ面倒だなって思った.
いまのとこ幾何って直感的には分かるけど,いざ実装ってなるとはてしなくめんどくさい印象.
ってことで↓の本で勉強してます.
- 作者: M.ドバーグ,M.ファンクリベルド,M.オーバマーズ,O.チョン,Mark De Berg,Mark Overmars,Mark van Kreveld,Otfried Cheong,浅野哲夫
- 出版社/メーカー: 近代科学社
- 発売日: 2010/02
- メディア: 単行本
- 購入: 4人 クリック: 29回
- この商品を含むブログ (4件) を見る
日本語だとこの本が一番よさげ.
http://www.architecturalgeometry.at/
この本は建築のための幾何学.
基本的な用語,概念は網羅してる.
詳しいアルゴリズムとかは書かれてないので実装するにはこの本だけだときつい.
なんといっても絵が多いので読んでて楽しい.
旧Mac -> 新Mac 移行に関するまとめ.
旧Mac(Macbook pro 13 inch 2009 early model)から新Mac(Macbook pro 15 inch 2011 early model)への移行の際に
いろいろ手こずったのでそのまとめ.
Mac->Macの移行の際には大きく分けて2つの選択肢があると思います.
1. 新しく環境を構築し,重要なファイル(ドキュメント等)を後から移行する.
今回の移行ではなるべく前の環境のまま移行したかったので,1はやめて2を選びました.
移行アシスタントでは無線LAN,有線LAN,Firewire経由のいずれかが選べ,今回はFirewireケーブルを使用しました.
移行できるデータは
・/Users/hogehoge 以下
・/Applications
・設定
です.
移行先に同じ名前のユーザがあると移行ができないため別の名前のユーザをつくらないといけません.
また,OSのバーションを同じにしておく必要があります.
200GB程度の移行に8時間程かかりました.
移行が終わって気づいたのですが,/Libraryや/usr/local/bin/ 内のファイルに"(古いMacから)"
という名前がついてしまっていました.
また,/Developer以下は消えてしまいます.
・ユーザ名を変えなければいけない.
・/Developer以下が消える(再設定がめんどくさい)
・/usr/local/bin 内の実行ファイルや/Library 内のフォルダに "(古いMacから)"という名前がついてしまう.
等の問題が発生しました.
Apple Storeの人曰く「移行アシスタントでそのままの環境を移行できる」そうですが,
ぼくが思っていたそのままの移行は出来ませんでした.
そこで,どうにか古い環境をそのまま移行するために,
「古いMacのハードディスクのデータを新しいMacのハードディスクにまるごとコピーすればいいじゃないか」と考えました.
データのコピーにはハードディスクを換装するときにお世話になったCarbon Copy Cloner - Home
を使いました.
だいたい5時間程度でデータの移行が終わり起動してみると,起動時のりんごマークから進みません.
ハードの互換性が問題なのでしょうか.
どうにもならないのでOSの再インストールすることにしました.
そして再起動すると...!?
どうやらハードディスク内のOSの領域だけ書き換わったので,後のファイルも正常に読めているようです.
アプリケーションが起動できない等の問題もありません.
まったく前の環境と同じです.
これがぼくの求めていた”そのままの環境の移行”です.
正しいやり方かはわかりませんが,Macの移行で困っている方は使ってみてはいかがでしょうか.
脳の中の幽霊
- 作者: V.S.ラマチャンドラン,サンドラブレイクスリー,V.S. Ramachandran,Sandra Blakeslee,山下篤子
- 出版社/メーカー: 角川書店
- 発売日: 1999/08
- メディア: 単行本
- 購入: 9人 クリック: 176回
- この商品を含むブログ (141件) を見る
友だち,教授に薦められたので購入
初版は1999年と少し古いですがとても面白いです.
ラマチャンドラン博士が脳に疾患をもつ患者とのやりとりや実験から,
脳に関する新たな仮説を導いていきます.
自分の脳がどのように動いているのだろうと考えざるをえません.