ソフトウェア開発の最近のブログ記事
意外と知られていません。
たとえば、田中ゼミはCGや画像処理ばかりやっていると思われがちなのですが(そういう人もいますが)、
実はオープンソース系のシステム開発にも力を入れています。
そのため田中ゼミでは、「CGとかデザインセンスは無いけど、プログラムはメチャクチャ得意」っていう人がいます。
もちろん、「CGを制作するのは得意だけど、プログラムは全然ダメ」という人も多いのですが...
というわけで、大学の教育・研究の方のWebページで、そういったオープンソース系システム開発の活動を紹介したページが開設されました。
今回の記事が面白いと思った方は以下のボタンをクリックして下さい.
この画像は後述するLinuxシステム上でCUDAのデモを実行している様子をキャプチャしたものです。
煙のオブジェクトがリアルタイムに動いています。
田中ゼミで開発しているシステムを改良して、より高速に高精細な3DCGを生成するためには、このCUDAは非常に強力なツールになりそうです。
このとき問題となるのが、開発環境をどうやって構築していくのか、ということです。
田中ゼミでは主たる開発環境として、OSはFreeBSDを使っていますが、CUDAの開発環境を構築するにはOSをWindowsかLinuxに移行する必要が出てきます。
開発環境の移行というものは、単に新しいOSをインストールして終わり、とか、新しいOS上で今開発しているソフトウェアを移植して終わり、というわけにはいかず実は大変な労力が伴います。
開発環境を移行することで発生するであろう大きな問題点は、以下のようにたくさんあります。
特に田中ゼミでは長年かけて開発環境を熟成させてきているので、新しい環境への移行にはいろいろと問題が発生する可能性があります。
- 今まで開発してきたソフトウェアが問題なく動くかどうか?
- 今まで使っていた開発ツールが新しい環境でも全て揃うかどうか?、また、同じ動作をするのか?
- ソフトウェア作成時にAPI(Application Program Interface)と呼ばれるOS側の機能呼び出しが同様なものを持っているのか?、あるいは同様な動作をしてくれるのか?
- ソフトウェアやデータが保存される場所がどこに移動するのか?
- 今まで開発してきたソフトウェアが新しい環境で安定して動作してくれるのか?
- トラブルが発生した場合に対処方法はどの程度変わるのか?また、すぐに対処できるのか?
まぁ、ゴチャゴチャ考えていても仕方ないので、とりあえず試験的に Ubuntu Linux を田中ゼミのPCにインストールしてみました。
インストールしたバージョンは、10.04LTS 64bit版です。
通常の使用であれば、32bit版をインストールすべきなのですが、田中ゼミではギガバイト単位の巨大な高精細画像データや形状データを扱うため、32bitのOSだとアドレス空間が足りません。
そのため、本年度田中ゼミでは、全てのOSを64bitに移行しました。
そういうことですので、Ubuntu も64bit版です。
ただ、そうすると日本語の設定やFlash等通常使うソフトウェアの設定が面倒になりますが、今回は仕方ありません。とりあえず、頑張ってみます。
Ubuntu Linuxは現在のLinuxのディストリビューションの中でもっとも人気のあるものです。Ubuntuを選択した理由としては、環境構築が簡単だということと、ユーザ数が多いということです。
特にユーザ数が多いということは、いろいろな不具合も解決されている可能性が高く、いろいろと利点が多いだろうと考えたからです。
とりあえず、Ubuntuを田中ゼミ仕様に設定していきます。
- コマンドシェルを bash から tcsh に変更
- 今まで使っていたシェルスクリプトや設定ファイルをLinux用に書き換える
- デスクトップ環境の外観を好みのものに変更(GNOMEの設定)
- ショートカットやウィンドウ動作、エフェクト等の設定(GNOMEの設定)
- 漢字コードをEUC-JPからUTF-8へ変更(FreeBSDではEUC-JPを使っていたため)
- NVIDIAのCUDA対応ドライバをインストール(256.40)
- 開発に必要なツールのインストール
- ツール類の設定(Linuxだと微妙に修正が必要)
- 田中ゼミで開発しているソフトウェアやライブラリ類をLinuxに移植(Makefileの書き換えと再コンパイル等で対応)
- とりあえず、CUDAの開発環境をインストール(CUDA 3.1)
インストールと各種設定が終わったLinuxシステムに田中ゼミが開発しているレイトレーシングシステムを移植してみました。
このシステムはOpenGL+GLSLで記述しています。とりあえず、問題なく動いているようです。
さらにデジタルコスメ班が開発している人間の肌の3DCG生成システムを移植して実行してみました。
こちらも問題なく動いているようです。
※2010年9月5日追記(実は、後で速度面に問題があることが分かりました。)
以下の画像が、その結果です。人間の3DCG(肌の3DCG)が綺麗に生成されているのがわかるでしょうか。
と、以上のようにUbuntu Linuxの試験導入はほぼ問題なくできました。
とは言っても、細かい部分ではトラブったのですが、そういう部分は次回以降機会があれば、ご紹介いたします。
今回の記事が面白いと思った方は以下のボタンをクリックして下さい.
田中ゼミではGPUを用いてリアルタイムに3DCGを生成するプログラムを
開発しています.
といっても何のことかわからないと思いますので,
細かいところは気にせず,まずはどんなCGを作成しているか見て下さい.
田中ゼミで開発したソフトウェアで再現した人間の3DCG(田中法博ゼミ デジタルコスメチーム作成)
どうです? リアルな人の顔のCGでしょ?
このブログ上の画像は,我々が開発したソフトウェアの実行結果をキャプチャして画像を
貼り付けていますので動きませんが,実際にはリアルタイム3DCGなので
マウスでグリグリ見る方向を変えたり光の当て方をリアルタイムに変えていくことができます.
実際にCGが動いている様子が見たい人がいたら田中ゼミまで来てみてください。
パソコンで3Dゲームをする人は,NVIDIA社のGeForceとか AMD社(旧ATI)のRadeonと
かっていうグラフィックスカードを,ご存じだと思いますが,快適にきれいな3Dゲームを
実行できるかどうかはこういったグラフィックスカードの性能に依存します.
このGeForceとかRadeonというものは,いわゆるGPU(Graphics Processing Unit)と
呼ばれるグラフィックス専用のハードウェアのことです.
田中ゼミではこういったGPUを使って,美術品や人間の肌をリアルに3DCG再現するための
ソフトウェアを開発しています.
GPU上のプログラムは専用のプログラム言語で記述しなければならないのですが,
田中ゼミでは,パソコン側ではC言語でプログラムを書き,GPU上ではGLSL(OpenGL Shading
Language)という言語でプログラムを書きます.
基本的にはFreeBSDといったオープンソースな開発環境でソフトウェア開発を
行っています.
今後,このブログ上でそういった技術を少しずつご紹介していきたいと思います.
興味のある人は,このブログをちょくちょくチェックして下さい.
このカテゴリではソフトウェア開発に関する技術的な話題を書き込んでいきたいと
思います。
まず遅ればせながら、田中ゼミのソフトウェア開発環境のご紹介をしたいと思います。
田中ゼミでは、ソフトウェア開発のテーマを選ぶと年間を通して膨大な量の
プログラムを作成することになります。
そうじゃない人もいますが。
このカテゴリでは、その田中ゼミのソフトウェア開発に関しての
門外不出(オーバーでごめんなさい)の技術的な内容を
ご披露させていただきたいと思います。
まず最初は開発環境として
田中ゼミでは、Windowsだけでなく、FreeBSDというunix系のオープンソースOSを
メインの開発環境として使用しています。
FreeBSDというOSは聞いたことが無い人が多いかも知れませんが、自分たちでサーバ構築したり、
ソフトウェア開発環境を整えるには非常に強力なものです。
(Linuxは聞いたことある人が多いと思いますが、似たようなものだと思って下さい)
田中ゼミでは、年度の最初に自分たちの目的にあったパーツを選定してPCを自作します。
パーツの購入にはけっこうな費用がかかるので、田中先生が「お金がない~」って
騒ぐのはまずこの時期です。
自分たちで作ったPCに、今度はFreeBSDをインストールしてソフトウェア開発環境を
自力で構築します。
これが最初の難関ですが、ここまででコンピュータの構造やネットワークの仕組み、
OSの概要などといった知識が身につくので、けっこう実力が身についたことを実感できます。
だけど、これは始まりに過ぎません...